#osmnx
#osmnx
Вопрос:
plot_route_folium не работает для неориентированного графика, что я могу сделать?
Таким образом, он работает для графика
G = ox.graph_from_place(place, simplify=False, custom_filter=custom_filter_ways)
orig = 25635046.0
dest = 3603422387.0
route = nx.shortest_path(G, orig, dest, weight='length')
route_map = ox.plot_route_folium(G, route)
Но если я хочу сделать
Gu = ox.get_undirected(G)
route_undirected = nx.shortest_path(Gu, orig, dest, weight='length')
route_map_u = ox.plot_route_folium(Gu, route_undirected)
Я получаю следующую ошибку:
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-50-8b91fb9c57b4> in <module>
----> 1 route_map_u = ox.plot_route_folium(Gu, route_undirected)
C:ProgramDataAnaconda3envsoxlibsite-packagesosmnxfolium.py in plot_route_folium(G, route, route_map, popup_attribute, tiles, zoom, fit_bounds, route_color, route_width, route_opacity, **kwargs)
202 gdf_edges = utils_graph.graph_to_gdfs(G.subgraph(route), nodes=False, fill_edge_geometry=True)
203 route_nodes = list(zip(route[:-1], route[1:]))
--> 204 index = [
205 gdf_edges[(gdf_edges["u"] == u) amp; (gdf_edges["v"] == v)].index[0] for u, v in route_nodes
206 ]
C:ProgramDataAnaconda3envsoxlibsite-packagesosmnxfolium.py in <listcomp>(.0)
203 route_nodes = list(zip(route[:-1], route[1:]))
204 index = [
--> 205 gdf_edges[(gdf_edges["u"] == u) amp; (gdf_edges["v"] == v)].index[0] for u, v in route_nodes
206 ]
207 gdf_route_edges = gdf_edges.loc[index]
C:ProgramDataAnaconda3envsoxlibsite-packagespandascoreindexesbase.py in __getitem__(self, key)
4099 if is_scalar(key):
4100 key = com.cast_scalar_indexer(key, warn_float=True)
-> 4101 return getitem(key)
4102
4103 if isinstance(key, slice):
IndexError: index 0 is out of bounds for axis 0 with size 0
Построение графика работает как
fig, ax = ox.plot_graph_route(Gu, route_undirected)
Ответ №1:
Смотрите Документы: для используемой вами функции требуется MultiDiGraph
аргумент, но вместо этого вы передаете его a MultiGraph
. Хотя функция не применяет строгие проверки типов, вы передали ей неожиданный тип аргумента.