所以我的坐标(A)有x经度和y纬度。我想要的是根据用户输入创建新坐标(B),其中坐标和方向(0-360)之间的距离(米)。实现这个目的的公式是什么?
中的这个公式new_latitude = latitude + (dy / r_earth) * (180 / pi);
new_longitude = longitude + (dx / r_earth) * (180 / pi) / cos(latitude * pi/180);
但它只是创建一个方向的新坐标,我想要的是方向可以改变。
答案 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是地球的半径