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

Anuncios
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