На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

Преобразование с UTM

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: 1
RSS
Преобразование с UTM
 
Добрый день !
Начну с вопроса.
Подскажите пожалуйста обратную функцию mapGeo42toPlaneUTM
Ситуация:
в пару "TEdit" ,с метрики, заношу результат работы функции mapGeo42toPlaneUTM точнее X и Y.
уменьшаю Х на 1000, заношу обратно в метрику координата уходит непонятно куда.
(использовал функцию mapPlaneUTMtoWGS84byZone c номером зоны который светится в
конверторе координат ГИС Панорама 2005, а потом mapGeoWGS84toPlane42)
Заранее спасибо за понимание!
 
Хорошо бы конкретнее задать вопрос.

Пересчет координат с проекции в проекцию идет в несколько этапов.
Плоские прямоугольные координаты пересчитываются в геодезические (X,Y -> B,L, метры в радианы). Например, из системы координат UTM на эллипсоиде WGS84 в геодезические координаты на эллипсоиде WGS84. Затем идет пересчет с эллипсоида на эллипсоид (B,L -> B1,L1). Например, с эллипсоида WGS84 на эллипсоид Красовского (система 42 года). Реально в этот момент пересчет идет сначала на эллипсоид ПЗ-90, а с него на эллипсоид Красовского для системы 42 года. Затем идет пересчет в плоские прямоугольные координаты (B1,L1 -> X1,Y1). Например, в систему координат 42 года для заданной зоны (уже в системе 42 года, ее номер зоны совсем не совпадает с номером зоны UTM).

Такой пересчет может быть реализован последовательно двумя функциями - mapPlaneUTMtoWGS84byZone и mapGeoWGS84toPlane42.

Для примера:

Имеем на карте в системе 42 года:

X = 6144131.568   Y = 7430463.52   Зона = 7, Осевой меридиан = 39

Переходим к геодезическим координатам в системе 42 года:

B = 55.41539681   L = 37.90201464

Переходим к WGS84:

B1 = 55.41543275  L1 = 37.90016424

Переходим к UTM:

X1 = 6141572.1373 Y1 = 37430375.417987  Зона = 37, Осевой меридиан = 39

Сдвигаем на 100 метров по X:

X2 = 6141672.1373 Y2 = 37430375.417987

Переходим к WGS84:

B2 = 55.41633116  L2 = 37.90013927

Переходим к геодезическим координатам в системе 42 года:

B3 = 55.41629523  L3 = 37.90198975

Переходим к прямоугольным координатам

X3 = 6144231.611  Y3 = 7430463.52

В системе 42 года сдвиг по X составил 100 метров 4,3 см.
4,3 см - за счет округлений при вычислениях. При сдвиге на
1000 метров погрешность примерно такая же. То есть, это
погрешность перехода к системе 42 года. Для системы 95 года
погрешность значительно меньше.

Вычисления сделаны в ГИС Карта 2008.
 
Цитата
Oleg Belenkov написал:
Пересчет координат с проекции в проекцию идет в несколько этапов.
Здравствуйте! Спасибо за отличный нетленный пример! Мой вопрос немного не по теме.

Знает ли кто-нибудь, как настроить библиотеку Proj (версии с 4 по 8) на пересчет прямоугольных координат в геодезические для СК-42?
Как правильно настроить Proj на такое преобразование?

Пытался использовать в настройках Proj эллипсоид krass с коэффициентами из справочника https://structure.mil.ru/files/pz-90.pdf и проекцию tmerc:
+ellps=krass +proj=tmerc +lon_0=39.00000000 +x_0=500000 +k=0.9996 +y_0=0 +towgs84=23.920,-141.270,-80.900,0.000,0.350,0.820,-0.120 +no_defs
В результате прямоугольные координаты по широте улетают примерно на 2.5 км на север и по долготе 30 м на восток.
 
Смещение на восток (FalseEasting) для СК-42 должно быть 500 000 + N_зоны * 1 000 000 (если у Вас координата на восток с номером зоны).

Масштабный коэффициент должен быть 1.0, а не 0.9996
Датум для СК-42:

#define DX_S42_WGS84         23.57
#define DY_S42_WGS84      (-140.95)
#define DZ_S42_WGS84       (-79.8)
#define RX_S42_WGS84          0.0
#define RY_S42_WGS84        (-0.35)
#define RZ_S42_WGS84        (-0.79)
#define  M_S42_WGS84        (-0.00000022L)
 
Цитата
Oleg Belenkov написал:
Смещение на восток (FalseEasting) для СК-42 должно быть 500 000 + N_зоны * 1 000 000 (если у Вас координата на восток с номером зоны).
Спасибо, Олег Валентинович, выручили! Теперь Proj считает точно как у Вас в примере. Правда, без номера зоны в долготе.
 
Например, номер зоны 7.
Тогда
Код
x_0=7500000
Страницы: 1
Читают тему (гостей: 1)



© КБ Панорама, 1991-2024

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности