Построение нескольких маршрутов с использованием osmnx

#folium #osmnx

#folium #osmnx

Вопрос:

Я пытаюсь построить несколько маршрутов, но появляется ошибка — networkx.exception.Ошибка NetworkXError: узел [20461931, 75901933] в последовательности nbunch не является допустимым узлом.

Построение отдельного маршрута больше не является проблемой, но при совместном построении возникает ошибка.

 
import networkx as nx
import osmnx as ox


# Create Graph 
G = ox.graph_from_place('Munich, Germany', network_type='drive')


# route1 calc
origin_node = 20461931
destination_node =   75901933
route1 = nx.shortest_path(G, origin_node, destination_node)

# route2 calc
start =   (48.1336081,  11.58172095)
end = (48.17822992, 11.53754219)
start_node = ox.get_nearest_node(G, start)
end_node = ox.get_nearest_node(G, end)
route2 = nx.shortest_path(G, start_node, end_node, weight='travel_time')

#plot the route with folium
route_list = [route1,route2]
route_map = ox.plot_route_folium(G,route_list)

# save as html file then display map as an iframe
filepath = 'route.html'
route_map.save(filepath)
 
 

Ответ №1:

Вы передаете ему список списков узлов, а не список узлов. Подробности использования см. в документации.

 import osmnx as ox
ox.config(use_cache=True, log_console=True)

G = ox.graph_from_place('Munich, Germany', network_type='drive')
route1 = ox.shortest_path(G, 20461931, 75901933, weight=None)

orig = ox.get_nearest_node(G, (48.1336081,  11.58172095))
dest = ox.get_nearest_node(G, (48.17822992, 11.53754219))
route2 = ox.shortest_path(G, orig, dest, weight='travel_time')

route_map = ox.plot_route_folium(G, route1, route_color='#ff0000', opacity=0.5)
route_map = ox.plot_route_folium(G, route2, route_map=route_map, route_color='#0000ff', opacity=0.5)
route_map.save('route.html')
 

Комментарии:

1. Примечание: get_nearest_node удалено. Вместо этого используйте osmnx.distance.nearest_nodes . См . osmnx.readthedocs.io/en/stable /…