25 lines
802 B
Python
25 lines
802 B
Python
import osmnx as ox
|
|
import pandas as pd
|
|
|
|
# 获取深圳市南山区的边界
|
|
nanshan = ox.geocode_to_gdf('Nanshan District, Shenzhen, China')
|
|
|
|
# 从南山的多边形中获取公交路网
|
|
G = ox.graph_from_polygon(nanshan.geometry.iloc[0], network_type='drive', truncate_by_edge=True)
|
|
|
|
# 从图中获取所有的边缘和它们的数据
|
|
edges_data = [(u, v, data) for u, v, data in G.edges(data=True)]
|
|
|
|
rows = []
|
|
for u, v, data in edges_data:
|
|
start_point = G.nodes[u]
|
|
end_point = G.nodes[v]
|
|
row = [start_point['x'], start_point['y'], end_point['x'], end_point['y'], data['length']]
|
|
rows.append(row)
|
|
|
|
# 将数据保存为DataFrame
|
|
df = pd.DataFrame(rows, columns=['start_lon', 'start_lat', 'end_lon', 'end_lat', 'length'])
|
|
|
|
# 保存为CSV
|
|
df.to_csv('nanshan_all_routes.csv', index=False)
|