Кажется, вы измеряете расстояние (R) в метрах и подшипник (тета) против часовой стрелки от востока. И для ваших целей (глубины метров) плоская геометрия должна быть достаточно точной. В этом случае,
dx = R*cos(theta) ; theta measured counterclockwise from due east
dy = R*sin(theta) ; dx, dy same units as R
Если тета измеряется по часовой стрелке от на север (например, компас подшипников), расчет для дх и ду немного отличается:
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
Может быть, это полезно http://www.meridianworlddata.com/Distance-Calculation.asp – stacker