头疼,关于地图定位计算距离的问题

2015-11-04 09:26:34 +08:00
 lynulzy
项目中需要统计行驶距离,众所周知定位点存在着一定的随机性(如果把精度设置的很高)即使在同一地点不动也会得到两个(甚至更多的)定位点,而问题就在于在这种情况下应该怎样统计距离,做过这方面的朋友支个招...
3345 次点击
所在节点    iDev
10 条回复
jokie
2015-11-04 09:47:45 +08:00
是统计两个坐标点直接的行驶距离吗?
clino
2015-11-04 09:52:09 +08:00
没做过
不过比如误差是 10 米,那 10 米内的变化就忽略当成没动这样行不行呢
lynulzy
2015-11-04 10:07:29 +08:00
@clino 这样尝试过,统计出来的距离也不准,设置成 10m 在同一地点不动,也会得到相差 100m 的两个定位点
@jokie 统计行驶过的路程的所有点的距离之和
a6377508
2015-11-04 10:11:41 +08:00
@lynulzy 将距离相近的点过滤掉,然后剩下的依次加起来,就可以了
clino
2015-11-04 11:21:30 +08:00
@lynulzy 每次不直接记录某一个从传感器获取到的定位点值,而是将一段时间内都是 10 米内误差的点做平均值以后,拿那个平均值点作为位置数据来保存
goool
2015-11-04 11:44:02 +08:00
得到了一组有序的点以及每个点上的误差半径,按顺序绘出每个含误差的圆。

如果采样密集但精度不高的话(例如 Wi-Fi 定位或基站定位的情况),这些圆会产生很多重叠区域,丢掉无重叠的圆,把所有重叠区域的中心点连接起来当作运动路径即可。

可能的改进,路径转弯点。可以结合地图上的路口坐标,只要经过路口附近,就把路口纳入路径。
zjqzxc
2015-11-04 11:54:51 +08:00
基本按照 @goool 的思路吧。。

距离不要实时计算,实时采集数据先存储。结束后根据这一群点拟合出一条路径来。
Hipponensis
2015-11-04 11:57:17 +08:00
mark ,正好也碰到了这个问题。
lucky2touch
2015-11-04 13:00:28 +08:00
这类数据一般不会很精确,最多只是趋于精准,只有定位数据的话肯定会有跳变,一般处理的方式就是各种滤波算法,使得行驶路径相对比较平滑,对于静止的车的跳变,如果不引入其它数据,还是很难确定是否真的是没动之类的。
lynulzy
2015-11-05 09:27:52 +08:00
@lucky2touch
@goool

暂时采用了
1.间隔 10s 采用一个定位点,
2.得到定位点之后要和上个定位点之间的距离比较,定位点保留到小数点后 4 位,
3.如果定位点之间距离的偏差太大( 2000m 以上,正常的车速达不到 1min 3km 的速度)则忽略和上个定位点之间距离。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/233446

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX