您的位置:首页 > 其它

如何通过软件去除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 复杂一些的算法,如有多个位置,位置序列能提供更多的先验信息,如方向、方向变化(拐角)信息。这种算法和手写输入算法是相通的,道路是字库里的字,移动轨迹是手写的笔画序列。

算法层面“修正”位置是有副作用的,当用户真的不在“匹配线”上时,匹配反而是糟糕的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: