Одной из возможностей 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
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, посетите соответствующую страницу документации.
Кроме добавления слоя 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
© GIS-Lab и авторы, 2002-2021. При использовании материалов сайта, ссылка на GIS-Lab и авторов обязательна. Содержание материалов - ответственность авторов. (подробнее).