Проблема преобразования в согласованное UTM при перекрытии зон - PullRequest
1 голос
/ 16 апреля 2019

Мне нужно получить набор координат в метрах, учитывая широту / долготу, используя модуль utm в python. Если позиции охватывают разные зоны, карты становятся неправильными. После проверки ряда обсуждений я еще не нашел прямого решения.

lat_points = [42.827990, 42.849890, 42.824294]
long_points = [95.9, 95.903, 96.01]
xy_meters = [utm.from_latlon(lat,long) for (lat, long) in zip(lat_points,long_points)]
for row in xy_meters:
    print(row)

Результат показывает большой разрыв при пересечении зоны:

(737040.3354880156, 4745793.498913411, 46, 'T')
(737201.7056600684, 4748234.076861802, 46, 'T')
(255588.1599583785, 4745640.325228949, 47, 'T')

1 Ответ

0 голосов
/ 16 апреля 2019

Хорошо, я думаю, что этот код работает как задумано (переключение пакетов):

from pyproj import Proj
myProj = Proj("+proj=utm +zone=46T, +ellps=WGS84 +datum=WGS84 +units=m +no_defs")
for lat, long in zip(lat_points,long_points):
    print(myProj(long, lat))

Дает желаемое:

(737040.3354579052, 4745793.4987486005)
(737201.7056297899, 4748234.076696485)
(746046.8172912733, 4745698.570316798)
...