Cómo crear una capa polígono con PyQGIS

Continuando con la creación de capas de diferente tipo mediante la Python Console de PyQGIS, en esta oportunidad les presento como crear una de tipo polígono. El script crea una memory layer en la cual se le asigna simultáneamente en una URI (Uniform Resource Identifier) el tipo de capa, su CRS, los nombres y tipo de campo y el índice espacial. Como la capa es de tipo polígono aprovechamos los métodos de la Clase QgsGeometry para determinar, en este caso, el área del polígono (aunque no tenga sentido porque la proyección no está en metros). El perímetro también puede ser obtenido porque el método length, al igual que area, también pertenece a QgsGeometry [hagan un dir(QgsGeometry) en la Python Console]. El script usado se presenta a continuación:

#create memory layer
#type, CRS, fields in a uri
mem_layer = QgsVectorLayer("Polygon?crs=epsg:4326&field=id:integer""&field=area:double&index=yes",
                            "Polygon",
                            "memory")
                            
#add Map Layer to Registry
QgsMapLayerRegistry.instance().addMapLayer(mem_layer)

#Prepare mem_layer for editing
mem_layer.startEditing()

#points to add (first and last point must coincide)
points = [[QgsPoint(-150,61),QgsPoint(-151,61), QgsPoint(-151,62),QgsPoint(-150,61)]]

#Set feature
feature = QgsFeature()

#Set geometry
feature.setGeometry(QgsGeometry.fromPolygon(points))

#Area determination (remember: projection is not in meters)
geom = feature.geometry()

area= geom.area()

#set attributes values 
feature.setAttributes([1, area])

mem_layer.addFeature(feature, True)

#stop editing and save changes
mem_layer.commitChanges()

Los resultados de ejecución, en la Python Console, se pueden visualizar a continuación:

polygon

Esta entrada fue publicada en Código Python, PyQGIS, SIG, Software Libre. Guarda el enlace permanente.

3 respuestas a Cómo crear una capa polígono con PyQGIS

  1. Pingback: Cómo crear una capa polígono con ...

  2. Pingback: Cómo crear y remover campos de atributos a través de la Python Console de PyQGIS | El Blog de José Guerrero

  3. Pingback: Cómo reproyectar un shapefile usando PyQGIS | El Blog de José Guerrero

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s