GIS-LAB

Географические информационные системы и дистанционное зондирование

Пример 1.7: Добавление слоя WMS

Одной из возможностей MapServer является возможность использования слоев других картографических серверов. В этом случае, MapServer становится клиентом WMS (или WFS). MapServer также может предоставлять свои слои, описанные в map-файле, то есть может выступать в роли сервера WMS. Что такое WMS и WFS? Это спецификации web-сервисов, выпущенные Open Geospatial Consortium (OGC). WMS отвечает за Web Map Service, а WFS за Web Feature Service. Отличие этих двух спецификаций заключается в том, что WMS использует растровые форматы (PNG, JPEG, GIF) для своих слоев, в то время как WFS использует GML (Geographic Markup Language). Третья OGC спецификация – Web Coverage Service (WCS) – MapServer поддерживает эту спецификацию только на уровне сервера, то есть может выступать в роли сервера WCS. Для получения большей информации по WMS, WFS и WCS посетите сайт OGC и просмотрите спецификации или их краткий обзор. Сайт MapServer также содержит документацию об этих спецификациях.

В следующем примере разберем, как добавлять слой WMS в map-файл.

Содержание файла example1-7.map

Параметры слоя WMS

NAME altay_wms
Идентификатор слоя

TYPE RASTER
Хотя мы имеем дело с слоем WMS, все равно указываем тип слоя RASTER.

OFFSITE 0 0 0
Игнорируем черный цвет.

STATUS DEFAULT
Включаем слой по умолчанию.

CONNECTIONTYPE WMS
Тип соединения со слоем. Если мы хотим явно указать тип соединения, то в каждом векторном и растровом слое нашей карты нужно написать CONNECTIONTYPE LOCAL, а поскольку LOCAL является типом соединения со слоем по умолчанию, то мы явно указываем тип только при определении внешних слоев.

CONNECTION "http://mapus.jpl.nasa.gov/wms.cgi?"
Строка подключения, которая указывает откуда следует брать данные. В случае с WMS это URL. Если бы мы использовали данные PostGIS, это был бы SQL-запрос.

METADATA
Обозначает начало объекта METADATA слоя WMS. MapServer использует параметры, определенные внутри этого объекта наряду с параметром CONNECTION для формирования корректного запроса к WMS-серверу.

"wms_srs" "epsg:4326"
Проекция слоя WMS. Иногда сервер WMS поддерживает несколько проекций. Если это так, то вы сразу можете запросить слой в нужной вам проекции.

"wms_name" "daily_planet"
Имя слоя WMS. В этом случае в адресной строке браузера можно написать "layer=daily_planet" вместо "layer= altay_wms".

"wms_server_version" "1.1.1"
Версия сервера WMS. MapServer придерживается версии 1.1.1.

"wms_format" "image/jpeg"
Формат изображения, которое мы хотим получить от сервера WMS. Вы можете заменить это значение на "image/png" или какое-нибудь другое.

END
Обозначает конец объекта METADATA.

Чтобы узнать больше о слоях WMS, посетите соответствующую страницу документации.

Параметры объекта WEB

Кроме добавления слоя WMS, мы также добавили новый объект WEB, внутри которого описаны два параметра.

IMAGEPATH '/usr/local/www/gis-lab/data/tmp/'
Путь до временной директории, доступной из web. Убедитесь, что путь заканчивается косой чертой (/).

IMAGEURL '/tmp/'
Определяет, как будет выглядеть адрес IMAGEPATH относительно корневой директории web-сервера. Убедитесь, что путь заканчивается косой чертой (/).

Также отметим, что существует возможность задать имя объекта MAP, используя ключевое слово NAME. После этого имя объекта MAP становится префиксом в именах файлов, сохраняемых во временной папке.

Если вы хотите предоставлять свои данные другим серверам, вам следует добавить объект METADATA внутрь объекта MAP и внутрь каждого слоя, который бы вы хотели предоставлять. Для того, чтобы узнать о том, как сделать из MapServer сервер WMS или сервер WFS, изучите следующую документацию:

http://www.mapserver.org/ogc/wms_server.html
http://www.mapserver.org/ogc/wfs_server.html
http://www.mapserver.org/ogc/wfs_client.html

Пример 1.6 | Глава 1 | Содержание | Пример 1.8

Обсудить в форуме Комментариев — 85

Последнее обновление: February 27 2009

Donate

Новое на форумеRSS

Если Вы обнаружили на сайте ошибку, выберите фрагмент текста и нажмите Ctrl+Enter