根据距离和方向创建坐标

时间:2017-07-18 06:10:28

标签: algorithm gps coordinates distance latitude-longitude

所以我的坐标(A)有x经度和y纬度。我想要的是根据用户输入创建新坐标(B),其中坐标和方向(0-360)之间的距离(米)。实现这个目的的公式是什么?

到目前为止我所做的是使用answer1answer2

中的这个公式
new_latitude  = latitude  + (dy / r_earth) * (180 / pi);
new_longitude = longitude + (dx / r_earth) * (180 / pi) / cos(latitude * pi/180);

但它只是创建一个方向的新坐标,我想要的是方向可以改变。

1 个答案:

答案 0 :(得分:2)

您可以使用this excellent site中的公式(给定距离的目标点和起点的方位)

var φ2 = Math.asin( Math.sin(φ1)*Math.cos(d/R) +
                    Math.cos(φ1)*Math.sin(d/R)*Math.cos(brng) );
var λ2 = λ1 + Math.atan2(Math.sin(brng)*Math.sin(d/R)*Math.cos(φ1),
                         Math.cos(d/R)-Math.sin(φ1)*Math.sin(φ2));

其中φ是纬度,λ是经度,θ是轴承(从北到顺时针),δ是角距离d / R; d是行进的距离,R是地球的半径

相关问题