0

我想使用 python 并使用 QGIS 执行最短路径处理。但我想问一下如何在 END_POINT (params) 中加载矢量图层 (endPointLayer)?

下面是我的python代码

endPointLayer = QgsVectorLayer("c:\\allpoints.geojson","mygeojson","ogr")

params = { 
    'INPUT': 'c:\\road.shp',
    'STRATEGY': 0,
    'START_POINTS': '24750.776333512130805,42093.902984226690023 [EPSG:3414]',
    'END_POINT': endPointLayer,
    'OUTPUT' : 'TEMPORARY_OUTPUT'
}

output = processing.run("qgis:shortestpathpointtolayer", params)

我的错误信息如下

_core.QgsProcessingException: Unable to execute algorithm
Could not load source layer for END_POINTS: no value specified for parameter
4

1 回答 1

0

您的端点需要是作为起点的坐标,而不是 QgsVectorLayer。获取和点迭代 QgsVectorLayer 以获取每个特征的 x 和 y 坐标。

points = iface.activeLayer()
for i in points.getFeatures():
    geom = i.geometry()
    print(geom.asPoint().x())
    print(geom.asPoint().y())
于 2021-12-18T00:06:44.210 回答