,可以通过以下步骤实现:
import networkx as nx
import osmnx as ox
G = nx.DiGraph()
G.add_node(1, pos=(0, 0)) # 添加节点1,设置位置为(0, 0)
G.add_node(2, pos=(1, 1)) # 添加节点2,设置位置为(1, 1)
G.add_edge(1, 2, weight=10) # 添加从节点1到节点2的有向边,设置权重为10
place_name = "City, Country" # 设置地点名称,例如"New York, USA"
graph = ox.graph_from_place(place_name, network_type="all") # 下载地图数据并构建网络图
start_node = 123 # 设置起始节点
end_node = 456 # 设置目标节点
shortest_path = nx.shortest_path(graph, start_node, end_node, weight="length") # 计算最短路径
import csv
filename = "shortest_path.csv" # 设置保存路径
with open(filename, "w", newline="") as file:
writer = csv.writer(file)
writer.writerow(["Node", "Latitude", "Longitude"]) # 写入表头
for node in shortest_path:
latitude, longitude = graph.nodes[node]["y"], graph.nodes[node]["x"]
writer.writerow([node, latitude, longitude]) # 写入节点信息
这样,最短路径就会保存在名为"shortest_path.csv"的结构化文件中。在实际应用中,可以根据需要选择其他格式的文件,如JSON、XML等。
关于networkx和osmnx的更多详细信息和用法,请参考以下链接:
领取专属 10元无门槛券
手把手带您无忧上云