このサイトの機能を実装しようとしました。
φ2 = asin( sin(φ1)*cos(d/R) + cos(φ1)*sin(d/R)*cos(θ) )
λ2 = λ1 + atan2( sin(θ)*sin(d/R)*cos(φ1), cos(d/R)−sin(φ1)*sin(φ2))
//import static java.lang.Math.*;
public static LatLng fromBearingDistance(double lat1, double lon1, double brng, double d) {
double R = 6371.0;
double lat2 = Math.asin( Math.sin(lat1)*Math.cos(d/R) +
Math.cos(lat1)*Math.sin(d/R)*Math.cos(brng) );
double lon2 = lon1 + Math.atan2(Math.sin(brng)*Math.sin(d/R)*Math.cos(lat1),
Math.cos(d/R)-Math.sin(lat1)*Math.sin(lat2));
return new LatLng(lat2,lon2);
}
私の関数の結果は次のとおり0.0905,1.710
です53.188 0.133
。
fromBearingDistance(53.32055555555556f, 1.7297222222222224f,
96.02166666666666f, 124.8f);
これは、サンプル サイトと同じ座標です。
ここで何が起こっているのでしょうか?- コードは、文字通り、似ています。私が変更したのは、vars から doubles だけです。
このサイトを使用して、度から小数に変換しました。