Кажется, вы измеряете расстояние (R) в метрах и пеленг (тета) против часовой стрелки строго на восток. И для ваших целей (сотни метров) геометрия плоскости должна быть достаточно точной. В этом случае,
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 метрах к северо-западу от начального местоположения.
Если мы измеряем углы против часовой стрелки с востока, «северо-запад» соответствует тета = 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
person
Jim Lewis
schedule
02.02.2010