Skip to main content
 首页 » 编程设计

python之OSM 到有向图 (python-igraph/networkx)

2025年05月04日15bonelee

我正在使用此 python 脚本下载 OSM 数据并将其转换为无向 networkx 图:

https://gist.github.com/rajanski/ccf65d4f5106c2cdc70e

然而,在理想情况下,我想从中生成一个有向图,以反射(reflect) osm 街道网络的方向性。

首先,您能确认一下here吗?和 here在 OSM 原始 xml 数据中,路径中 nd 条目的顺序对方向很重要?

其次,您建议如何实现从 osm 原始数据生成有向图,将上述要点代码片段作为模板?

非常感谢!

请您参考如下方法:

只有当路径被标记为 oneway 时,节点的顺序才重要=yes 或 oneway=-1。否则路径是双向的。当然,这仅适用于车辆。唯一的异常(exception)是 highway=motorway 这意味着 oneway=yes。

您可能还对 routing 感兴趣维基页面。它列出了两个用 python 实现的路由器,以及许多其他路由器。