通过python在QGIS中获取质心

时间:2016-10-06 13:22:06

标签: python geometry qgis centroid

我正在尝试使用python在QGIS中获取多边形的质心。这是我的代码

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

...这给了我一个名字&#39; getCentroid&#39;没有定义&#34;错误。

我觉得这很令人惊讶,因为QGIS python编辑器有getCentroid作为下拉语法完成选项。

我还尝试通过feature.getCentroid()将此功能用作功能对象的方法,并收到类似的错误(&#34;&#39; QgsFeature&#39;对象没有属性&#39; getCentroid&# 39;&#34;。)

同样,尝试centroid(feature)会给我一个错误&#34; NameError:name&#39; centroid&#39;未定义,&#34;而feature.centroid()给了我&#34;&#39; QgsFeature&#39; object没有属性&#39; centroid&#39;&#34;。

我应该使用另一种方法进行此操作吗?

1 个答案:

答案 0 :(得分:1)

centroid()是QgsGeometry类的一种方法。 您可以使用geometry()方法检索QgsFeature的几何部分 所以你可以获得质心几何学的两种方法:

feature.geometry().centroid()