查找 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"].
我想找到 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"].