Программирование на языке 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

http://qgis.org/api/2.2/