переход от WGS-84 к Гаусса-Крюгера
-
- Интересующийся
- Сообщения: 21
- Зарегистрирован: 08 дек 2011, 11:03
- Репутация: 0
переход от WGS-84 к Гаусса-Крюгера
Здравствуйте,
мне надо запрограммировать переход от градусов WGS-84 к метрам в плоской прямоугольной системе Гаусса-Крюгера, Пулково-42.
На этом сайте я нашёл код перехода от WGS-84 к СК42 (в градусах) - статья
http://gis-lab.info/qa/wgs84-sk42-wgs84-formula.html
Контрольный пример из статьи воспроизводится правильно.
Как я понимаю, мне осталось перевести градусы из СК42 в метры. Я запрограммировал формулы (25)-(26) из
ГОСТ Р 51794-2001, но результат получается неверный (взял пример, приведённый на этом сайте: точка в СК42, широта B=53°, долгота L=52° должна перейти в x = 5875191,4058; y = 9567137,4060 - повторить не могу).
Не может ли кто навскидку предположить, что я делаю не так? На всякий случай текст модуля с функцией перевода прилагаю. Может быть, у кого-то есть ссылка на работающий код?
Заранее спасибо за любую помощь.
мне надо запрограммировать переход от градусов WGS-84 к метрам в плоской прямоугольной системе Гаусса-Крюгера, Пулково-42.
На этом сайте я нашёл код перехода от WGS-84 к СК42 (в градусах) - статья
http://gis-lab.info/qa/wgs84-sk42-wgs84-formula.html
Контрольный пример из статьи воспроизводится правильно.
Как я понимаю, мне осталось перевести градусы из СК42 в метры. Я запрограммировал формулы (25)-(26) из
ГОСТ Р 51794-2001, но результат получается неверный (взял пример, приведённый на этом сайте: точка в СК42, широта B=53°, долгота L=52° должна перейти в x = 5875191,4058; y = 9567137,4060 - повторить не могу).
Не может ли кто навскидку предположить, что я делаю не так? На всякий случай текст модуля с функцией перевода прилагаю. Может быть, у кого-то есть ссылка на работающий код?
Заранее спасибо за любую помощь.
- Вложения
-
WGS_GK.txt
- (1.49 КБ) 721 скачивание
-
- Гуру
- Сообщения: 810
- Зарегистрирован: 22 авг 2007, 14:58
- Репутация: 123
- Откуда: Казань
Re: переход от WGS-84 к Гаусса-Крюгера
Вам нужно именно запрограммировать свою процедуру или достаточно получить программу, возвращающую верный результат преобразования (другими словами вам нужно изобрести велосипед или ехать на нем)? Если второе -- возьмите библиотеку proj4, вызовите ее из своей программы и будет вам счастье.
-
- Интересующийся
- Сообщения: 21
- Зарегистрирован: 08 дек 2011, 11:03
- Репутация: 0
Re: переход от WGS-84 к Гаусса-Крюгера
Сейчас я делаю нужный перевод через QGIS: готовлю для него (макросом в Excel) .mif файл с нужными координатами WGS-84, потом пересохраняю в новый *.mif в координатах Гаусса-Крюгера, потом из него вытаскиваю данные и работаю с ними дальше. Требуется исключить этот шаг и делать его своей программой (использую VBA Excel).KolesovDmitry писал(а):Вам нужно именно запрограммировать свою процедуру или достаточно получить программу, возвращающую верный результат преобразования (другими словами вам нужно изобрести велосипед или ехать на нем)?
Попробовал скачать proj4, но столкнулся с трудностями: как я понял, библиотеку нужно странслировать у себя на компьютере, но транслятора у меня нет. Далее, я готов переписать код на VBA, но не знаю, какая именно процедура (или несколько) мне нужна, так что проблема для меня остаётся.
Посоветуйте, пожалуйста, что мне делать дальше.
-
- Гуру
- Сообщения: 5355
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1021
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: переход от WGS-84 к Гаусса-Крюгера
А почему ГОСТ 2001, а не 2008?
Если есть QGIS значит уже есть proj
Update: B - геодезическая широта определяемой точки, рад;
Если есть QGIS значит уже есть proj
Update: B - геодезическая широта определяемой точки, рад;
-
- Гуру
- Сообщения: 810
- Зарегистрирован: 22 авг 2007, 14:58
- Репутация: 123
- Откуда: Казань
Re: переход от WGS-84 к Гаусса-Крюгера
Да, если стоит qgis, значит есть и proj (qgis через него перепроецирует). Поэтому ваша задача -- научиться вызывать утилиты преобразования координат (попробуйте сначала, как преобразовывать координаты из командной строки, а уже потом вызывать эти утилиты из вашей программы)
-
- Интересующийся
- Сообщения: 21
- Зарегистрирован: 08 дек 2011, 11:03
- Репутация: 0
Re: переход от WGS-84 к Гаусса-Крюгера
Просто не зналtrir писал(а):А почему ГОСТ 2001, а не 2008?

