Преобразование геодезических координат в плоские прямоугольн

Системы координат, проекции, преобразования, привязка
Franklin1967
Активный участник
Сообщения: 128
Зарегистрирован: 03 фев 2011, 13:19
Репутация: 16
Откуда: Борисполь, Украина

Re: Преобразование геодезических координат в плоские прямоуг

Сообщение Franklin1967 » 28 фев 2015, 23:12

В таком случае лови.
Внутри компилируемый и самодостаточный проект на Делфи 7, ЕХЕ-шник которого я кидал в соседнюю тему (Конвертор "всего во всё и обратно").
Состав:
MathExt.pas - моя математическая библиотека. Внутри типы и базовые геометрические функции на которых базируется конвертор в СК63 и конверторы геодезии.
uCk63.pas - исходники конвертора СК63 вместе с алгоритмом определения разграфки всех районов (по ходу разберёшься что к чему, пример компилится и работает)
uGisCalc.pas - впрочем, сама геодезическая библиотека. В ней я собрал всё и отовсюду (кроме СК63 - он отдельно , в модуле выше по тексту).
По сути, я перевёл исходники проекта PRJ4.0 написанного на Си в Паскаль. Прогнал по всем проекциям по примерам и подкорректировал неточности в коде. Некоторые проекции (единицы - их по коду видно) так и не привёл в порядок в связи с отсутствием исходных данных для проверки .
Чуть позже, в модуль добавил проекцию Гаусса-Крюггера (она отдельными функциями), ещё позже прямую и обратную геодезические задачи . Последние функции писал сам и сейчас они работают в составе вполне серъёзных проектов на гос.уровне.
Пользуйтесь на здоровье и улучшайте (распространяйте код) .
Почему я так сделал? Да потому что задолбал этот вечный ажиотаж вокруг геодезии. Постоянно с этих проекций делают из мухи слона. Надеюсь, что Макс Дубинин не удалит этот пост.
Удачи
Вложения
Convert.SRC.zip
исходник геодезического конвертора (130 проекций)
(407.47 КБ) 944 скачивания
Последний раз редактировалось Franklin1967 28 фев 2015, 23:26, всего редактировалось 1 раз.

Franklin1967
Активный участник
Сообщения: 128
Зарегистрирован: 03 фев 2011, 13:19
Репутация: 16
Откуда: Борисполь, Украина

Re: Преобразование геодезических координат в плоские прямоугольн

Сообщение Franklin1967 » 28 фев 2015, 23:15

забыл самое главное !
Весь исходный код является моей личной наработкой, которую я отдаю безвозмездно в широкие круги геодезистов. Всякое присвоение и "лицензирование" кода или его частей недопустимо.
Этот код - я открыл и сделал доступный каждому кто хочет что-то сам написать . ячсячсчясчяс
Последний раз редактировалось Franklin1967 17 сен 2020, 18:31, всего редактировалось 1 раз.

stout
Участник
Сообщения: 91
Зарегистрирован: 13 апр 2012, 17:09
Репутация: 52

Re: Преобразование геодезических координат в плоские прямоуг

Сообщение stout » 01 мар 2015, 07:09

Franklin1967 писал(а):забыл самое главное !
Весь исходный код является моей личной наработкой, которую я отдаю безвозмездно в широкие круги геодезистов. Всякое присвоение и "лицензирование" кода или его частей недопустимо.
Этот код - я открыл и сделал доступный каждому кто хочет что-то сам написать .
Во-первых, большое спасибо за библиотеку!
Глубоко пока не копал, но уже куча вопросов.
Правильно ли я понял, что нет возможности напрямую преобразовать (B,L)42 => (X,Y)63 и (X,Y)42 => (X,Y)63? (_reg.Enabled:=False)
Возник вопрос по точности преобразования. Причём двоякого рода.
Сначала о точности представления результата.
1.png
1.png (10.23 КБ) 11709 просмотров
У вас точность представления координат до 1 см. на поверхности Земли это соответствует 00.01м/6400000м×206265"=0.0003". У вас же результат даётся с точностью до 0.01".
Нет, исправить и перекомпилировать мне не сложно.
Далее, широта у вас получается N532357.92
А мои вычисления и вычисления в координатном калькуляторе программы постобработки Pinnacle совпадают и получается 53°23'58.07867"
2.png
2.png (32.28 КБ) 11709 просмотров
Я выбрал не ту проекцию? Хотя долготы совпадают.

