Добавление пользовательских проекций в QGIS и UMN Mapserver: различия между версиями
Topol (обсуждение | вклад) |
Topol (обсуждение | вклад) Нет описания правки |
||
(не показано 7 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
{{Статья|Черновик}} | {{Статья|Черновик}} | ||
{{Аннотация|Описан процесс добавления пользовательских проекций в QGIS и UMN Mapserver для коррекной работы с WMS-сервисом}} | |||
== 1. Введение == | == 1. Введение == | ||
На пост советском пространстве сохранилась "добрая" традиция вести карты населенных пунктов в так назваемых "местных системах координат" (МСК). Данные системы координат представляют собой как правило искаженную СК42 (обычно сдвинутую на константы по x и у). В местных системах координат работаю земельные и архитектурные отделы городов и соответвтвенно весь картографический материал требуют сдавать именно в этих системах. Западные ГИС об этих системах координат не имеют никакого понятия (кстати координаты в МСК сами по себе не являются секретными на ключи перехода в СК42 засекречены). И вот в процессе реализации ГИС для одного из малых городов Украины мы столкнулись с проблемой задания пользовательской системы координат (описывающей МСК для данного города) для | На пост советском пространстве сохранилась "добрая" традиция вести карты населенных пунктов в так назваемых "местных системах координат" (МСК). Данные системы координат представляют собой, как правило, искаженную СК42 (обычно сдвинутую на константы по x и у). В местных системах координат работаю земельные и архитектурные отделы городов и соответвтвенно весь картографический материал требуют сдавать именно в этих системах. Западные ГИС об этих системах координат не имеют никакого понятия (кстати координаты в МСК сами по себе не являются секретными на ключи перехода в СК42 засекречены). И вот в процессе реализации ГИС для одного из малых городов Украины мы столкнулись с проблемой задания пользовательской системы координат (описывающей МСК для данного города) для | ||
WMS-сервиса на базе UMN MapServer и QGIS которы должен обращаться к этому сервису. | WMS-сервиса на базе UMN MapServer и QGIS, которы должен обращаться к этому сервису. | ||
== 2. Проблема == | == 2. Проблема == | ||
Попытка описать параметры МСК в разделе PROJECTION map-файла ни к чему не привела WMS-сервис это описание игнорировал. Обращение к официальной документации вскрыло проблему - WMS-сервис требует задания проекции с указанием ее кода в proj4 т.е. описания вида EPSG:4326. В свою очередь QGIS при загрузке WMS-сервиса требует указать проекцию для него. | Попытка описать параметры МСК в разделе PROJECTION map-файла ни к чему не привела WMS-сервис это описание игнорировал. Обращение к официальной документации вскрыло проблему - WMS-сервис требует задания проекции с указанием ее кода в proj4, т.е. описания вида EPSG:4326. В свою очередь QGIS при загрузке WMS-сервиса требует указать проекцию для него. | ||
== 3. Решение == | == 3. Решение == | ||
Немного погуглив выясняем что описания прокций proj4 для UMN MapServer хранятся в обычном текстовом файле /usr/local/share/proj/epsg (для ОС FreeBSD в нашем случае). Добавляем в конец файла описание для нашей МСК | Немного погуглив выясняем что описания прокций proj4 для UMN MapServer хранятся в обычном текстовом файле /usr/local/share/proj/epsg (для ОС FreeBSD в нашем случае). Добавляем в конец файла описание для нашей МСК (параметры изменены в целях соблюдения вышеупомянутой секретности, любое совпадение с реальной МСК является случайным :) ) | ||
#MSK for N town | #MSK for N town | ||
<99999> +proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=-11111 +y_0=-1111111 +ellps=krass +units=m +no_defs | <99999> +proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=-11111 +y_0=-1111111 +ellps=krass +units=m +no_defs | ||
= | Число в угловых скобках это код проекции в системе EPSG (наша МСК к этой системе не имеет никакого отношения но надо же ее куда-то записать). Главное условие чтобы этот код не совпадал с кодами уже существующих проекций. | ||
Далее в нашем map-файле указываем вновь созданную проецию | |||
PROJECTION | |||
"init=epsg:99999" | |||
END | |||
Теперь наш WMS-сервис уже не ругается на отсутствие проеции, но QGIS ничего о ней не знает и, соответственно, не дает добавить сервис в проект. | |||
Отучим его от этого. Описания проекций QGIS хранятся уже не в текстовом файле, а в базе данных SQLite /usr/share/qgis/resources/srs.db. Голым тестовым редактором его уже не возьмешь, но прогресс не стот на месте, браузер Firefox имеет замечательный плагин SQLite Manager. Устанавливаем его и открываем базу данных проекций QGIS. | |||
Верная Ubuntu бдительно охраняет хозяйское добро и не дает просто так менять файлы в системе поэтому предварительно даем разрешения своему пользователь на доступ к каталогу и файлу с проекциями. | |||
И, как пишут умудренные опытом (который сын ошибок трудных :) ), не забудте сделать резервную копию. | |||
В базе присутствует таблица tbl_srs в которую и нужно добавть строчку с описанием МСК | |||
<center>[[Image:addsrs.png]]</center> | |||
Код проекции должен совпадать с ранее добавленным в UMN MapServer. | |||
Теперь QGIS без проблем подхватывает проекцию WMS-сервиса и, соответственно, мы видим координаты в МСК. |
Текущая версия от 12:02, 22 ноября 2012
Описан процесс добавления пользовательских проекций в QGIS и UMN Mapserver для коррекной работы с WMS-сервисом
1. Введение
На пост советском пространстве сохранилась "добрая" традиция вести карты населенных пунктов в так назваемых "местных системах координат" (МСК). Данные системы координат представляют собой, как правило, искаженную СК42 (обычно сдвинутую на константы по x и у). В местных системах координат работаю земельные и архитектурные отделы городов и соответвтвенно весь картографический материал требуют сдавать именно в этих системах. Западные ГИС об этих системах координат не имеют никакого понятия (кстати координаты в МСК сами по себе не являются секретными на ключи перехода в СК42 засекречены). И вот в процессе реализации ГИС для одного из малых городов Украины мы столкнулись с проблемой задания пользовательской системы координат (описывающей МСК для данного города) для WMS-сервиса на базе UMN MapServer и QGIS, которы должен обращаться к этому сервису.
2. Проблема
Попытка описать параметры МСК в разделе PROJECTION map-файла ни к чему не привела WMS-сервис это описание игнорировал. Обращение к официальной документации вскрыло проблему - WMS-сервис требует задания проекции с указанием ее кода в proj4, т.е. описания вида EPSG:4326. В свою очередь QGIS при загрузке WMS-сервиса требует указать проекцию для него.
3. Решение
Немного погуглив выясняем что описания прокций proj4 для UMN MapServer хранятся в обычном текстовом файле /usr/local/share/proj/epsg (для ОС FreeBSD в нашем случае). Добавляем в конец файла описание для нашей МСК (параметры изменены в целях соблюдения вышеупомянутой секретности, любое совпадение с реальной МСК является случайным :) )
#MSK for N town <99999> +proj=tmerc +lat_0=0 +lon_0=36 +k=1 +x_0=-11111 +y_0=-1111111 +ellps=krass +units=m +no_defs
Число в угловых скобках это код проекции в системе EPSG (наша МСК к этой системе не имеет никакого отношения но надо же ее куда-то записать). Главное условие чтобы этот код не совпадал с кодами уже существующих проекций.
Далее в нашем map-файле указываем вновь созданную проецию
PROJECTION "init=epsg:99999" END
Теперь наш WMS-сервис уже не ругается на отсутствие проеции, но QGIS ничего о ней не знает и, соответственно, не дает добавить сервис в проект. Отучим его от этого. Описания проекций QGIS хранятся уже не в текстовом файле, а в базе данных SQLite /usr/share/qgis/resources/srs.db. Голым тестовым редактором его уже не возьмешь, но прогресс не стот на месте, браузер Firefox имеет замечательный плагин SQLite Manager. Устанавливаем его и открываем базу данных проекций QGIS. Верная Ubuntu бдительно охраняет хозяйское добро и не дает просто так менять файлы в системе поэтому предварительно даем разрешения своему пользователь на доступ к каталогу и файлу с проекциями. И, как пишут умудренные опытом (который сын ошибок трудных :) ), не забудте сделать резервную копию. В базе присутствует таблица tbl_srs в которую и нужно добавть строчку с описанием МСК
Код проекции должен совпадать с ранее добавленным в UMN MapServer. Теперь QGIS без проблем подхватывает проекцию WMS-сервиса и, соответственно, мы видим координаты в МСК.