python - 查找 2 个节点之间的街道名称。OSMnx
问题描述
我想找到 2 个节点之间的街道名称。我做了一些研究,我认为使用 Networkx 是可能的。按照这个问题的答案: OSMNx:使用 OSM id 获取节点坐标
例如,我可以看到找到一些节点的坐标,我只需要写 G.nodes[id]['x]。但是我尝试在这样的两条街道之间找到名称:(假设 G 是我的图表)
G.nodes[id_src][id_dst]['name']
它返回此错误:
KeyError: 667410900
我假设这个数字是节点的 ID。
我怎样才能得到街道名称?
解决方案
假设您的图表是按照交叉点/死角是节点而街道是图表中的边的方式构建的。您可以通过以下方式访问街道信息(请参阅文档)
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"].
推荐阅读
- reactjs - 用于反应前端的基于令牌的身份验证
- java - 在已创建的对象上使用“new”语句会导致内存泄漏吗?
- corda - 如何限制一组节点启动流
- c# - 从卡片的图像列表中提取 C# 中的 5 个不同的值
- impala - 在 Hive 中为父母获取孩子和孙子
- node.js - Node App 找不到全局模块 Bitcore
- javascript - Javascript HTTP 请求
- intellij-idea - 在 IntelliJ 中通过 Ctrl + left 查找枚举的用法
- r - R:R中的bfs()分别提取dist值
- c++11 - 如何实现“类 NumericalAntiderivative”