我正在尝试使用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;。
我应该使用另一种方法进行此操作吗?
答案 0 :(得分:1)
centroid()是QgsGeometry类的一种方法。 您可以使用geometry()方法检索QgsFeature的几何部分 所以你可以获得质心几何学的两种方法:
feature.geometry().centroid()