看起来你正在用米(R)和极角(theta)逆时针测量距离。 对于你的目的(数百米),平面几何应该足够精确。在这种情况下,
dx = R*cos(theta) ; theta measured counterclockwise from due east
dy = R*sin(theta) ; dx, dy same units as R
如果theta是从正北方向顺时针测量的(例如,指南针方位角),则dx和dy的计算略有不同:
dx = R*sin(theta) ; theta measured clockwise from due north
dy = R*cos(theta) ; dx, dy same units as R
无论哪种情况,经度和纬度的变化都为:
delta_longitude = dx/(111320*cos(latitude)) ; dx, dy in meters
delta_latitude = dy/110540 ; result in degrees long/lat
常数110540和111320之间的差异归因于地球的扁率(极圆周长和赤道圆周长不同)。
以下是一个使用您之前问题中的参数的示例:
假设起始位置位于经度-87.62788度,纬度41.88592度,
请找出距离起始位置500米西北方向的点的坐标。
如果我们从正东逆时针测量角度,“西北”对应于theta=135度。R为500米。
dx = R*cos(theta)
= 500 * cos(135 deg)
= -353.55 meters
dy = R*sin(theta)
= 500 * sin(135 deg)
= +353.55 meters
delta_longitude = dx/(111320*cos(latitude))
= -353.55/(111320*cos(41.88592 deg))
= -.004266 deg (approx -15.36 arcsec)
delta_latitude = dy/110540
= 353.55/110540
= .003198 deg (approx 11.51 arcsec)
Final longitude = start_longitude + delta_longitude
= -87.62788 - .004266
= -87.632146
Final latitude = start_latitude + delta_latitude
= 41.88592 + .003198
= 41.889118