Стандарт Web Map Service (WMS), разработанный организацией Open Geospatial Consortium, Inc. (OGC), является открытой спецификацией для публикации в сети динамических карт. Для публикации сервиса WMS в ArcGIS Server применяется функция WMS, активируемая при публикации картографического сервиса или сервиса изображений в ArcGIS for Desktop.
Сервисы WMS пригодятся в том случае, если необходимо открыть доступ к картам в открытом и общепринятом формате, применяемом различными клиентскими приложениями на различных платформах. С этим сервисом может работать любое клиентское приложение, разработанное с поддержкой спецификации WMS. На данный момент было издано четыре версии спецификации WMS. Это версии v1.0.0, v1.1.0, v1.1.1 и v1.3.0 (самая новая).
Клиентские приложения взаимодействуют с сервисом WMS путем добавления параметров к URL сервиса. Сервисы WMS, опубликованные в ArcGIS Server, поддерживают следующие операции:
- Запрос метаданных о сервисе (GetCapabilities)
- Запрос изображения карты (GetMap)
- Запрос информации об объектах карты (GetFeatureInfo [необязательный параметр])
- Запрос стилей, определенных пользователем (GetStyles)
- Запрос символов легенды (GetLegendGraphic)
В сервисе WMS могут поддерживаться только некоторые из этих операций, но в базовом сервисе WMS необходимы, по меньшей мере, операции GetCapabilities и GetMap, а для выполнения запросов по карте требуется поддержка необязательной операции GetFeatureInfo. Операции GetStyles и GetLegendGraphic применимы только в случае сервиса WMS с дескриптором стиля слоя (SLD, Styled Layer Descriptor).
Изображения карт, возвращаемые сервисом WMS, не содержат фактических данных, хотя с помощью операции GetFeatureInfo можно делать атрибутивные запросы. Для представления данных посредством спецификации OGC как векторных объектов опубликуйте сервис WFS вместо сервиса WMS. Для представления данных как растровых слоев опубликуйте сервис WCS. Подробнее о сервисах WMS можно узнать на веб-сайте организации Open Geospatial Consortium.
Публикация сервиса WMS
Существует два способа публикации сервиса WMS:
- Публикация картографического сервиса с активированной функцией WMS. Для публикации картографического сервиса вначале необходимо создать документ карты.
- Публикация сервиса изображений с активированной функцией WMS. Для публикации сервиса изображений требуется либо набор растровых данных, либо набор данных мозаики, либо файл слоя, связанный с одним из этих наборов.
При публикации картографического сервиса или сервиса изображений, не забудьте активировать функцию WMS на закладке Функции (Capabilities) окна Редактора сервиса (Service Editor). В разделе Руководство пользователя. Публикация сервиса WMS подробно рассмотрен ход работ по созданию сервиса WMS.
Число слоев в документе карты прямо сказывается на времени, затрачиваемом на первоначальное создание сервиса WMS или на запуск сервиса после его остановки. Время запуска сервиса можно сократить, удалив или объединив часть слоев в сервисе.
Сервисы WMS используют кэш картографического сервиса, если он имеется в наличии. Кэш картографического сервиса используется только при запросе исходной проекции сервиса, с исходным порядком и видимостью слоев. Листы кэша пересчитываются в требуемый клиентом масштаб – это может занять время обработки и снизить качество изображений. Использование кэша даст наибольшее преимущество при наличии в сервисе WMS большого количества слоев или сложных символов, прорисовка которых динамическим образом займет слишком много времени. Если в карте содержатся только несколько слоев и несложные символы, то производительность будет выше при отсутствии кэша.
Примечание:
Сервисы WMS могут использовать только кэши картографических сервисов; кэши сервисов изображений не поддерживаются.
В сервисах WMS, созданных на основе картографического сервиса с пассивным кэшированием, при просмотре пользователем некэшированных областей будут создаваться листы кэша.
Если сервис WMS создан на базе сервиса изображений ArcGIS Server на основе набора данных мозаики, клиент может запрашивать конкретные растры в наборе данных. В этом случае запрос WMS GetMap имеет дополнительный параметр IMAGES (Изображения) – например, при IMAGES=1,2 будут запрошены изображения с данными идентификаторами object ID в таблице каталога сервиса изображений.
Настройка свойств сервиса WMS
Свойства сервиса WMS отражены в файле функций. Пользователь, обращающийся к сервису, может получить из этого файла информацию об авторе сервиса. При публикации сервиса WMS с файлами функций, сгенерированными системой (по умолчанию), рекомендуется указать значения свойств сервиса WMS. Информация о всех доступных свойствах сервиса WMS приведена в разделе Доступные свойства сервиса WMS. Кроме того, из следующих разделов вы сможете узнать, где именно настроить свойства сервиса WMS:
Настройка поддерживаемых сервисом WMS операций
Вы можете контролировать разрешённые операции сервиса WMS в Manager и ArcGIS for Desktop. Например, если присутствует требование ограничения доступа к индивидуальной информации об объекте, отмените опцию GetFeatureInfo. Любые запросы на получение доступа к информации об объекте будут запрещены.
По умолчанию, в сервисе включены все операции. Доступными операциями являются:
- GetCapabilities: Возвращает клиенту информацию о функциональных возможностях в качестве ответа на запрос GetCapabilities.
- GetFeatureInfo: Возвращает клиенту объекты в качестве ответа на запрос GetFeatureInfo.
- GetLegendGraphic: Возвращает клиенту изображение легенды в качестве ответа на запрос GetLegendGraphic.
- GetMap: Возвращает клиенту изображение карты в качестве ответа на запрос GetMap.
- GetSchemaExtension: Возвращает клиенту схему в качестве ответа на запрос GetSchemaExtension.
- GetStyles: Возвращает клиенту информацию о доступных стилях в качестве ответа на запрос GetStyles.
Примечание:
Для полной совместимости с OGC WMS, включите (как минимум) операции GetCapabilities и GetMap.
Настройка свойств WMS с использованием внешнего файла функций
Другой способ определения метаданных состоит в использовании внешнего файла функций. Он позволяет включить для типов объектов дополнительные проекции, отличные от проекций по умолчанию. По умолчанию включены: система координат слоя или класса пространственных объектов и WGS84 (EPSG 4326). Дополнительные сведения приведены в разделе Использование внешних файлов функций с сервисами WMS.
Безопасность сервисов WMS
Безопасность сервиса WMS в ArcGIS Server обеспечивается безопасностью его родительского сервиса (картографического сервиса или сервиса изображений). Если определенную роль, например Planners (проектировщики), лишить доступа к карте, то никакие пользователи в роли Planners не смогут получить доступ к этой карте, вне зависимости от того, используют ли они протоколы SOAP и REST или интерфейсы OGC (к примеру, WMS). ArcGIS Server поддерживает несколько различных схем авторизации, включая авторизацию на базе протокола HTTP (Basic и Digest), Встроенную аутентификацию Windows (Integrated Windows Authentication) и авторизацию ArcGIS Server на основе токенов (token-based).
Встроенная аутентификация Windows
Сервисы, доступ к которым предполагается через интерфейсы WMS, следует оградить авторизацией HTTP Basic, HTTP Digest или Встроенной аутентификацией Windows (Integrated Windows Authentication). Распознавать эти стандартные схемы авторизации и работать с ними способны большинство клиентских приложений (как разработки Esri, так и сторонние продукты).
Авторизация ArcGIS Server на основе токенов
Хотя это и не рекомендуется, тем не менее, есть возможность оградить сервис WMS авторизацией ArcGIS Server на основе токенов, указав этот тип авторизации для родительского сервиса (картографического или сервиса изображений). Для авторизации запросов к сервису WMS при помощи токена, используется корректный токен, возвращенный сервисом токенов (токенов). Этот токен играет роль дополнительного параметра в посылаемых запросах. Другими словами, запрос к сервису WMS с авторизацией на основе токенов должен иметь следующий формат:
http://<URL сервиса WMS>?<стандартные параметры WMS>&token=<корректный токен в виде строки>
Большинство сторонних клиентских приложений не смогут обращаться к сервису WMS, защищенному таким образом, но этот метод может использоваться в клиентских приложениях WMS, разработанных при помощи интерфейсов ArcGIS API for JavaScript.
Использование сервисов WMS
Для подключения к сервису WMS необходимо знать его URL. Сервисы WMS, опубликованные в ArcGIS Server, имеют следующий формат URL:
http://gisserver.domain.com:6080/services/папка/сервис/тип сервиса (может быть MapServer, ImageServer или GeoDataServer)/WCSServer?
Помните, что функция WMS доступна как для картографических сервисов, так и для сервисов изображений. Поэтому тип сервиса может быть в двух вариантах.
Например, если картографический сервис Tokyo находится в папке Japan и запущен на сервере gisserver с номером порта 6080, то URL сервиса WMS на его основе будет иметь следующий вид:
http://gisserver:6080/arcgis/services/Japan/Tokyo/MapServer/WMSServer?
Если сервис изображений IdahoImages запущен на сервере myServer с номером порта 6080, то URL сервиса WMS на его основе примет следующий вид:
http://gisserver:6080/arcgis/services/IdahoImages/ImageServer/WMSServer?
Типичные клиенты WMS
Простейшим клиентом сервиса WMS является веб-браузер. Запросы WMS можно отправлять по протоколу HTTP, а ответы или исключения будут возвращаться через браузер. Сервисы WMS могут поддерживать несколько операций: GetCapabilities, GetMap, GetFeatureInfo, GetStyles и GetLegendGraphic. С помощью параметров URL клиент может использовать эти операции и получать от сервиса WMS метаданные сервиса, информацию об объектах, сами карты, их символы и легенду. Эти операции и параметры подробно описаны в спецификации OGC WMS.
Просмотр информации о легенде в сервисе WMS
Сервисы WMS могут быть настроены для сообщения информации о символах слоев в сервисе. Клиентские приложения на основе этой информации могут составлять легенду карты. По умолчанию, при публикации сервисов WMS на сервер ArcGIS, передача информации о легенде разрешена. Запретить передачу можно при помощи свойства Использовать имя слоя из документа карты (Use layer names from the map document). Дополнительная информация приведена в разделе Доступные свойства сервиса WMS.
Подсказка:
Для отображения легенды для слоев WMS в ArcMap, щелкните правой кнопкой слой в таблице содержания и выберите пункт Добавить легенду WMS к карте (Add WMS Legend to Map).