MapServer: вывод координат курсора в другой проекции

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
MI user
Участник
Сообщения: 65
Зарегистрирован: 14 янв 2013, 17:08
Репутация: -1238093703
Откуда: *рг

MapServer: вывод координат курсора в другой проекции

Сообщение MI user »

Здравствуйте уважаемые участники форума.

В информационной системе в качестве веб ГИС используется MapServer. Картографические слои представлены наборами файлов, содержащих векторные и растровые данные. Векторные слои формируются из файлов MapInfo. Проекция и система координат векторных слоёв: "Долгота-широта" - "WGS-84" (EPSG: 4326). В "MAP" файле указана такая же проекция.
В связи с тем, что применяется географическая проекция, векторный слой отображается с искажением – сжатие по вертикали (например, как в Quantum GIS). MapServer формирует сжатую картинку в соответствии с указанной проекцией – рисунок 1.
Сжатая по вертикали карта.png
Сжатая по вертикали карта.png (55.37 КБ) 3599 просмотров
При этом, в MapInfo тот же слой отображается привычно, без искажения – рисунок 2.
Нормальная карта.png
Нормальная карта.png (75.71 КБ) 3599 просмотров
Для того, чтобы добиться привычного отображения векторного слоя в MapServer, принято решение об изменении проекции. Векторный слой переведён в проекцию Меркатора с прямоугольной системой координат: "Меркатора WGS-84" (EPSG: 41001). В MapInfo проекция представлена так, как показано на рисунке 3.
Проекция Меркатора WGS-84.png
Проекция Меркатора WGS-84.png (25.42 КБ) 3599 просмотров
В "MAP" файле указана та же проекция:

Код: Выделить всё

PROJECTION
"proj=merc"
"lon_0=0"
"k=1"
"x_0=0"
"y_0=0"
"ellps=WGS84"
"datum=WGS84"
"units=m"
"no_defs"
"towgs84=0,0,0"
END


Теперь MapServer отображает карту как положено, без искажения по вертикали, однако координаты отображаются уже не в градусах, а в метрах.
Требуется: векторные слои отображать без искажения (как в MapInfo), а координаты при этом выводить в формате "градусы, минуты, секунды".

Возникли следующие вопросы:

1. Возможно ли в MapServer выполнять динамический пересчёт проекции для отображения координат курсора в другой системе координат? В таком случае слои оставили бы в прямоугольной проекции Меркатора, а координаты курсора отображали в географической "Долгота-Широта".

2. Возможно ли в MapServer отключить опцию искажения векторных карт в случае использования географической проекции? То есть фактически надо выводить картинку и координаты как это делает MapInfo.

3. Существует ли другой способ для решения вопроса о динамическом преобразовании системы координат, например какие-нибудь плагины для MapServer и пр.?

Спасибо.
Sergey Astakhov
Активный участник
Сообщения: 218
Зарегистрирован: 21 дек 2012, 01:57
Репутация: 52
Откуда: Питер

Re: MapServer: вывод координат курсора в другой проекции

Сообщение Sergey Astakhov »

MapServer умеет только формировать картинку, которую потом отображает клиентская программа. Он понятия не имеет ни о каких курсорах - это прерогатива клиента. Например в OpenLayers проекция, используемая для отображения координат курсора задаётся через указание параметра displayProjection
Ответить

Вернуться в «Веб-картография»

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

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