2つのGPSポイント間の距離を計算するための円滑な方法を探しているので、「xメートル上に移動してy左のメーター - 私は(0,0)として私のポジションを持ち、他のポジションは(x、y)の距離を私のポジションからメートルで表示している二次元座標系で作業することができます2つのGPSポイント間の(x、y)の距離を計算する
私のアイデアは、半正矢式を用いて点間の距離を計算することであった。(これは私の斜辺を返す)
それに加えて、私はこの二点間の方位を算出しています。これは私のアルファである。
この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;
}
「アルファ」はどうやって計算していますか? – Barranka
アルファのためのメソッドを追加しました;) – Frame91
@Borian No.この2点の間に直接距離が必要ないので、重複していません。私はharversineの式について知っていますが、taxicabのジオメトリを "walk"しなければなりません;) – Frame91