Использование дескрипторов стилей слоев с сервисами WMS
Дескрипторы слоев со стилем (SLD) помогают публиковать схемы символов для сервиса WMS с помощью спецификации XML, определенной Open Geospatial Consortium, Inc. (OGC). Или же клиенты сервиса могут использовать собственные SLD для применения символов по их выбору.
Файлы SLD и стили SLD
Файл SLD — это файл XML, который использует синтаксис OGC SLD, что позволяет понимать его при взаимодействии сервера и клиента.
Стили SLD физически хранятся в файле SLD. Один стиль SLD определяет правила символов для заданного набора объектов в указанном слое WMS. У одного стиля может быть несколько правил, а у каждого правила может быть один фильтр, описывающий, какие объекты должны отображаться, и несколько механизмов отображения символов, описывающих отображение этих объектов.
Далее представлен пример документа SLD XML:
<sld:StyledLayerDescriptor version="1.0.0" xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd">
<!--
ESRI_StatesCitiesRivers_USA @
http://sampleserver1.arcgisonline.com/arcgis/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer/WMSServer?
-->
<sld:NamedLayer>
<!--
layer "2" is the "cities" point layer in the WMS service
-->
<sld:Name>2</sld:Name>
<sld:UserStyle>
<!--
style should be applied on layer "2", reference the style by it's name "pointSymbolizer"
-->
<sld:Name>pointSymbolizer</sld:Name>
<sld:Title>pointSymbolizer</sld:Title>
<sld:FeatureTypeStyle>
<sld:Rule>
<sld:PointSymbolizer>
<sld:Graphic>
<sld:Mark>
<!-- uses a circle to mark a city -->
<sld:WellKnownName>circle</sld:WellKnownName>
<!-- fill circle with color #666666 -->
<sld:Fill>
<sld:CssParameter name="fill">#666666</sld:CssParameter>
<sld:CssParameter name="fill-opacity">1</sld:CssParameter>
</sld:Fill>
<!-- circle boundary with color #666666 -->
<sld:Stroke>
<sld:CssParameter name="stroke">#666666</sld:CssParameter>
<sld:CssParameter name="stroke-opacity">1</sld:CssParameter>
<sld:CssParameter name="stroke-width">1</sld:CssParameter>
</sld:Stroke>
</sld:Mark>
<!-- circle opacity 1.0 -->
<sld:Opacity>1</sld:Opacity>
<!-- circle size "3" -->
<sld:Size>3</sld:Size>
<sld:Rotation>0</sld:Rotation>
</sld:Graphic>
</sld:PointSymbolizer>
</sld:Rule>
</sld:FeatureTypeStyle>
</sld:UserStyle>
</sld:NamedLayer>
</sld:StyledLayerDescriptor>
Реализация WMS SLD в ArcGIS Server основана на спецификации реализации дескриптора стиля слоя (SLD) OGC. Полный обзор SLD см. на странице Дескриптор стиля слоя на веб-сайте OGC.
Поддержка WMS Styled Layer Descriptor (SLD) в ArcGIS Server
ArcGIS Server поддерживает спецификацию WMS Styled Layer Descriptor (SLD) версии 1.0.0. Полный обзор SLD см. на странице Styled Layer Descriptor на веб-сайте OGC.
Ниже перечислены конкретные элементы SLD, поддерживаемые и не поддерживаемые сервисами ArcGIS Server WMS.
Поддерживаемые элементы SLD
Сервисы ArcGIS Server WMS поддерживают следующие элементы SLD:
sld:WellKnownName (поддерживаемые значения: квадрат, круг, треугольник, звезда, крест, x)
Неподдерживаемые элементы SLD
Сервисы ArcGIS Server WMS не поддерживают следующие элементы SLD:
Обозначитель (symbolizer) объектов и тип геометрии
В версии 10.7 обозначители объектов LineSymbolizer, PolygonSymbolizer и PointSymbolizer могут использоваться для обозначения геометрии объектов любого типа. Например, PointSymbolizer может использоваться для обозначения полигонального объекта. В следующей таблице приводится список режимов, когда используемый обозначитель не совпадает с типом собственной геометрии:
|
Линия |
Полигон |
Точка |
|
|
LineSymbolizer |
|
|
|
|
PolygonSymbolizer |
|
|
|
|
PointSymbolizer |
|
|
|
Публикация нескольких стилей с помощью SLD
Можно использовать следующую процедуру для публикации нескольких стилей для слоев WMS с помощью SLD:
Создайте сервис WMS с помощью сгенерированных системой файлов функций.
Создайте XML-документ SLD, определяющий несколько стилей для каждого слоя в сервисе WMS.
Привяжите SLD XML к сервису WFS.
Для этого выполните следующие шаги:
ArcGIS Server Manager:
Опубликуйте сервис WMS, следуя инструкциям в разделе Сервисы WMS.
Создайте документ XML с синтаксисом SLD, определяющий дополнительные стили, для каждого слоя WMS, который нужно опубликовать. Этот документ SLD XML можно сохранить на локальный диск или предоставить к нему доступ по URL.
Откройте Manager и выполните вход. Справка по этому шагу приведена в разделе Вход в Manager.
Щелкните Сервисы > Управление сервисами.
В модуле Управление сервисами найдите свой сервис и щелкните Редактировать
. Если вы не видите свой сервис в списке, возможно, он находится во вложенной папке в папке Site (root).В модуле Редактирование перейдите на вкладку Возможности.
В списке функций щелкните WMS и убедитесь, что функции WMS активированы.
В списке Конфигурация WMS (WMS configuration) вы увидите текстовое окно Путь SLD или URL (SLD Path or URL). Введите URL документа SLD XML или используйте обозреватель файлов для поиска SLD XML на диске.
Нажмите Сохранить и перезапустить. Внесенные в сервис изменения будут применены незамедлительно.
Примечания:
Чтобы проверить правильность привязки SLD XML к сервису WMS, выполните одно из следующих действий:
Отправьте запрос WMS GetCapabilities в браузере. В ответе XML должен быть один элемент