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

相关文章

Nginx location匹配模式与规则详解

《Nginxlocation匹配模式与规则详解》:本文主要介绍Nginxlocation匹配模式与规则,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、环境二、匹配模式1. 精准模式2. 前缀模式(不继续匹配正则)3. 前缀模式(继续匹配正则)4. 正则模式(大

Java 正则表达式URL 匹配与源码全解析

《Java正则表达式URL匹配与源码全解析》在Web应用开发中,我们经常需要对URL进行格式验证,今天我们结合Java的Pattern和Matcher类,深入理解正则表达式在实际应用中... 目录1.正则表达式分解:2. 添加域名匹配 (2)3. 添加路径和查询参数匹配 (3) 4. 最终优化版本5.设计思

Python如何自动生成环境依赖包requirements

《Python如何自动生成环境依赖包requirements》:本文主要介绍Python如何自动生成环境依赖包requirements问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录生成当前 python 环境 安装的所有依赖包1、命令2、常见问题只生成当前 项目 的所有依赖包1、

openCV中KNN算法的实现

《openCV中KNN算法的实现》KNN算法是一种简单且常用的分类算法,本文主要介绍了openCV中KNN算法的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录KNN算法流程使用OpenCV实现KNNOpenCV 是一个开源的跨平台计算机视觉库,它提供了各

Python中使用正则表达式精准匹配IP地址的案例

《Python中使用正则表达式精准匹配IP地址的案例》Python的正则表达式(re模块)是完成这个任务的利器,但你知道怎么写才能准确匹配各种合法的IP地址吗,今天我们就来详细探讨这个问题,感兴趣的朋... 目录为什么需要IP正则表达式?IP地址的基本结构基础正则表达式写法精确匹配0-255的数字验证IP地

Redis在windows环境下如何启动

《Redis在windows环境下如何启动》:本文主要介绍Redis在windows环境下如何启动的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Redis在Windows环境下启动1.在redis的安装目录下2.输入·redis-server.exe

Pytest多环境切换的常见方法介绍

《Pytest多环境切换的常见方法介绍》Pytest作为自动化测试的主力框架,如何实现本地、测试、预发、生产环境的灵活切换,本文总结了通过pytest框架实现自由环境切换的几种方法,大家可以根据需要进... 目录1.pytest-base-url2.hooks函数3.yml和fixture结论你是否也遇到过

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

浅谈配置MMCV环境,解决报错,版本不匹配问题

《浅谈配置MMCV环境,解决报错,版本不匹配问题》:本文主要介绍浅谈配置MMCV环境,解决报错,版本不匹配问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录配置MMCV环境,解决报错,版本不匹配错误示例正确示例总结配置MMCV环境,解决报错,版本不匹配在col

springboot+dubbo实现时间轮算法

《springboot+dubbo实现时间轮算法》时间轮是一种高效利用线程资源进行批量化调度的算法,本文主要介绍了springboot+dubbo实现时间轮算法,文中通过示例代码介绍的非常详细,对大家... 目录前言一、参数说明二、具体实现1、HashedwheelTimer2、createWheel3、n