Networkx两点层的最短路径

时间:2018-09-10 11:05:41

标签: python graph geometry distance networkx

我的任务是了解从房屋到地铁站的最佳方式。

enter image description here

下面的图片中有三种数据类型:

  • 橙色点是地铁站的入口
  • 紫色点是房屋的中心点
  • 蓝线是道路网络(首先包含所有类型的 道路数据)

目标是确定从每个房屋点到最近的地铁入口的最短路径,并构建折线图层。 我当时正在考虑使用arcpy库,但最近听说了networkx模块,但是现在我只知道如何在图中加载数据,但是,我不知道如何寻找理想的最短路径以及下一步该怎么做。

这是我的数据加载到nx.Multigraph()的草稿:

import arcpy
import networkx as nx 
import numpy as np

line_fc = 'lines'
points_hs = 'house_points'

graph = nx.MultiGraph()
with arcpy.da.SearchCursor(line_fc, 'SHAPE@') as sc:
    for row in sc:
        line_geom = row[0].getPart(0)
        list_geom_cors = np.array([(n.X, n.Y) for n in line_geom])
        graph.add_edges_from(list_geom_cors)

with arcpy.da.SearchCursor(points_hs, 'SHAPE@XY') as sc:
    for row in sc:
        graph.add_node(row[0])

如何尽可能正确地执行此任务?

0 个答案:

没有答案