Python 指南-最短路径(Dijkstra 算法):
Dijkstra 算法可在 Python 库 OSMNX 中实现,可用于查找两个位置之间按距离或时间加权的最短路径。该算法使用 OpenStreetMap (OSM) 网络来驾驶、步行或骑自行车,并在后台使用 Python 库 NETWORKX 查找路线。
编码练习
正如我提到的,我将做一个分步指南,所以让我们开始吧。首先让我们导入所需的库
import osmnx as ox
import geopandas as gpd
from shapely.geometry import Point, LineString
import pandas as pd
import matplotlib.pyplot as plt
1. 定义出发地和目的地
简单地说,我们将创建几何对象作为点:
# origin and destination geomorigin_geom = Point(-5.6613932957355715, 32.93210288339607)destination_geom = Point(-3.3500597061072726, 34.23038027794419)
2. 获取OSM Graph对象
然后,我们将提取将用于生成最短路径的图。让我们一步一步来看看。
- 从起点和终点创建 GeoDataFrame
# create origin dataframe
origin = gpd.GeoDataFrame(columns = ['name', 'geometry'], crs = 4326, geometry = 'geometry')
origin.at[0, 'name'] = 'origin'
origin.at[0, 'geometry'] =origin_geom# create destination dataframe
destination = gpd.GeoDataFrame(columns = ['name', 'geometry'], crs = 4326, geometry = 'geometry')
destination.at[0, 'name'] = 'destination'
destination.at[0, 'geometry'] = destination_geom
- 获取包含出