Стоп! Что произошло?
Вы только что стали свидетелями перепроецирования "на лету". Когда в map-файле определена проекция (объект PROJECTION), MapServer передаёт слой и информацию о проецировании библиотеке Proj.4, которая осуществляет перепроецирование. За более подробной информацией по библиотеке Proj.4 обращайтесь по адресу http://trac.osgeo.org/proj/.
Данный пример позволит вкратце рассмотреть процесс проецирования в MapServer.
Содержание файла example1-6.map:
Первое, что вы скорее всего заметили, это то, что начальный охват закомментирован, вместо него используется другой и что выражается он в единицах измерения, очевидно, отличных от долготы и широты. Также мы добавили объект PROJECTION как внутри объекта MAP, так и внутри каждого слоя (объекта LAYER).
Давайте взглянем на новые объекты и их параметры:
EXTENT 273851.72 5613495.09 901694.92 6055687.33Охват должен выражаться в тех же единицах измерения, что и выходная проекция. Так как в системе UTM координаты измеряются в метрах, то и охват должен быть выражен в метрах. Можно рассчитать охват, используя ArcView или другие ГИС-пакеты. Мы же воспользуемся утилитой "cs2cs" (“coordinate system to coordinate system”) библиотеки Proj.4. Введём следующую команду:
cs2cs +proj=latlong +datum=WGS84 +to +proj=utm +ellps=WGS84 +datum=WGS84 +zone=44 +units=m +north +no_defs
После ввода команды введите первую пару координат предыдущего значения охвата, разделенных пробелом," cs2cs" рассчитает новые координаты этой пары, аналогично сделайте и со второй. Имеем следующий результат:
273851.72 5613495.09 0.00 901694.92 6055687.33 0.00
Вы, наверное, обратили внимание, что cs2cs возвращает три значения, где третье значение – высота. Поскольку мы не используем этот параметр, то получаем новое значение охвата:
EXTENT 273851.72 5613495.09 901694.92 6055687.33
Если при проецировании вы получили неправильно отцентрированную карту, то можно поварьировать значением охвата, добиваясь удовлетворяющего вас результата (так мы и поступили, введя откорректированный охват). Здесь можно узнать о том, как определить охват с помощью ArcView.
В MapServer можно определять параметры проекции двумя способами. Первый из них был использован при определении выходной проекции (первый блок PROJECTION). Это стандартный способ определения проекции для библиотеки Proj.4. Другим способом является использование кодов EPSG. Это стандартные коды проекций, установленные European Petroleum Survey Group (EPSG). Два этих способа являются равноценными. Если вы хотите узнать больше о кодах EPSG, посмотрите файл "epsg" расположенный в "/proj/nad/epsg" или в "/usr/local/share/proj/epsg". Также можно посетить web-сайт http://www.epsg.org.
Если вы хотите узнать больше о проекциях, то можно посетить следующие ресурсы:
http://www.colorado.edu/geography/gcraft/notes/mapproj/mapproj_f.html
http://www.geography.hunter.cuny.edu/mp/
http://www.nationalatlas.gov/articles/mapping/a_projections.html
http://en.wikipedia.org/wiki/Map_projection
http://erg.usgs.gov/isb/pubs/MapProjections/projections.html
Пример 1.5 | Глава 1 | Содержание | Пример 1.7
Обсудить в форуме Комментариев 85
Последнее обновление: March 30 2010
© GIS-Lab и авторы, 2002-2021. При использовании материалов сайта, ссылка на GIS-Lab и авторов обязательна. Содержание материалов - ответственность авторов. (подробнее).