私は 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 に近い係数が必要であることが明らかです。たとえば、Googleの自動運転車で人々がこれを行っていることは知っていますが、Googleを通じてこれに関する参照を見つけることはできません。私は他の人がこの種の修正をしていると思います。
誰か助けてくれませんか?GPS は、MTK チップセットを搭載した Qstarz A1000XT です。この単純化されたアプローチでは、私が見逃している可能性があるものがあります。(これは加速の時定数が1分の重いボートなので、加速は必要ないと思います)。