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.
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
Entschuldigung für den vorherigen Kommentar. Ich freue mich zu hören, dass es funktioniert. –