Clase QgsGeometryAnalyzer en PyQGIS

Algunas de las pruebas que he estado realizando en los artículos próximos pasados pueden hacerse directamente invocando a los métodos de la clase QgsGeometryAnalyzer. Con un dir a la clase podemos observar que allí están, por ejemplo, ‘buffer’, ‘centroids’, ‘extent’, ‘convexHull’; entre otros.

>>>from qgis.analysis import QgsGeometryAnalyzer
>>>L=dir(QgsGeometryAnalyzer)
>>>L
['__class__', '__delattr__', '__dict__', '__doc__', '__format__', 
'__getattribute__', '__hash__', '__init__', '__module__', '__new__', 
'__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', 
'__str__', '__subclasshook__', '__weakref__', 'buffer', 'centroids', 
'convexHull', 'dissolve', 'eventLayer', 'extent', 'locateAlongMeasure', 
'locateBetweenMeasures', 'simplify']

Para probar ‘centroids’ vamos a cargar la grid que hemos usado en el pasado. Asegurándonos que es capa activa:

>>>from qgis.analysis import QgsGeometryAnalyzer
>>>lyr =iface.mapCanvas()
>>>layer = lyr.currentLayer()
>>>QgsGeometryAnalyzer().centroids(layer,'/Users/zeito/vectors/centroids3.shp',False)
True

Aquí está el resultado cuando la cargo a la Map View:

centroids

Para extent:

QgsGeometryAnalyzer().extent(layer,'/Users/zeito/vectors/extent.shp', False)
True
>>>layer = iface.activeLayer() #active layer centroids
>>>QgsGeometryAnalyzer().extent(layer,'/Users/zeito/vectors/extent3.shp', False)
True

y el resultado es:

extent

Para el buffer de ‘route’ (1000 m):

>>>route=iface.activeLayer()
>>>QgsGeometryAnalyzer().buffer(route,'/Users/zeito/vectors/buffer_route.shp',1000,False,False,-1)
True

se tiene que:

buffer

Finalmente, para ‘convexHull’:

>>>route=iface.activeLayer()
>>>QgsGeometryAnalyzer().convexHull(route,'/Users/zeito/vectors/convexHull.shp',False,-1)
True

teniendo como resultado el siguiente:

convexHull

Para los detalles sobre la documentación:

http://qgis.org/api/classQgsGeometryAnalyzer.html

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

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