Кроме того. Посмотрите мой пост на предыдущей странице о смещениях координаты X для СК-63.
Для своих целей их получал путём вычисления из сравнения координат пар точек в СК-42 и СК-63.
сначала решалось нелинейное уравнение для разницы долгот осевых меридианов в СК-42 и СК-63.
Контролировалось с помощью старенькой программы, которую мне дал лет 15 назад Геннадий Николаевич Ефимов.
Т.е. вычислялись координаты точки на осевом меридиане для СК-63.
З.Ы. Надеюсь понимаете, что мной движет не стремление вас "уесть", а вложить посильный вклад в улучшение библиотеки.
З.З.Ы.
ещё позже прямую и обратную геодезические задачи . Последние функции писал сам и сейчас они работают в составе вполне серъёзных проектов на гос.уровне.
Насколько понял, это не формулы Vincenty?

Донецков
Гуру
Сообщения: 3058
Зарегистрирован: 19 май 2010, 19:44
Репутация: 189

Re: Преобразование геодезических координат в плоские прямоуг

Сообщение Донецков » 01 мар 2015, 12:06

При открытии программы, шрифты не читаемы частично (Win7x64, практически "чистая").
Можно ли это как-то исправить?
Вложения
1.gif
1.gif (77.93 КБ) 11681 просмотр

Franklin1967
Активный участник
Сообщения: 128
Зарегистрирован: 03 фев 2011, 13:19
Репутация: 16
Откуда: Борисполь, Украина

Re: Преобразование геодезических координат в плоские прямоуг

Сообщение Franklin1967 » 01 мар 2015, 14:20

snout-у
Правильно ли я понял, что нет возможности напрямую преобразовать (B,L)42 => (X,Y)63 и (X,Y)42 => (X,Y)63?
в uCK63.pas есть две функции GeoToPlane PlaneToGeo. При переводе с широты/долготы - алгоритм атовматически вычисляет куда папала точка (зона) и делает преобразование координат по этой зоне. Если точка попадает в несколько зон - преобразования выполняются для всех вариантов.
СК63 - писался отдельно от основного модуля.
По точности широты .
Скорее всего проблема не в формуле, а в параметрах эллипсоида. При коррекции параметров эллписоида (они вначале модуля как массив констант) в нужные значения (как в программе в которой Вы проверяли) у вас широта совпадёт. Широты как правило не совпадают имеенно изза нессотвествия сжатия. Долготы- изза несоотвествия радиуса большой полуоси. Я брал параметры с ядра Панорамы, они могут отличатся.
Насколько понял, это не формулы Vincenty?
я не в курсе о каких формулах идёт речь, в модуле, функции TrueGeoTask и ReversGeoTask писались по этой книжке
Изображение
в ней же проверочные координаты


Донецкову.
К сожалению мне не удалось повторить ситуацию на своём домашнем ПК... :roll:
Изображение

stout
Участник
Сообщения: 91
Зарегистрирован: 13 апр 2012, 17:09
Репутация: 52

Re: Преобразование геодезических координат в плоские прямоуг

Сообщение stout » 01 мар 2015, 14:34

Донецков писал(а):При открытии программы, шрифты не читаемы частично (Win7x64, практически "чистая").
Можно ли это как-то исправить?
А так?
Возможно, проблема в шрифте MS Sans Serif.
Convert.7z
Заменил DEFAULT_CHARSET на RUSSIAN_CHARSET
(233.14 КБ) 545 скачиваний

Донецков
Гуру
Сообщения: 3058
Зарегистрирован: 19 май 2010, 19:44
Репутация: 189

Re: Преобразование геодезических координат в плоские прямоуг

Сообщение Донецков » 01 мар 2015, 14:50

А так все нормально :)

Аватара пользователя
SergeyRyzhkov
Гуру
Сообщения: 909
Зарегистрирован: 02 июл 2014, 19:13
Репутация: 203
Ваше звание: GP-экотеррористы
Откуда: Санкт-Петербург
Контактная информация:

Re: Преобразование геодезических координат в плоские прямоуг

Сообщение SergeyRyzhkov » 02 мар 2015, 11:33

Franklin1967
Прежде всего спасибо за Ваш труд!

У вас есть тестовые наборы данных ? Можете поделиться (в любом виде)?

Я просто в свое время также писал что-то похожее, но на C#, формулы брал с http://www.epsg.org/GuidanceNotes
Для тестирования использовал их же наборы, но они (наборы) у них весьма скудные.

Ответить

Вернуться в «Координаты и привязка»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя