查找 2 个节点之间的街道名称。 OSMnx

Find name of a street between 2 nodes. OSMnx

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

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

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

它 returns 这个错误:

KeyError: 667410900

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

如何获取街道名称?

假设您的图表是按照 crossings/dead 末端是节点,街道是图表中的边的方式构建的。您可以通过(参见 documentation

访问街道信息
G.edges[(id_src, id_dst)]["name"]
# or display all data, with all possible names
print(G.edges[(id_src, id_dst)])

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

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