首页 > 解决方案 > 查找 2 个节点之间的街道名称。OSMnx

问题描述

我想找到 2 个节点之间的街道名称。我做了一些研究,我认为使用 Networkx 是可能的。按照这个问题的答案: OSMNx:使用 OSM id 获取节点坐标

例如,我可以看到找到一些节点的坐标,我只需要写 G.nodes[id]['x]。但是我尝试在这样的两条街道之间找到名称:(假设 G 是我的图表)

G.nodes[id_src][id_dst]['name']

它返回此错误:

KeyError: 667410900

我假设这个数字是节点的 ID。

我怎样才能得到街道名称?

标签: pythonnodesnetworkxosmnx

解决方案


假设您的图表是按照交叉点/死角是节点而街道是图表中的边的方式构建的。您可以通过以下方式访问街道信息(请参阅文档

G.edges[(id_src, id_dst)]["name"]
# or display all data, with all possible names
print(G.edges[(id_src, id_dst)])

OSMNx您使用 an的情况下,MultiDiGraph您需要指定您想要的边缘,即

G.edges[(id_src, id_dst, 0)]["name"]
# or
G.edges[(id_src, id_dst, 0)]["length"].

推荐阅读