Вы можете получить результат, близкий к вашим ожидаемым значениям, за два шага:
from geographiclib.geodesic import Geodesic
lon1 = 11.62113333
lat1 = 55.9862
dx = -51659.25 #meter
dy = -33702.33 #meter
tmp = Geodesic.WGS84.Direct(
lat1, lon1,
90, # Go East ...
dx) # ... (negatively, so actually West)
destination = Geodesic.WGS84.Direct(
tmp['lat2'], tmp['lon2'],
0, # Go North ...
dy) # ... (negatively, so actually South)
lat2, lon2 = destination['lat2'], destination['lon2']
# 55.680721562111955, 10.793499275609594
Но этот расчет по-прежнему концептуально неверен.
Если мы предположим, что Земля является сферой (а не эллипсоидом), второй шаг (Движение на север/юг) будет в порядке, поскольку вы движетесь по меридиану, то есть по большому кругу. Любой путь вдоль большого круга является кратчайшим (на поверхности) путем между его начальной и конечной точками, если только он не проходит более половины пути вокруг сферы. Геодезическая — это кратчайший путь на эллипсоиде, так что это подходит.
Однако для первого шага нам нужно пройти dx
метра на восток (или -dx
метра на запад). Следуя геодезической, направление на запад изначально не будет делать этого, потому что параллели (за исключением экватора) не являются большими кругами / геодезическими. Таким образом, рассчитанный путь будет отклоняться от параллели, что легко увидеть, взглянув на промежуточное местоположение:
tmp
# {'a12': -0.4645520407433718,
# 'azi1': 90.0,
# 'azi2': 89.31397924368152,
# 'lat1': 55.9862,
# 'lat2': 55.98342231490044,
# 'lon1': 11.62113333,
# 'lon2': 10.793499275609594,
# 's12': -51659.25}
Широта там (tmp['lat2']
) не является нашей начальной широтой, и азимут (tmp['azi2']
) тоже изменился с 90° (прямо на запад)!
Таким образом, геодезические расчеты, вероятно, не являются правильным способом решения вашей проблемы. Также обратите внимание, что порядок или шаги (идете ли вы сначала на север/юг, а затем на восток/запад или сначала на восток/запад, а затем на север/юг) существенно повлияют на результат при таком расчете.
Какой порядок будет «правильным» (если есть) определяется проекционной/декартовой системой координат, на которую ссылаются dx
и dy
.
person
das-g
schedule
18.08.2015