Страница 1 из 1

Учет проекции при отображении координат

Добавлено: 08 май 2007, 16:43
zet
Привет уважаемым посетителям форума. У меня вопрос потрясающий своей наивностью. Работаю в другой области но появился заказ на программу, которая должна снимать данные с нескольких GPS приемников и отображать положение и маршруты объектов на карте. Заказчику понравились карты с Microsoft Encarta и их он хочет видеть в качестве подложки. На первом этапе мы просто считали землю плоской и "привязывали" карту к экрану путем задания соответствия координаты-положение на экране для двух и более точек. Но земля увы не плоская и возникают расхождения которые нужно учитывать. Собственно вопрос в том как это делать. Во первых, как определить проекцию карты, а во вторых существуют ли алгоритмы вычисления положения на карте точки с известными координатами для определенной проекции. Прочитал некоторое количество литературы о том как получаются различные проекции и чем они отличаются, но это не приблизило к решению проблемы. Буду очень благодарен за люьые наводки.

Добавлено: 09 май 2007, 16:45
Максим Дубинин
На первом этапе мы просто считали землю плоской и "привязывали" карту к экрану путем задания соответствия координаты-положение на экране для двух и более точек. Но земля увы не плоская и возникают расхождения которые нужно учитывать.
Не очень понятно, в чем именно проблема. Вы спокойно можете работать в географической системе координат (использовать координаты типа долгота/широта) и отображать их в прямоугольной развертки. То есть для визуализации этого должно хватать, если у вас не полюса конечно.
Во первых, как определить проекцию карты
Имеете в виду выбрать проекцию? Или у вас есть карта в некой проекции и вам надо ее идентифицировать?
существуют ли алгоритмы вычисления положения на карте точки с известными координатами для определенной проекции
Сколько угодно, то что вам нужно, это либо найти формулы для проекционных преобразований (типа долгота/широта -> проекция) для выбранной проекции. Либо подключить готовую библиотеку для проекционных преобразований типа Proj.

Добавлено: 10 май 2007, 12:24
geologic
Как это земля не плоская? Сколько раз доказывали и на этом форуме, и на других, в шешнадцатом веке. Могу ссылки подкинуть :D

Если серьезно, для ваших отображений проще считать что замля плоская - это удачная виртуальная модель. Забудьте про шар, и будет вам щастя. Мы все давно так работаем... и ничего.

Если ваша карта еще не выбрана, то возьмите проекцию "широта-долгота", типовую для ГИС. Карты также имеются бесплатные, закажите лишь оформляж любой ГИС-конторе. Координаты при этом пересчитывать не понадобится, поскольку сойдут географические, долгота равномерно идет по X, широта по Y. При визуализации можете задать простую коррекцию по широте, небольшое сжатие, как это делается в Мапинфо, чтобы форма объектов была приемлемой.

Если ваша карта в другой проекции, то тогда, конечно, нужен будет пересчет. Удобней меркаторская проекция - пересчет предельно простой, точность известна, алгоритмы выверены столетиями, никакие библиотеки не нужны. Форма объектов в меркаторе близка к идеальной. Вообще Меркатор спокон веку применяется для "большой" навигации.

Ну дальше вы скажете, что еще расстояния, мол, наш диспетчер захочет мерить, и пошло-поехало... Читайте школьный курс географии тогда, ту страницу где шар, конус, цилиндр, плоскость нарисованы :)

Добавлено: 10 май 2007, 13:53
zet
Спасибо за ответы. Идея программы действительно в визуализации, расчетов по карте выполнять не надо. Но объекты на которых стоят GPS это самолеты, размер карты примерно 300 на 300 км и на ней отклонения от "плоской" модели видны невооруженным взглядом, местами до 10 км. Действительно, наша задача сейчас это
- Определить тип проекции по картинке
- Попытаться учесть проекцию при расчете положения точки

Нашли интересный сайт http://mathworld.wolfram.com/topics/MapProjections.html
с массой алгоритмов. Пыьвемся ими воспользоваться.

Добавлено: 10 май 2007, 14:37
geologic
ну, как я понял, вас математика не пугает? Тогда расчехляем главный калибр :)
Полетные карты как раз меркаторские по преимуществу. Формулы меркатора тут, проверены в деле не раз.
http://www.posc.org/Epicentre.2_2/DataM ... cs34f.html
Еще стоящая вещь http://members.bellatlantic.net/~vze2hc ... manual.pdf . Там масса формул, и описана библиотека libproj.
И мой совет - наплюйте на энкартовскую картинку, сваять такую в ГИС хорошему картографу несложно. Плюс копирайт учтите - Билли Гейтс не добрый дядя ;)

Добавлено: 10 май 2007, 17:22
Максим Дубинин
размер карты примерно 300 на 300 км и на ней отклонения от "плоской" модели видны невооруженным взглядом, местами до 10 км.
Все равно непонятно, что вы имеете в виду, то что визуально карта выглядит не так как вы хотите? Как вы определяете величину отклонения?