2017-09-15 2 views
0

Ich habe die Python-Bibliothek OSMNx verwendet, um eine optimale Route zwischen mehreren Schritten einer Städtereise zu zeichnen. Die letzte Variable ist a list of OSM ids.OSMNx: Koordinaten von Knoten mit OSM-ID erhalten

Jetzt versuche ich diese Route als shp oder JSON-Dateien zu speichern. Das Problem ist, dass ich dafür den Längen- und Breitengrad jedes Knotens benötige, aber ich habe dafür keine OSMNx-Funktion gefunden.

Ich versuchte get_route_edge_attributes (aber Koordinaten sind kein gültiges Attribut für diese Funktion). Gibt es eine Möglichkeit, Koordinaten eines OSM-Knotens mit dieser einzelnen ID zu erhalten?

Vielen Dank im Voraus.

+0

Meine schlechte Alireza, ich war im Urlaub und weit weg von jedem Bildschirm! Ich habe gerade Ihre Linien getestet und sie haben gut funktioniert. Ich bestätige deine Antwort sofort, danke nochmals. – Raphadasilva

+0

Entschuldigung für den vorherigen Kommentar. Ich freue mich zu hören, dass es funktioniert. –

Antwort

1

Sie haben alle Attribute von jedem Knoten und Kante in der Grafik. Sie können unter Verwendung von Knotenattributen erhalten:

G.node[38862848] 
#out: {'highway': nan, 
# 'lat': 45.3210533, 
# 'lon': -122.9790558, 
# 'osmid': '38862848', 
# 'ref': nan, 
# 'x': 501641.47862882155, 
# 'y': 5018616.5723966481} 

G.node[38862848]['lat'] 
# out: 45.3210533 

und Kante zu bekommen Attribute Sie G[u][v] verwenden können:

G[5035130880][4963510289] 
# out: 
#{0: {'bridge': 'yes', 
# 'geometry': <shapely.geometry.linestring.LineString at 0x7f90ad7d5860>, 
# 'highway': 'secondary', 
# 'length': 671.332597496, 
# 'name': 'Northwest 185th Avenue', 
# 'oneway': False, 
# 'osmid': [124454683, 24446714, 124454682]}} 

Alle Attribute sind auch in GeoDataFrame der des Graphen. Wenn Sie Liste der Knoten haben, ist der einfachste Weg, um die Geometrie aller Knoten zu erhalten ist:

import osmnx as ox 
import networkx as nx 

gdf_nodes, gdf_edges = ox.graph_to_gdfs() 
path = nx.shortest_path(G, G.nodes()[0], G.nodes()[1]) 
gdf_nodes.loc[path] 
#out: 
#  highway lat lon osmid ref x y geometry traffic_signals 
#5035130880 NaN 45.5637 -122.868 5035130880 NaN 510334 5.04558e+06 POINT (510334.0390091945 5045583.999886028) 0 
#4963510289 NaN 45.5698 -122.868 4963510289 NaN 510329 5.04625e+06 POINT (510329.3114555664 5046254.728223645) 0 
# ... 

der Ausgang ein GeoDataFrame ist.

Verwandte Themen