openstreetmap - 下载基于标签值并集的 OSM 网络(使用 OSMNx)过滤
问题描述
我想从 OSM 下载一个网络,该网络具有基于高速公路和自行车道标签的 2 个过滤器的联合。
network=ox.core.graph_from_place ( place_name, custom_filter='["highway"~"cycleway"]["bicycle"!~"no”]’
此命令使 2 个过滤器相交。所以它得到所有的边缘,高速公路=自行车道,并且自行车道标签不同于值“no”。
但是,如果我想与过滤器联合,["cycleway”~"lane”]
我不知道 OSM 的布尔“或”运算符。
我尝试了以下方法,但它不起作用:
network=ox.core.graph_from_place ( place_name, custom_filter='["highway"~"cycleway"]["bicycle"!~"no”] or ["cycleway”~"lane”]’
network=ox.core.graph_from_place ( place_name, custom_filter='["highway"~"cycleway"]["bicycle"!~"no”] | ["cycleway”~"lane”]’
有没有一种简单的方法来编写自定义过滤器来合并标签值?或者我应该下载比我需要的更多,然后按照#151中的建议删除边缘?
解决方案
这就是我基于基础设施过滤器联合提取网络的方式。
# get graphs of different infrastructure types, then combine
place = 'Berkeley, California, USA'
G1 = ox.graph_from_place(place, custom_filter='["highway"~"cycleway"]')
G2 = ox.graph_from_place(place, custom_filter='["cycleway”~"lane”]')
G = nx.compose(G1, G2)