Программирование на языке Python для QGIS
Задача 1. Найти суммарную длину выделенных объектов в линейном слое
Для примера можно взять слой рек из набора (RU_UD) или слой железных дорог из набора (Russia)
layer = qgis.utils.iface.activeLayer()
print "Number of all features: " + str(layer.featureCount())
selFeatures = layer.selectedFeatures()
print "Number of selected: " + str(len(selFeatures))
sumLenMy =0.0
sumLenDB = 0.0
idx = layer.fieldNameIndex('Len')
crsSrc = QgsCoordinateReferenceSystem(4148)
crsDest = QgsCoordinateReferenceSystem(3395) # WGS 84 / world mercator
xform = QgsCoordinateTransform(crsSrc, crsDest)
for f in selFeatures:
geom = f.geometry()
geom.transform(xform)
print "LenDB: "+ str(f.attributes()[idx])
sumLenDB = sumLenDB + f.attributes()[idx]
if geom.type() == QGis.Line:
x = geom.asPolyline()
print "Line: %d points" % len(x)
print "LenMy: " + str(geom.length())
#print x
sumLenMy = sumLenMy + geom.length()
print "-------"
print "=============="
print "SumLenMy: " + str(sumLenMy)
print "SumLenDB: " + str(sumLenDB)
Ссылки:
http://qgis.org/ru/docs/pyqgis_developer_cookbook/index.html
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии