2 つの GPS ポイント間の距離をスムーズに計算する方法を探しているので、次のような結果が得られます。ここで、私の位置は (0,0) で、他の位置は私の位置からメートル単位で (x, y) の距離を示しています。
私の考えは、harsine 式を使用してポイント間の距離を計算することでした。(これは私の斜辺を返します)
それに加えて、この 2 点間の方位を計算しています。これが私のアルファです。
この 2 つの値を使用して、基本的な三角関数を使用して問題を解決したいと考えました。
だから私は計算しようとしました: catheti_1 = sin(alpha) * hypotenuse, catheti_2 = cos(alpha) * hypotenuse
.
たぶん私は何か間違ったことをしているかもしれませんが、私の結果は現時点では役に立たない.
だから私の質問は: 2 つの GPS ポイント間の x 方向と y 方向の距離を計算するにはどうすればよいですか?
次の手順でアルファを計算しています。
public static double bearingTo(GPSBean point1, GPSBean point2) {
double lat1 = Math.toRadians(point1.latitude);
double lat2 = Math.toRadians(point2.latitude);
double lon1 = Math.toRadians(point1.longitude);
double lon2 = Math.toRadians(point2.longitude);
double deltaLong = lon2 - lon1;
double y = Math.sin(deltaLong) * Math.cos(lat2);
double x = Math.cos(lat1) * Math.sin(lat2) - Math.sin(lat1)
* Math.cos(lat2) * Math.cos(deltaLong);
double bearing = Math.atan2(y, x);
return (Math.toDegrees(bearing) + 360) % 360;
}