如何通过软件去除GPS漂移,让移动轨迹正常?
2017-06-02 00:00
1046 查看
作者:知乎用户
链接:https://www.zhihu.com/question/22697683/answer/105787073
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
为了使移动轨迹“正常”,无外乎1-提高定位精度;-根据已知信息,“修正”位置
关于提高定位精度
单纯使用GPS方式(低成本硬件),所能提高的精度,已经到上限了;
利用多种定位方式(如增加WLAN定位),能取得不错的精度效果(普通用户的感受)
关于“修正”位置
如果有已知信息(如底图中的道路),可以用作先验条件,可以做道路匹配(有多种叫法)
这个项目里叫做 map-match
https://github.com/graphhopper/map-matching
谷歌地图有API,功能叫做道路吸附(road snap)
https://developers.google.com/maps/documentation/roads/intro#_1
百度地图API里叫做“绑路”
yingyan - Wiki
个人的感觉,百度地图、腾讯地图可能已经有限度地使用了此类“修正”位置的算法,没时间提供来源,有兴趣的同学可以反编译软件包看下。当然,也很可能,算法被封装在了API内,这种呢可以模拟GPS轨迹做下测试
算法如何实现呢,可以开点不负责任的脑洞
1 根据速度,判断用户在车上还是步行;根据方向,判断在路的哪一侧。就获得了匹配的目标线
2 简单粗暴的算法,直接将位置匹配到目标线上最近的边,匹配点选为垂足(可参考下 Digitalizing GPX Points or How to Track Vehicles With GraphHopper)
3 复杂一些的算法,如有多个位置,位置序列能提供更多的先验信息,如方向、方向变化(拐角)信息。这种算法和手写输入算法是相通的,道路是字库里的字,移动轨迹是手写的笔画序列。
算法层面“修正”位置是有副作用的,当用户真的不在“匹配线”上时,匹配反而是糟糕的
链接:https://www.zhihu.com/question/22697683/answer/105787073
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
为了使移动轨迹“正常”,无外乎1-提高定位精度;-根据已知信息,“修正”位置
关于提高定位精度
单纯使用GPS方式(低成本硬件),所能提高的精度,已经到上限了;
利用多种定位方式(如增加WLAN定位),能取得不错的精度效果(普通用户的感受)
关于“修正”位置
如果有已知信息(如底图中的道路),可以用作先验条件,可以做道路匹配(有多种叫法)
这个项目里叫做 map-match
https://github.com/graphhopper/map-matching
谷歌地图有API,功能叫做道路吸附(road snap)
https://developers.google.com/maps/documentation/roads/intro#_1
百度地图API里叫做“绑路”
yingyan - Wiki
个人的感觉,百度地图、腾讯地图可能已经有限度地使用了此类“修正”位置的算法,没时间提供来源,有兴趣的同学可以反编译软件包看下。当然,也很可能,算法被封装在了API内,这种呢可以模拟GPS轨迹做下测试
算法如何实现呢,可以开点不负责任的脑洞
1 根据速度,判断用户在车上还是步行;根据方向,判断在路的哪一侧。就获得了匹配的目标线
2 简单粗暴的算法,直接将位置匹配到目标线上最近的边,匹配点选为垂足(可参考下 Digitalizing GPX Points or How to Track Vehicles With GraphHopper)
3 复杂一些的算法,如有多个位置,位置序列能提供更多的先验信息,如方向、方向变化(拐角)信息。这种算法和手写输入算法是相通的,道路是字库里的字,移动轨迹是手写的笔画序列。
算法层面“修正”位置是有副作用的,当用户真的不在“匹配线”上时,匹配反而是糟糕的
相关文章推荐
- 英文操作系统如何正常显示中文软件
- vb.net中如何快速绘制鼠标移动轨迹
- 如何去除移动磁盘写保护?
- 浅谈如何通过互联网推广软件产品
- 浅谈如何通过互联网推广软件产品
- 如何在PB中通过读取硬盘序列号实现软件加密
- 案例:如何不通过第三方软件实现蓝牙与手机的内存卡交互
- Flex中如何通过设置trackSkin为null将List控件中的滚动条轨道皮肤(track skin)去除的例子
- 如何去除《谷歌金山词霸 1.95》软件内的广告,来加速启动。
- linux 下如何通过软件模拟按键
- 如何通过软件使生产线达到平衡呢?
- 如何通过C++编程获取60系列设备中软件的Build版本
- 实测蓝牙GPS U-Touch兼轨迹记录软件PK--Nokia Sports Tracker PK GPSToy
- 如何使用部署实用工具和配置来简化在服务器之间移动软件包的工作
- Exchange 2007中如何正常使用移动设备
- 如何解决移动软件中的连接状态问题
- 如何通过批处理将子文件夹内的文件移动到当前文件夹
- 如何使用部署实用工具和配置来简化在服务器之间移动软件包的工作
- 如何通过CSS去除表格默认样式的间距
- 移动开发,如何选择手机软件开发平台?