0

緯度/経度で距離を計算する方法を質問するための多くの回答が見つかりましたが、「逆」の問題には何もありません。

X と Y の変位と GPS ポイント (緯度/経度) がありますが、新しいポイントの座標を計算する必要があります。

式の使用:

double deltaLat = dy / EARTH_RADIUS; 
double deltaLon = dx / EARTH_RADIUS;
double lat = locLat + Math.signum(dy) * Math.toDegrees(deltaLat); // formula correct
double lon = locLon + Math.signum(dx) * Math.toDegrees(deltaLon);

緯度の計算には正確ですが、経度の計算には約 10 ~ 15% の誤差が生じます。誰も同じ問題を抱えていますか?変位によって経度を計算するための可能な式はありますか?

4

2 に答える 2

1

経度で 10 ~ 15% のエラーが発生する理由は、経度では地球の半径を使用して変位を計算できないためです。代わりに、対応する緯度で「円」の半径を使用する必要があります。したがって、式を使用すると、経度の計算はより似たものになるはずです

double deltaLon = dx / (EARTH_RADIUS * cos(locLat))

ただし、これにより、極の周りで望ましくない結果cos(locLat)が得られ、0 に近づく可能性があるため、極 (またはその周り) に対していくつかの特別なケースが必要になる場合があります。論理的に考えると、極にいる場合、x 軸に沿って少しでも移動しても、どこにも到達しません。

于 2012-04-12T11:14:21.250 に答える
0

最も簡単ですが、最善の解決策は次のとおりです。

double deltaLat = dy / EARTH_RADIUS; // up-down
double deltaLon = dx / EARTH_RADIUS ; // left-right
double lat = locLat + Math.signum(dy) * Math.toDegrees(deltaLat); // formula correct
double lon = locLon + Math.signum(dx) * Math.toDegrees(deltaLon * 1.195);
于 2012-04-13T07:34:46.417 に答える