2017-05-08 115 views
0

我想獲得距離給定點x米點的座標。獲取地理座標對給定源座標對和距離

我發現這個代碼給出了兩個座標對之間的距離,但是我想給出一個座標對和距離,並將該點的座標返回給定的距離。

我認爲需要給出一個角度,否則結果會是一個圓。我得到以下從this question

function measure(lat1, lon1, lat2, lon2){ // generally used geo measurement function 
var R = 6378.137; // Radius of earth in KM 
var dLat = lat2 * Math.PI/180 - lat1 * Math.PI/180; 
var dLon = lon2 * Math.PI/180 - lon1 * Math.PI/180; 
var a = Math.sin(dLat/2) * Math.sin(dLat/2) + 
Math.cos(lat1 * Math.PI/180) * Math.cos(lat2 * Math.PI/180) * 
Math.sin(dLon/2) * Math.sin(dLon/2); 
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
var d = R * c; 
return d * 1000; // meters 
} 

有人可以幫我在JavaScript中做到這一點?

我發現另一個使用距離和方位來做同樣的事情,但使用谷歌地圖API。我不明白轉換背後的數學,我也不想包括谷歌地圖API。

這段代碼是This other question

回答

0

從你提到的問題,看看這個link和部分標題爲「目標點一定距離,並從起始點軸承

這背後的數學是半胱氨酸配方,來源於球形三角。在很多情況下都很好,但它確實有其侷限性。總的來說,我通常會試圖告訴人們,如果可能的話,不要試圖在地理定位/地理信息系統中進行計算,因爲數學可能比許多人意識到的要快得多。我還應該注意,浮點精度在這裏可能很重要,有時很多。