仅在特定位置使用 Osmnx 时无法从 OSM 获得正确的图表(摩德纳)

Unable to get the right graph from OSM when using Osmnx in just a specific location (Modena)

我的目标是使用 Osmnx 和 Networkx 生成从 A 点到 B 点的路由。路线代表步行和骑自行车的位移,所以我想忽略单行道。

为了实现这一点,我使用了参数:G = ox.graph_from_place(place, network_type='walk') 到目前为止,巴塞罗那 (ES) 和切塞纳 (IT) 的一切都运行良好。

现在我正尝试对摩德纳 (IT) 做同样的事情,但是当同时使用 network_type='walk' network_type='cycle' 时我得到的图表不完整(见附件中的 png)。

获得完整 Modena 图的唯一方法是不指定 network_type 参数,但通过这样做,G 中的边仍会带来值 oneway = True。因此,路由是不正确的,因为它考虑了单向街道。我尝试使用以下方法更改该值:

for u, v, key, data in G.edges(keys=True, data=True):
    data['oneway']=False 

我没有收到任何错误,但路由仍然不正确。 我在这里错过了什么?

Modena graph with no roads in city centre expected routing vs wrong routing

编辑:附上代码片段:

编辑:添加了Retain_all png Modena retain all true

编辑:减少了 bbox area to downtown and created list of missing edges

您正在下载两种不同的网络类型:walkall_private(默认设置),因此您将获得不同的网络。边缘似乎没有丢失,它们似乎是 1) 不可行走的边缘或 2) 断开连接的图形组件的一部分(因为您将 retain_all 设置为其默认值 False