HMM地图匹配算法库Barefoot环境搭建

2024-06-04 19:12

本文主要是介绍HMM地图匹配算法库Barefoot环境搭建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.引入gps路径匹配开源项目barefoot

克隆仓库

git clone https://github.com/bmwcarit/barefoot.git

打开项目执行mvn命令将项目打包到maven仓库

mvn install -DskipTests

在自己的maven项目中引入barefoot依赖

        <dependency><groupId>com.bmw-carit</groupId><artifactId>barefoot</artifactId><version>0.1.5</version></dependency>

下载地图数据

手动划定深圳市范围,下载osm.pbf格式数据

下载地址:https://extract.bbbike.org/

overpass api可下载指定城市或区域的地图

2.安装PostgreSql数据库及相关支持

安装PostgreSql

安装用于导入osm.pbf格式地图数据的工具osmosis,下载下来直接解压,并将其bin目录路径添加到环境变量path中即可。
下载地址:https://bretth.dev.openstreetmap.org/osmosis-build/
用osmosis将osm.pbf文件解压为.osm格式文件

osmosis --read-pbf shenzhen.osm.pbf --write-xml shenzhen.osm

下载安装对应ArcGIS版本的osm编辑插件,然后在插件中用load osm file将.osm文件导入到ArcGIS中,导入的时间可能会比较长,放在那等一下地图就会自己加载出来了
参考文章:https://support.esri.com/en/technical-article/000023329

3.将osm.pdf(或osm)地图数据导入到pg数据库

参考文章:PostgreSQL+PostGIS安装以及用Osmosis导入openstreetmap地图数据

首先在pgadmin4界面中新建一个数据库sz_osm,然后打开命令行终端,先运行两个给数据库安装扩展的命令,然后运行一个sql文件建表,注意sql文件路径中不能有中文或空格。

psql -U postgres -d sz_osm -c "CREATE EXTENSION postgis;"
psql -U postgres -d sz_osm -c "CREATE EXTENSION hstore;"
psql -U postgres -d sz_osm -f D:\IdeaProject\barefoot\map\osm\pgsnapshot_schema_0.6.sql

在这里插入图片描述
最后导入下载的osm.pbf地图数据

osmosis --read-pbf file=C:\Users\syc\Desktop\road_data\Road_data_download\shenzhen.osm.pbf --write-pgsql user=postgres database=sz_osm password=post

如果是osm格式的则将–read-pbf改为–read-xml。或者用如下命令将osm改为osm.pbf格式

osmosis --rx mainRoadByMerk.osm --wb mainRoadByMerk.osm.pbf

4. 使用barefoot库提供的脚本将pg数据库中的数据转换为bfmap格式

准备并启动python2.7环境,以下所有命令都要在python2.7环境中运行!!!!

安装三个Python库

conda install Psycopg2
conda install NumPy
conda install Python-GDAL

Python-GDAL这个库可能找不到,可安装gdal代替。安装时可能会出现环境无法解决的错误,解决方案可参考:https://blog.csdn.net/qq_27377201/article/details/107009927

conda install gdal

运行如下命令开始转换数据,注意新表名不要和原表名冲突

python D:\IdeaProject\barefoot\map\tools\osm2ways.py --host localhost --port 5432 --database sz_osm --table bf_ways --user postgres --slim
python D:\IdeaProject\barefoot\map\tools\ways2bfmap.py --source-host localhost --source-port 5432 --source-database sz_osm --source-table bf_ways --source-user postgres --target-host localhost --target-port 5432 --target-database sz_osm --target-table bfmap_ways --target-user postgres --config D:\IdeaProject\barefoot\map\tools\road-types.json

总结

使用开源库时一定要严格按照使用文档来,特别是软件包需要的版本,不能随意

这篇关于HMM地图匹配算法库Barefoot环境搭建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

SpringBoot实现MD5加盐算法的示例代码

《SpringBoot实现MD5加盐算法的示例代码》加盐算法是一种用于增强密码安全性的技术,本文主要介绍了SpringBoot实现MD5加盐算法的示例代码,文中通过示例代码介绍的非常详细,对大家的学习... 目录一、什么是加盐算法二、如何实现加盐算法2.1 加盐算法代码实现2.2 注册页面中进行密码加盐2.

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时

Centos环境下Tomcat虚拟主机配置详细教程

《Centos环境下Tomcat虚拟主机配置详细教程》这篇文章主要讲的是在CentOS系统上,如何一步步配置Tomcat的虚拟主机,内容很简单,从目录准备到配置文件修改,再到重启和测试,手把手带你搞定... 目录1. 准备虚拟主机的目录和内容创建目录添加测试文件2. 修改 Tomcat 的 server.X

使用Folium在Python中进行地图可视化的操作指南

《使用Folium在Python中进行地图可视化的操作指南》在数据分析和可视化领域,地图可视化是一项非常重要的技能,它能够帮助我们更直观地理解和展示地理空间数据,Folium是一个基于Python的地... 目录引言一、Folium简介与安装1. Folium简介2. 安装Folium二、基础使用1. 创建

VSCode配置Anaconda Python环境的实现

《VSCode配置AnacondaPython环境的实现》VisualStudioCode中可以使用Anaconda环境进行Python开发,本文主要介绍了VSCode配置AnacondaPytho... 目录前言一、安装 Visual Studio Code 和 Anaconda二、创建或激活 conda

pytorch+torchvision+python版本对应及环境安装

《pytorch+torchvision+python版本对应及环境安装》本文主要介绍了pytorch+torchvision+python版本对应及环境安装,安装过程中需要注意Numpy版本的降级,... 目录一、版本对应二、安装命令(pip)1. 版本2. 安装全过程3. 命令相关解释参考文章一、版本对

使用DeepSeek搭建个人知识库(在笔记本电脑上)

《使用DeepSeek搭建个人知识库(在笔记本电脑上)》本文介绍了如何在笔记本电脑上使用DeepSeek和开源工具搭建个人知识库,通过安装DeepSeek和RAGFlow,并使用CherryStudi... 目录部署环境软件清单安装DeepSeek安装Cherry Studio安装RAGFlow设置知识库总

Linux搭建Mysql主从同步的教程

《Linux搭建Mysql主从同步的教程》:本文主要介绍Linux搭建Mysql主从同步的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux搭建mysql主从同步1.启动mysql服务2.修改Mysql主库配置文件/etc/my.cnf3.重启主库my

国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)

《国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)》本文给大家利用deepseek模型搭建私有知识问答库的详细步骤和遇到的问题及解决办法,感兴趣的朋友一起看看吧... 目录1. 第1步大家在安装完ollama后,需要到系统环境变量中添加两个变量2. 第3步 “在cmd中

如何通过Golang的container/list实现LRU缓存算法

《如何通过Golang的container/list实现LRU缓存算法》文章介绍了Go语言中container/list包实现的双向链表,并探讨了如何使用链表实现LRU缓存,LRU缓存通过维护一个双向... 目录力扣:146. LRU 缓存主要结构 List 和 Element常用方法1. 初始化链表2.