通过 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()
我正在尝试使用 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()