Más

¿Por qué mi código PyQGIS para guardar entidades seleccionadas da como resultado geometrías alteradas?

¿Por qué mi código PyQGIS para guardar entidades seleccionadas da como resultado geometrías alteradas?


En un complemento, quiero guardar las características seleccionadas en un nuevo shapefile. Busco e intento (¿Cómo puedo crear una nueva capa a partir de la selección actual? Para crear una nueva capa y escribir los campos y características seleccionados en eso:

vl = QgsVectorLayer ("Polígono", "puntos_temporales", "memoria") pr = vl.dataProvider () # agregar geometría y campos pr.addAttributes (campos) pr.addFeatures (características)

Pero este resultado no es el que quería. Entiendo esto:

En esta imagen, el polígono seleccionado es amarillo y el polígono rosa es el guardado como otro shapefile. Entonces la geometría no es completamente correcta y necesito la copia perfecta del original.

Alguien sabe como conseguirlo?


Puedo usar el algoritmo de Processing Toolbox, "Guardar características seleccionadas".


Puede guardar entidades seleccionadas de su capa activa en un Shapefile simplemente llamandoQgsVectorFileWriter.writeAsVectorFormaty pasando elonlySelectedparámetro comoCierto:

layer = iface.activeLayer () res = QgsVectorFileWriter.writeAsVectorFormat (layer, '/tmp/selectedFeatures.shp', 'System', None, #crs 'ESRI Shapefile', True #onlySelected) if res! = QgsVectorFileWriter.NoError: print 'Número de error:', res else: imprime "¡Listo!"

La capa resultante contendrá todos los campos de la capa de origen.


Ver el vídeo: QGIS: Algoritmos de Geoprocesamiento en Python Curso PyQGIS