我在 Android 上使用 GPS,需要对位置进行速度补偿,以消除由于位置计算滞后而导致的错误。我感兴趣的速度在 5 到 10 英里/小时的范围内,因为这是一艘帆船。
这是我的代码:
public double[] correctLocation(double pLat,double pLong,double pAngle,double pSpeed, double factor){
double[] latLong = new double[2];
latLong[0] = pLat + factor * pSpeed * Math.cos(pAngle * Math.PI / 180);
latLong[1] = pLong + factor * pSpeed * Math.sin(pAngle * Math.PI / 180) / Math.cos(pLat * Math.PI / 180);
return latLong;
}
我在汽车上以 25 英里/小时的速度进行了一次测试,计算出该系数应该是 3E-6,但在以跑步和步行速度进行尝试时,很明显需要一个更像 6E-6 的系数。尽管我知道人们会在谷歌自动驾驶汽车中这样做,但我无法通过谷歌找到任何对此的参考。我假设其他人会进行此类更正。
有谁可以帮我离开这里吗?GPS是带有MTK芯片组的Qstarz A1000XT。这种简单的方法可能会丢失一些东西。(我假设我不需要加速,因为这是一艘重型船,加速时间常数为 1 分钟)。