地理定位非常近似,特别是在建筑物中。 例如,在厚厚的混凝土墙后面,我在手机上的传感器向我显示,当设备在桌面上一动不动时,我移动到3米。
这使得在不在开放街道的区域无法进行准确的计算。
我的想法 - 我可以在20秒内制作20个地理点阵并获得平均速度,但我应该使用哪些数据?
如果我从这个数组中取出19个距离并将它们除以(lastTime-firstTime)
- 我将无法获得平均速度,因为它可以"跳跃" 3米没有真正移动,所以在模糊区域的结果将完全错误。
所以,我可以在第一个和最后一个地理位置之间取一个距离并将其除以(lastTime-firstTime)
,但是......只有当一个人完全笔直移动时,结果才会正确。如果他连续10秒并且在那之后右转 - 距离将不是他走的真正距离 - 两个cathetuses的总和,它将是这个三角形的斜边。所以,这不是计算实际速度的方法。
我需要(我想)是一个近似拉直路线的复杂算法,它将被收集到correctedDistances
的某个数组中,我们可以使用它们找到或多或少的真实速度?
如图所示 - 红色是我们从传感器获得的数据,黑色线条是一个人的近似真实路线,通过它我们可以计算或多或少忠实的速度。
但可能已经有为这些任务制作的现成的algorythm或公式?我不是指谷歌地图或任何其他,只是一个简单的公式或algorythm(可能有比我想象的更简单的逻辑)