当前位置: 首页 > news >正文

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

  • 获取包含出

相关文章:

  • 【微服务】Spring Boot 版本升级到 2.7.18
  • Web安全基础入门+信息收集篇
  • 3.21 ARM day5
  • Java学习笔记01
  • 基于ssm的学生选课管理系统的设计与实现
  • 基于ssm的酒店民宿管理系统的设计与实现
  • JAVA面向对象编程 JAVA语言入门基础
  • 【机器学习-07】逻辑回归(Logistic Regression)的介绍和python实现
  • LeetCode 1027——最长等差数列
  • 开源流程图表库(02):Draw.io在线绘制各类图表,导出html使用
  • 【jvm】jinfo使用
  • javaSwing宿舍管理系统(三个角色)
  • MySQL--select count(*)、count(1)、count(列名) 的区别你知道吗?
  • 在 MacOS 中安装
  • 【Postman】工具使用介绍
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • exif信息对照
  • flutter的key在widget list的作用以及必要性
  • Puppeteer:浏览器控制器
  • Redis中的lru算法实现
  • SpringBoot几种定时任务的实现方式
  • Vue组件定义
  • 半理解系列--Promise的进化史
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 一道面试题引发的“血案”
  • 一些css基础学习笔记
  • 自动记录MySQL慢查询快照脚本
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • #162 (Div. 2)
  • #每日一题合集#牛客JZ23-JZ33
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (16)Reactor的测试——响应式Spring的道法术器
  • (2)(2.10) LTM telemetry
  • (4.10~4.16)
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (转)Sublime Text3配置Lua运行环境
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET Core 中插件式开发实现
  • .Net8 Blazor 尝鲜
  • @Transactional 竟也能解决分布式事务?
  • [20150707]外部表与rowid.txt
  • [Android]使用Retrofit进行网络请求
  • [C#]winform部署yolov9的onnx模型
  • [C++] 默认构造函数、参数化构造函数、拷贝构造函数、移动构造函数及其使用案例
  • [CF494C]Helping People
  • [Docker]十.Docker Swarm讲解