首页 > 解决方案 > 使用 osmnx 获取 osm 步行网络,如果人行道沿这条路,则删除道路

问题描述

我正在使用osmnx下载osm步行网。我使用此代码这样做:

经过反复试验,我发现将自定义过滤器与network_type="walk"一起使用可以为我提供最准确的结果。所以首先我定义我的自定义过滤器:

cf ='["highway"~"bridleway|corridor|elevator|footway|living_street|path|pedestrian|primary|primary_link|residential|secondary|secondary_link|service|steps|tertiary|tertiary_link|track|trunk|trunk_link|unclassified"]

然后我得到图表:

Point="Wipkingen, Kreis 10, Zürich, Bezirk Zürich, Zürich, Schweiz"
 G = ox.graph_from_place(Point, network_type='walk', buffer_dist=2000,truncate_by_edge=True,simplify=False,custom_filter=cf)

有了这个网络,我做了一些最短路径搜索。对于我的分析,人们走在街道的哪一边很重要(这是一项热舒适性研究)。所以现在发生的情况是,对于一些最短的路径,人们在路上而不是现有的人行道上行走。我知道,osm 中的人行道信息很糟糕(见截图,红色是人行道或路径,绿色是道路,节点是黑色)。但至少对于那些存在人行道信息的街道,我想使用这些信息。

所以我的问题是,是否有可能从网络中删除平行存在人行道的道路?

OSM_B/W_basemap GoogleSatelite_basemap

标签: pythonosmnx

解决方案


推荐阅读