通过 python 在 QGIS 中获取质心

Get a centroid in QGIS via python

我正在尝试使用 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

... 这给了我一个 "name 'getCentroid' is not defined" 错误。

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

我也尝试通过 feature.getCentroid() 将此函数用作特征对象的方法并收到类似的错误(“'QgsFeature' 对象没有属性 'getCentroid'”)。

同样,尝试 centroid(feature) 给我错误 "NameError: name 'centroid' is not defined," 而 feature.centroid() 给我“'QgsFeature' 对象没有属性 'centroid'”。

这个操作我应该使用另一种方法吗?

centroid()是QgsGeometryclass的一个方法。 您可以使用 geometry() 方法检索 QgsFeature 的几何部分 因此,您可以获得简单链接这两种方法的质心几何:

feature.geometry().centroid()