离线电子地图路径规划

2023-12-19 01:40

本文主要是介绍离线电子地图路径规划,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本来想弄个电子地图和无人驾驶联系起来,后来发现中间存在的问题太多了,坐标系转换、点的精度、地图尺寸等问题,后来就没将二者 联系起来,只做出来一个基于MFC与HTML交互的离线电子地图路径规划的程序。

做这个参考了好多资源吧,其中也有些是自己写的,我这里就是整理整理。

首先说明我的程序能实现什么,先放图

首先是一个MFC框架,占据最大地方的是一个web空间,通过在onintit中加载一个URL把HTML的文本文档加载进去,这个很简单,CSDN上有教程。

地图我是用的OpenStreetMap的地图,用Maperitive下载瓦片,存放出一个Tiles,也可以使用在线地图,只需要把html中的链接该成网址即可,

    //var osmUrl='http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';var osmUrl='Tiles/{z}/{x}/{y}.png';

第一行是在线地图,第二行是调用下载好的离线瓦片资源。

这个问题也不大,网上有很对关于百度地图的加载教程,我使用的是leaflet

想要在地图中实现什么功能,找几个js就行

    <title>LeafletOSM</title><link rel="stylesheet" href="leaflet/leaflet.css">
<link rel="stylesheet" href="leaflet/leaflet.marker.highlight.css"><link rel="stylesheet" href="leaflet/leaflet-routing-machine.css"><link rel="stylesheet" href="leaflet/leaflet.contextmenu.css"><script src="leaflet/leaflet.js"></script><script src="leaflet/leaflet.marker.highlight.js"></script>
<script src="leaflet/es5-shim.min.js"></script>
<script src="leaflet/leaflet-routing-machine.js"></script>
<script src="leaflet/leaflet.contextmenu.js"></script>
<script src="leaflet/json2.js"></script>

。下面就是最重点的部分了,如何实现离线的路径规划,还要把数据提取出来。

graphhopper    什么原理咱也不懂,反正就是真香,在WINDOWS和LINUX中都能用,我是在Github上对着教程一点点尝试的,说实话,他们那教程有点混乱。

先说怎么用,在说怎么做吧,我是参考了一个博客做的 基于Leaflet和GraphHopper实现离线路径规划

写的不错,还有这个 基于OpenStreetMap地图数据的离线路径规划

怎么用呢,WIN+R  ,cmd,进入你下载某东西的一个盘,

java -Dgraphhopper.datareader.file=where.osm.pbf -jar graphhopper-web-****.jar server config-example.yml

输入这个代码就行了

解释一下,java 需要配置java环境

-Dgraphhopper.datareader.file=where.osm.pbf

使用graphhpper算法打开某地方的.osm.pbf文件,这个就是你所要进行路径规划的地图范围,比如:shandong-latest.osm.pbf 

-jar graphhopper-web-****.jar

****是一个版本号,自己去github下载最新版本对应上就行,

所以你的文件夹中应有三个文件

config-example.yml   配置文件

graphhopper-web-0.**.0.jar   算法文件

shandong-latest.osm.pbf    地图文件

运行后,会有下图显示

然后你保持这个终端开启,(linux一样,语句都一样),打开HTML地图,就能进行路径规划了。

至于HTML中怎么写,怎么用,如果有人看的话,下次再写吧

这篇关于离线电子地图路径规划的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/510486

相关文章

Spring Boot中的路径变量示例详解

《SpringBoot中的路径变量示例详解》SpringBoot中PathVariable通过@PathVariable注解实现URL参数与方法参数绑定,支持多参数接收、类型转换、可选参数、默认值及... 目录一. 基本用法与参数映射1.路径定义2.参数绑定&nhttp://www.chinasem.cnbs

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

VSCode设置python SDK路径的实现步骤

《VSCode设置pythonSDK路径的实现步骤》本文主要介绍了VSCode设置pythonSDK路径的实现步骤,包括命令面板切换、settings.json配置、环境变量及虚拟环境处理,具有一定... 目录一、通过命令面板快速切换(推荐方法)二、通过 settings.json 配置(项目级/全局)三、

使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)

《使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)》字体设计和矢量图形处理是编程中一个有趣且实用的领域,通过Python的matplotlib库,我们可以轻松将字体轮廓... 目录背景知识字体轮廓的表示实现步骤1. 安装依赖库2. 准备数据3. 解析路径指令4. 绘制图形关键

如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)

《如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)》:本文主要介绍如何更改pycharm缓存路径和虚拟内存分页文件位置(c盘爆红)问题,具有很好的参考价值,希望对大家有所帮助,如有... 目录先在你打算存放的地方建四个文件夹更改这四个路径就可以修改默认虚拟内存分页js文件的位置接下来从高级-

一文详解如何查看本地MySQL的安装路径

《一文详解如何查看本地MySQL的安装路径》本地安装MySQL对于初学者或者开发人员来说是一项基础技能,但在安装过程中可能会遇到各种问题,:本文主要介绍如何查看本地MySQL安装路径的相关资料,需... 目录1. 如何查看本地mysql的安装路径1.1. 方法1:通过查询本地服务1.2. 方法2:通过MyS

Python如何调用指定路径的模块

《Python如何调用指定路径的模块》要在Python中调用指定路径的模块,可以使用sys.path.append,importlib.util.spec_from_file_location和exe... 目录一、sys.path.append() 方法1. 方法简介2. 使用示例3. 注意事项二、imp

使用Python实现矢量路径的压缩、解压与可视化

《使用Python实现矢量路径的压缩、解压与可视化》在图形设计和Web开发中,矢量路径数据的高效存储与传输至关重要,本文将通过一个Python示例,展示如何将复杂的矢量路径命令序列压缩为JSON格式,... 目录引言核心功能概述1. 路径命令解析2. 路径数据压缩3. 路径数据解压4. 可视化代码实现详解1

Linux修改pip和conda缓存路径的几种方法

《Linux修改pip和conda缓存路径的几种方法》在Python生态中,pip和conda是两种常见的软件包管理工具,它们在安装、更新和卸载软件包时都会使用缓存来提高效率,适当地修改它们的缓存路径... 目录一、pip 和 conda 的缓存机制1. pip 的缓存机制默认缓存路径2. conda 的缓

Windows系统下如何查找JDK的安装路径

《Windows系统下如何查找JDK的安装路径》:本文主要介绍Windows系统下如何查找JDK的安装路径,文中介绍了三种方法,分别是通过命令行检查、使用verbose选项查找jre目录、以及查看... 目录一、确认是否安装了JDK二、查找路径三、另外一种方式如果很久之前安装了JDK,或者在别人的电脑上,想