Сохраните маршрут и сохраните его кривизну с помощью Python OSMnx - PullRequest
0 голосов
/ 12 февраля 2019

С OSMnx я бы хотел сохранить путь с его кривизной, как показано на рисунке ниже.

import osmnx as ox
import networkx as nx

# Download the road network
G = ox.graph_from_place('Monterey, California', network_type='drive')

# Starting and ending point of a trip
start = [36.580665,-121.8297467]
end = [36.594319,-121.8727587]

# Retrieve nearest node
orig_node = ox.get_nearest_node(G, start)
dest_node = ox.get_nearest_node(G, end)

# Compute the path of the trip
route = nx.shortest_path(G, orig_node, dest_node, weight='length')

# Plot the trip
fig, ax = ox.plot_graph_route(G_projected,
                              route,edge_linewidth=1,
                              node_size=20,
                              fig_height=20,route_linewidth=10)

enter image description here

Очевидно,Я могу сохранить список питонов маршрута, но потерю кривизну пути, поскольку список маршрутов содержит меньше узлов.Можно ли сохранить отображаемый красный маршрут в формате полилинии Google или что-то подобное, чтобы сохранить его изогнутую форму?

1 Ответ

0 голосов
/ 12 февраля 2019

Вы можете преобразовать геометрию ребер маршрута в MultiLineString:

from shapely.geometry import MultiLineString
route_pairwise = zip(route[:-1], route[1:])
edges = ox.graph_to_gdfs(G, nodes=False).set_index(['u', 'v']).sort_index()
lines = [edges.loc[uv, 'geometry'].iloc[0] for uv in route_pairwise]
MultiLineString(lines)

Теперь вы можете получить доступ к атрибуту .wkt MultiLineString и сохранить эту строку Известный текст на диск.

...