Más

Calcular longitudes de línea usando PyQGIS

Calcular longitudes de línea usando PyQGIS


Encontré este artículo que describe la "forma de GUI de QGIS" para calcular las longitudes de línea http://www.qgistutorials.com/en/docs/calculating_line_lengths.html

¿Cómo puedo calcular la longitud de una línea (característica) en una capa vectorial con código Python?

Como ejemplo, quiero saber la longitud de la línea amarilla.


Desde QGIS Documents: Geometry Handling, puede usar el siguiente código para obtener la longitud de cualquier línea seleccionada:

layer = qgis.utils.iface.activeLayer () features = layer.selectedFeatures () para f en características: geom = f.geometry () print "Length:", geom.length ()

Buen código, sin embargo, esto solo funciona para la capa seleccionada y solo la imprime. Con la ayuda de otras publicaciones y @Joseph, lo convertí en un código que agrega un atributo a todas las capas de su proyecto con la longitud.

de PyQt4.QtCore importar QVariant para la capa en QgsMapLayerRegistry.instance (). mapLayers (). values ​​(): features = layer.getFeatures () para f en las características: geom = f.geometry () leng = geom.length () res = layer.dataProvider (). addAttributes ([QgsField ("Longitud", QVariant.Int)]) layer.updateFields () fieldIndex = layer.dataProvider (). fieldNameIndex ("Length") attrFeatMap = {} attrMap = {fieldIndex: leng} para la característica en layer.getFeatures (): attrFeatMap [feature.id ()] = attrMap layer.dataProvider (). changeAttributeValues ​​(attrFeatMap)

Ver el vídeo: Latitud y Longitud - HUGO - Explicación fácil y simple.