// create gdf of the route edges
gdf_edges = utils_graph.graph_to_gdfs(G.subgraph(route), nodes=False, fill_edge_geometry=True)
route_nodes = list(zip(route[:-1], route[1:]))
index = [
gdf_edges[(gdf_edges["u"] == u) & (gdf_edges["v"] == v)].index[0] for u, v in route_nodes
]
gdf_route_edges = gdf_edges.loc[index]
// get route centroid
x, y = gdf_route_edges.unary_union.centroid.xy
route_centroid = (y[0], x[0])
// create the folium web map if one wasn"t passed-in
if route_map is None:
route_map = folium.Map(location=route_centroid, zoom_start=zoom, tiles=tiles)
// add each route edge to the map
for _, row in gdf_route_edges.iterrows():
pl = _make_folium_polyline(
edge=row,
edge_color=route_color,
edge_width=route_width,
edge_opacity=route_opacity,
popup_attribute=popup_attribute,
**kwargs,
)
pl.add_to(route_map)
// if fit_bounds is True, fit the map to the bounds of the route by passing
// list of lat-lng points as [southwest, northeast]
if fit_bounds and isinstance(route_map, folium.Map):
tb = gdf_route_edges.total_bounds
bounds = [(tb[1], tb[0]), (tb[3], tb[2])]
route_map.fit_bounds(bounds)
return route_map