つまり、次の関数があります。これは、オンラインで見つかった式を応用したもので、2つの緯度/経度座標を取り、それらの間の距離をマイル単位で求めます(球体地球に沿って)。
public static double distance (double lat1, double lon1, double lat2, double lon2) {
double theta = toRadians(lon1-lon2);
lat1 = toRadians(lat1);
lon1 = toRadians(lon1);
lat2 = toRadians(lat2);
lon2 = toRadians(lon2);
double dist = sin(lat1)*sin(lat2) + cos(lat1)*cos(lat2)*cos(theta);
dist = toDegrees(acos(dist)) * 60 * 1.1515 * 1.609344 * 1000;
return dist;
}
私が知る限り、これは問題なく機能します。
私が必要としているのは、地球のジオメトリのまったく同じモデルを使用して、単一の緯度/経度ペア[A]、方位、および距離を取り、次のような新しい緯度/経度ペア[B]を出力する2番目の関数です。ポイント[A]から開始し、指定された方向で指定された距離を移動した場合、ポイント[B]で終了します。
これは私の幾何学のスキルが私を完全に残したという事実が完全に作用するところです:)
どんな助けでも大歓迎です!
ありがとう、-ダン