Более

Почему мой код PyQGIS для сохранения выбранных функций приводит к изменению геометрии?

Почему мой код PyQGIS для сохранения выбранных функций приводит к изменению геометрии?


В плагине я хочу сохранить выбранные функции в новом шейп-файле. Я ищу и пытаюсь (Как мне создать новый слой из текущего выбора?), Чтобы создать новый слой и записать выбранные поля и функции в нем:

vl = QgsVectorLayer ("Многоугольник", "временные_точки", "память") pr = vl.dataProvider () # добавить геометрию и поля pr.addAttributes (fields) pr.addFeatures (features)

Но это не то, что я хотел. Я получаю это:

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

Кто-нибудь знает, как это получить?


Я могу использовать алгоритм из Processing Toolbox, «Сохранить выбранные функции».


Вы можете сохранить выбранные объекты из активного слоя в шейп-файл, просто вызвавQgsVectorFileWriter.writeAsVectorFormatи прохождениеonlySelectedпараметр какИстинный:

layer = iface.activeLayer () res = QgsVectorFileWriter.writeAsVectorFormat (layer, '/tmp/selectedFeatures.shp', 'System', None, #crs 'ESRI Shapefile', True #onlySelected) if res! = QgsVectorFileWriter.NoError: print 'Номер ошибки:', res else: вывести "Готово!"

Результирующий слой будет содержать все поля исходного слоя.


Смотреть видео: QGIS Export Attribute Table to Excel and CSV