グラフの各ノードとエッジのすべての属性があります。あなたは使用してノード属性を取得することができます。
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
とエッジを得るためには、あなたがG[u][v]
を使用することができます属性:
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]}}
すべての属性がGeoDataFrameのグラフの中でもあります。あなたはノードのリストを持っている場合は は、すべてのノードのジオメトリを取得する最も簡単な方法は次のとおりです。
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
# ...
出力がGeoDataFrameです。
私の悪いAlireza、私は休暇中で、どんなスクリーンからも遠かった!私はちょうどあなたのラインをテストし、彼らは正常に働いた。私はすぐにあなたの答えを検証する、もう一度ありがとう。 – Raphadasilva
前のコメントに申し訳ありません。それが聞こえてうれしいです。 –