2016-10-06 10 views
1

Я пытаюсь получить центроид многоугольника в QGIS с помощью python. Вот мой кодПолучите центроид в QGIS через python

layerPluto = iface.addVectorLayer("/path/to/mn_mappluto_16v1/MNMapPLUTO.shp", "PLUTO", "ogr") 
features = layerPluto.getFeatures() 
counter = 0 
for feature in features: 
    # Get the first feature from the layer 
    if counter < 3: 
     print feature['Address'] 
     print getCentroid(feature) 
     counter += 1 

... который дает мне ошибку «имя» getCentroid «не определено».

Я нахожу это удивительным, так как редактор python QGIS имеет getCentroid в качестве опции выпадающего синтаксиса.

Я также попытался использовать эту функцию как метод объекта объекта через feature.getCentroid() и получил аналогичную ошибку (объект «QgsFeature» не имеет атрибута «getCentroid»).

Точно так же, пытаясь centroid(feature) дает мне ошибку «NameError: имя„медиан“не определен», а feature.centroid() дает мне «объект„QgsFeature“не имеет атрибута" центроид».

Есть ли другой метод, который я должен использовать для этой операции?

+1

проверить этот пост. http://gis.stackexchange.com/questions/209292/getting-x-y-of-polygon-in-pyqgis –

ответ

1

centroid() - метод класса QgsGeometry. Вы можете получить в разделе геометрии QgsFeature с geometry() методом и поэтому вы можете получить центроид геометрии siply формирования цепочки два метода:

feature.geometry().centroid()