Уже посмотрел новый. В формулах (25)-(26), которые я использовал, изменений нет.
Подумал, что, возможно, я неверно толкую термины. В Гост-е перед формулами написано, что:
-----
Для получения плоских прямоугольных координат в принятой на территории Российской Федерации проекции Гаусса-Крюгера используют геодезические координаты на эллипсоиде Красовского.
-----
Я полагал, что система координат СК42 (градусы) - это и есть геодезические координаты на эллипсоиде Красовского. Прав ли я ?
Если нет, то как перейти от первой ко второй?
-
- Интересующийся
- Сообщения: 21
- Зарегистрирован: 08 дек 2011, 11:03
- Репутация: 0
Re: переход от WGS-84 к Гаусса-Крюгера
Дмитрий,KolesovDmitry писал(а):Да, если стоит qgis, значит есть и proj (qgis через него перепроецирует). Поэтому ваша задача -- научиться вызывать утилиты преобразования координат (попробуйте сначала, как преобразовывать координаты из командной строки, а уже потом вызывать эти утилиты из вашей программы)
я не понял ваш ответ, не могли бы вы сказать чуть подробнее. Из просмотра UserGuide для QGIS я не увидел способа запуска утилит преобразования или их перечисления. Может быть, есть известные вам ссылки на примеры?
-
- Гуру
- Сообщения: 5355
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1021
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: переход от WGS-84 к Гаусса-Крюгера
ali, код поправил? Там только надо B перевести в радианы и всё сходится
Там есть cs2cs.exe в папке bin
Там есть cs2cs.exe в папке bin
-
- Интересующийся
- Сообщения: 21
- Зарегистрирован: 08 дек 2011, 11:03
- Репутация: 0
Re: переход от WGS-84 к Гаусса-Крюгера
trir,trir писал(а):ali, код поправил? Там только надо B перевести в радианы и всё сходится
большое спасибо - ошибку с вашей помощью исправил, всё получилось!
-
- Гуру
- Сообщения: 810
- Зарегистрирован: 22 авг 2007, 14:58
- Репутация: 123
- Откуда: Казань
Re: переход от WGS-84 к Гаусса-Крюгера
Я имел в виду вот что. Нужно:ali писал(а): я не понял ваш ответ, не могли бы вы сказать чуть подробнее.
1) Понять, как работают утилиты proj (с точки зрения пользователя). Т.е. разобраться, как задаются параметры транформации, системы координат и т.п. Затем научиться формировать командную строку для преобразования координат и вызов утилит (руками). Пример: http://gis-lab.info/qa/coord-transforms.html#cs
2) Формирование строки параметров программно на вашем любимом языке программирования и вызов утилит proj из вашего языка. Этот пункт зависит от языка, но в (почти) любом языке есть возможность вызывать сторонние программы, передавая им параметры командной строки.
-
- Интересующийся
- Сообщения: 21
- Зарегистрирован: 08 дек 2011, 11:03
- Репутация: 0
Re: переход от WGS-84 к Гаусса-Крюгера
Дмитрий,
спасибо за пояснения. Идею я понял. cs2cs с примером из вашей ссылки запустил:
"C:\Program Files\QGIS\bin\cs2cs" +proj=latlong +ellps=WGS84 +to +proj=latlong +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0,0,0 -f '%.10f'
Но, похоже, что-то уже поменялось - командная строка ждёт ввода вместо вывода результата. Возможно, требуются доп. параметры.
На данный момент свою проблему я решил, а на будущее - понял, откуда начинать.
Благодарю вас за помощь.
спасибо за пояснения. Идею я понял. cs2cs с примером из вашей ссылки запустил:
"C:\Program Files\QGIS\bin\cs2cs" +proj=latlong +ellps=WGS84 +to +proj=latlong +ellps=krass +towgs84=23.92,-141.27,-80.9,0,0,0,0 -f '%.10f'
Но, похоже, что-то уже поменялось - командная строка ждёт ввода вместо вывода результата. Возможно, требуются доп. параметры.
На данный момент свою проблему я решил, а на будущее - понял, откуда начинать.
Благодарю вас за помощь.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей