gdal ogr, почему у меня нет определения слоя после добавления объектов из двух слоев в новый слой? Могу я его создать? - PullRequest
0 голосов
/ 28 мая 2020

Я выясняю различия между двумя векторными слоями и соответственно атрибутирую. Как только я знаю все различия, я фильтрую слои по этим атрибутам, а затем копирую каждый объект в один выходной слой, используя функцию ниже.

После того, как я создал этот новый слой, скопировав элементы из обоих других слоев, кажется, что у него нет определения слоя, что затрудняет дальнейшие манипуляции.

def _copy_list_of_layers_to_single_output_layer(feature_class, layers, output_ds):
    out_layer = output_ds.CreateLayer(feature_class)

    for layer in layers:
    # Ive tested the layers here, both have a layer defenition
        for feature in layer:
            out_layer.CreateFeature(feature)
    # but once I have copied the features into the out_layer it seems to have no layer definition

Я хочу использовать определение слоя, чтобы удалить ненужные поля из нового слой, но у него его нет.

Это потому, что он создан из объектов из двух отдельных слоев?

Не уверен, почему у него нет определения слоя, на двух слоях объекты скопированы from имеют те же поля, могу ли я сгенерировать его или скопировать из исходных слоев?

edit: Я сейчас делаю это, но это похоже на обходной путь, но я получаю определение слоя таким образом

def _copy_features_to_output_layer(feature_class, layer, output_ds):
    out_layer = output_ds.GetLayerByName(feature_class)

    if out_layer:
        for feature in layer:
            out_layer.CreateFeature(feature)
    else:
        output_ds.CopyLayer(layer, feature_class, ['OVERWRITE=YES'])```
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...