2017-05-08 116 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和部分标题为“目标点一定距离,并从起始点轴承

这背后的数学是半胱氨酸配方,来源于球形三角。在很多情况下都很好,但它确实有其局限性。总的来说,我通常会试图告诉人们,如果可能的话,不要试图在地理定位/地理信息系统中进行计算,因为数学可能比许多人意识到的要快得多。我还应该注意,浮点精度在这里可能很重要,有时很多。