Скачать сетевую (с OSMNx) фильтрацию OSM на основе объединения значений тегов - PullRequest
0 голосов
/ 19 июня 2019

Я хотел бы загрузить сеть из OSM с объединением 2 фильтров на основе тегов шоссе и велосипедных дорожек.

    network=ox.core.graph_from_place ( place_name, custom_filter='["highway"~"cycleway"]["bicycle"!~"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 ?

1 Ответ

1 голос
/ 20 июня 2019

osmnx использует Overpass API для загрузки данных OSM. Overpass API не имеет оператора or в том виде, в котором вы пытаетесь его использовать.Существует простое выражение объединения , которое просто означает «скачать X, затем загрузить Y» (см. Пример в overpass-turbo для «highway=cycleway или cycleway=lane»).Я полагаю, вы должны сделать то же самое в osmnx.

...