Как получить определенный тип дороги (основная, второстепенная, третичная и т. Д.) В Openstreetmap с помощью Python?

Я пытаюсь получить разные классификации типов дорог в OSM с помощью python, после просмотра нескольких соответствующих веб-страниц у меня пока что:

import osmnx as ox
place_name = "zurich, switzerland"
graph = ox.graph_from_place(place_name, network_type='drive')
fig, ax = ox.plot_graph(graph, fig_height=5, node_size=0)

network_type включает только 'drive', 'walk' и т. д., но я хотел бы получить тег Highway, например, 'Primary', 'secondary', 'tertiary', этот тип дорожной сети соответственно, как мне это сделать?


person Lan Ma    schedule 02.10.2018    source источник


Ответы (1)


Я хотел бы получить тег шоссе, например, «первичный», «вторичный», «третичный», дорожная сеть этого типа соответственно, как мне это сделать?

OSMnx автоматически получает тег шоссе. Аргумент network_type='drive' означает, что OSMnx загрузит все дороги для проезда в интересующей вас географии (Цюрих). Затем он строит мультиграф сети networkx. Ребра графа содержат атрибуты, в том числе тип шоссе OSM каждого. Затем вы можете перебрать края и проверить их значения шоссе или выгрузить график в фрейм геоданных geopandas, чтобы работать с ним таким образом, если хотите, как описано в документация.

В качестве альтернативы, если вы хотите, чтобы сеть включала только определенные типы магистралей в иерархии дорог OSM, см. этот вопрос и ответ.

person gboeing    schedule 08.10.2018