0
我試圖實現從這個site功能。從初始位置,方位和距離得到的位置
φ2= ASIN(SIN(φ1)* COS(d/R)+ COS(φ1)* SIN(d/R)* COS(θ))
λ2=λ1+ ATAN2(罪(θ)* 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);
這是與樣本站點相同的座標。
這裏可能會發生什麼? - 代碼字面上就像是一樣。我改變的唯一的東西是增加雙倍的變數。
我用this網站將度數轉換爲小數。
非常好,現在工作完美。另外我想我錯誤地計算了實際數據! – Andrew 2013-03-19 16:28:51