用途:在 QGIS 中对道路或交通网络执行路径规划、最短路径与服务区(可达性)分析,并规避因边方向配置错误造成的错误结果。
主要能力:基于 qgis.analysis 的核心类完成网络分析,包括 QgsVectorLayerDirector(控制线图层的边方向规则)、QgsNetworkDistanceStrategy(以几何长度为成本)、QgsNetworkSpeedStrategy(以速度字段计算通行时间成本)、QgsGraphBuilder(构建 QgsGraph)、QgsGraphAnalyzer(dijkstra()、shortestTree())与 QgsGraph。也支持通过 Processing 算法 ID 调用,如 native:shortestpathpointtopoint、native:shortestpathpointtolayer、native:shortestpathlayertopoint、native:serviceareafrompoint、native:serviceareafromlayer。
使用方式:典型流程为设置方向规则、添加成本策略、构建图、获取图对象、查找顶点 ID、运行 Dijkstra、回溯重建路径。方向处理上,全双向可用 directionFieldId = -1;单向来自属性时传入字段索引;全单向(正向)可用 directionFieldId = -1 并设 defaultDirection = DirectionForward。距离分析应使用投影坐标系(米),地理坐标系(度)会产生错误距离。
限制与注意:不能假定所有边都是双向的,路网含单行道,必须正确配置方向字段与取值;重建路径前须检查 tree[destination_id] == -1,表示目标不可达;必须使用 makeGraph() 返回的吸附点调用 graph.findVertex(),而非原始输入点;构建图前必须至少添加一个策略,否则无成本、dijkstra() 结果无意义;不要用 graph.vertex(current).incomingEdges() 重建路径,应使用 Dijkstra 结果中的 tree[current]。
适用场景:点对点路径、单点到多点、多点到单点、单/多起点服务区分析、最短路径树,以及距离或通行时间等多成本准则分析。
补充:资料未提供收费、价格、平台与效果信息。