Взаимодействие с WMS сервисом в браузере
В этом разделе рассказывается, каким образом можно использоваться разные параметры URL для взаимодействия с WMS сервисом в браузере.
WMS запрос и ответ
Для каждой операции, поддерживаемой совместимым WMS-сервером, предусмотрен онлайн-ресурс в виде унифицированного указателя информационного ресурса (URL)по протоколу HTTP, таким образом WMS-сервис следует считать REST-сервисом. В отличие от стандартных веб-сервисов для использования WMS-сервиса не требуется SOAP-клиент, достаточно простого браузера. Чтобы получить из WMS-сервиса метаданные сервиса, изображение карты или значения атрибутов пространственного объекта, необходимо отправить серверу URL-запрос и просмотреть возвращенные значения в браузере либо в формате документа XML или в виде изображения.
Ниже приведены примеры запросов и ответов для каждой операции, поддерживаемой WMS-сервисом.
GetCapabilities
Запрос
XML-ответ
<WMS_Capabilities version="1.3.0" xsi:schemaLocation="http://www.opengis.net/wms http://schemas.opengis.net/wms/1.3.0/capabilities_1_3_0.xsd http://www.esri.com/wms http://sampleserver1a.arcgisonline.com/ArcGIS/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer/WMSServer?version=1.3.0&service=WMS&request=GetSchemaExtension">
<Service>
<Name>WMS</Name>
<Title>Specialty/ESRI_StatesCitiesRivers_USA</Title>
<Abstract>WMS</Abstract>
<KeywordList>
<Keyword></Keyword>
</KeywordList>
<OnlineResource xlink:type="simple" xlink:href="http://sampleserver1a.arcgisonline.com/ArcGIS/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer/WMSServer"/>
<ContactInformation>
<ContactPersonPrimary>
<ContactPerson></ContactPerson>
<ContactOrganization></ContactOrganization>
</ContactPersonPrimary>
<ContactPosition></ContactPosition>
<ContactAddress>
<AddressType></AddressType>
<Address></Address>
<City></City>
<StateOrProvince></StateOrProvince>
<PostCode></PostCode>
<Country></Country>
</ContactAddress>
<ContactVoiceTelephone></ContactVoiceTelephone>
<ContactFacsimileTelephone></ContactFacsimileTelephone>
<ContactElectronicMailAddress></ContactElectronicMailAddress>
</ContactInformation>
<Fees></Fees>
<AccessConstraints></AccessConstraints>
<MaxWidth>2048</MaxWidth>
<MaxHeight>2048</MaxHeight>
</Service>
<Capability>
<Request>
<GetCapabilities>
<Format>application/vnd.ogc.wms_xml</Format>
<Format>text/xml</Format>
<DCPType>
<HTTP>
<Get>
<OnlineResource xlink:type="simple" xlink:href="http://sampleserver1a.arcgisonline.com/ArcGIS/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer/WMSServer"/>
</Get>
</HTTP>
</DCPType>
</GetCapabilities>
<GetMap>
<Format>image/bmp</Format>
<Format>image/jpeg</Format>
<Format>image/tiff</Format>
<Format>image/png</Format>
<Format>image/png8</Format>
<Format>image/png24</Format>
<Format>image/png32</Format>
<Format>image/gif</Format>
<Format>image/svg+xml</Format>
<DCPType>
<HTTP>
<Get>
<OnlineResource xlink:type="simple" xlink:href="http://sampleserver1a.arcgisonline.com/ArcGIS/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer/WMSServer"/>
</Get>
</HTTP>
</DCPType>
</GetMap>
<GetFeatureInfo>
<Format>application/vnd.esri.wms_raw_xml</Format>
<Format>application/vnd.esri.wms_featureinfo_xml</Format>
<Format>application/vnd.ogc.wms_xml</Format>
<Format>text/xml</Format>
<Format>text/html</Format>
<Format>text/plain</Format>
<DCPType>
<HTTP>
<Get>
<OnlineResource xlink:type="simple" xlink:href="http://sampleserver1a.arcgisonline.com/ArcGIS/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer/WMSServer"/>
</Get>
</HTTP>
</DCPType>
</GetFeatureInfo>
<esri_wms:GetStyles>
<Format>application/vnd.ogc.sld+xml</Format>
<DCPType>
<HTTP>
<Get>
<OnlineResource xlink:type="simple" xlink:href="http://sampleserver1a.arcgisonline.com/ArcGIS/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer/WMSServer"/>
</Get>
</HTTP>
</DCPType>
</esri_wms:GetStyles>
</Request>
<Exception>
<Format>application/vnd.ogc.se_xml</Format>
<Format>application/vnd.ogc.se_inimage</Format>
<Format>application/vnd.ogc.se_blank</Format>
<Format>text/xml</Format>
<Format>XML</Format>
</Exception>
<Layer>
<Title>Layers</Title>
<CRS>CRS:84</CRS>
<CRS>EPSG:4326</CRS>
<EX_GeographicBoundingBox>
<westBoundLongitude>-125.192865</westBoundLongitude>
<eastBoundLongitude>-66.105824</eastBoundLongitude>
<southBoundLatitude>19.416377</southBoundLatitude>
<northBoundLatitude>54.318281</northBoundLatitude>
</EX_GeographicBoundingBox>
<BoundingBox CRS="CRS:84" minx="-125.192865" miny="19.416377" maxx="-66.105824" maxy="54.318281"/>
<BoundingBox CRS="EPSG:4326" minx="19.416377" miny="-125.192865" maxx="54.318281" maxy="-66.105824"/>
<Layer queryable="1">
<Name>0</Name>
<Title>States</Title>
<Abstract>States</Abstract>
<CRS>CRS:84</CRS>
<CRS>EPSG:4326</CRS>
<EX_GeographicBoundingBox>
<westBoundLongitude>-178.217598</westBoundLongitude>
<eastBoundLongitude>-66.969271</eastBoundLongitude>
<southBoundLatitude>18.924782</southBoundLatitude>
<northBoundLatitude>71.406235</northBoundLatitude>
</EX_GeographicBoundingBox>
<BoundingBox CRS="CRS:84" minx="-178.217598" miny="18.924782" maxx="-66.969271" maxy="71.406235"/>
<BoundingBox CRS="EPSG:4326" minx="18.924782" miny="-178.217598" maxx="71.406235" maxy="-66.969271"/>
<Style>
<Name>default</Name>
<Title>0</Title>
<LegendURL width="76" height="16">
<Format>image/png</Format>
<OnlineResource xlink:href="http://sampleserver1a.arcgisonline.com/ArcGIS/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer/WMSServer?request=GetLegendGraphic%26version=1.3.0%26format=image/png%26layer=0" xlink:type="simple"/>
</LegendURL>
</Style>
</Layer>
<Layer queryable="1">
<Name>1</Name>
<Title>Rivers</Title>
<Abstract>Rivers</Abstract>
<CRS>CRS:84</CRS>
<CRS>EPSG:4326</CRS>
<EX_GeographicBoundingBox>
<westBoundLongitude>-164.765831</westBoundLongitude>
<eastBoundLongitude>-67.790980</eastBoundLongitude>
<southBoundLatitude>25.845557</southBoundLatitude>
<northBoundLatitude>70.409756</northBoundLatitude>
</EX_GeographicBoundingBox>
<BoundingBox CRS="CRS:84" minx="-164.765831" miny="25.845557" maxx="-67.790980" maxy="70.409756"/>
<BoundingBox CRS="EPSG:4326" minx="25.845557" miny="-164.765831" maxx="70.409756" maxy="-67.790980"/>
<Style>
<Name>default</Name>
<Title>1</Title>
<LegendURL width="76" height="16">
<Format>image/png</Format>
<OnlineResource xlink:href="http://sampleserver1a.arcgisonline.com/ArcGIS/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer/WMSServer?request=GetLegendGraphic%26version=1.3.0%26format=image/png%26layer=1" xlink:type="simple"/>
</LegendURL>
</Style>
</Layer>
<Layer queryable="1">
<Name>2</Name>
<Title>Cities</Title>
<Abstract>Cities</Abstract>
<CRS>CRS:84</CRS>
<CRS>EPSG:4326</CRS>
<EX_GeographicBoundingBox>
<westBoundLongitude>-158.064606</westBoundLongitude>
<eastBoundLongitude>-67.986769</eastBoundLongitude>
<southBoundLatitude>19.696150</southBoundLatitude>
<northBoundLatitude>64.869104</northBoundLatitude>
</EX_GeographicBoundingBox>
<BoundingBox CRS="CRS:84" minx="-158.064606" miny="19.696150" maxx="-67.986769" maxy="64.869104"/>
<BoundingBox CRS="EPSG:4326" minx="19.696150" miny="-158.064606" maxx="64.869104" maxy="-67.986769"/>
<Style>
<Name>default</Name>
<Title>2</Title>
<LegendURL width="72" height="16">
<Format>image/png</Format>
<OnlineResource xlink:href="http://sampleserver1a.arcgisonline.com/ArcGIS/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer/WMSServer?request=GetLegendGraphic%26version=1.3.0%26format=image/png%26layer=2" xlink:type="simple"/>
</LegendURL>
</Style>
</Layer>
</Layer>
</Capability>
</WMS_Capabilities>
GetMap из наборов данных мозаики
Для WMS сервисов на основе наборов данных мозаики можно добавить параметры TIME и IMAGES.
Время
TIME (Время) – Поддерживает временные запросы путем указания момента или интервала времени. Формат времени может быть YYYYMMDDHHMMSS, YYYYMMDD, YYYYMM или YYYY.
TIME=1999 (время – в 1999 году)
Запрос
http://server_name/arcgis/services/service_name/ImageServer/WMSServer?REQUEST=GetMap&SERVICE=WMS&VERSION=1.3.0&LAYERS=0&STYLES=&FORMAT=image/png&BGCOLOR=0xFFFFFF&TRANSPARENT=TRUE&CRS=EPSG:4326&BBOX=17.9995833333334,-161.000416666667,23.0004166666666,-153.999583333333&WIDTH=981&HEIGHT=826&TIME=1999
TIME=1980/2010 (время – с 1980 по 2010 гг.)
Запрос
http://server_name/arcgis/services/service_name/ImageServer/WMSServer?REQUEST=GetMap&SERVICE=WMS&VERSION=1.3.0&LAYERS=0&STYLES=&FORMAT=image/png&BGCOLOR=0xFFFFFF&TRANSPARENT=TRUE&CRS=EPSG:4326&BBOX=17.9995833333334,-161.000416666667,23.0004166666666,-153.999583333333&WIDTH=981&HEIGHT=826&TIME=1980/2010
TIME=1999-12-31T14:30:30/2000-01-01T14:30:30
Запрос
http://server_name/arcgis/services/service_name/ImageServer/WMSServer?REQUEST=GetMap&SERVICE=WMS&VERSION=1.3.0&LAYERS=0&STYLES=&FORMAT=image/png&BGCOLOR=0xFFFFFF&TRANSPARENT=TRUE&CRS=EPSG:4326&BBOX=17.9995833333334,-161.000416666667,23.0004166666666,-153.999583333333&WIDTH=981&HEIGHT=826&TIME=1999-12-31T14:30:30/2000-01-01T14:30:30
Изображения
IMAGES (Изображения) – Поддерживает запросы отдельных растров.
Запрос
http://server_name/arcgis/services/service_name/ImageServer/WMSServer?REQUEST=GetMap&SERVICE=WMS&VERSION=1.3.0&LAYERS=0&STYLES=&FORMAT=image/png&BGCOLOR=0xFFFFFF&TRANSPARENT=TRUE&CRS=EPSG:4326&BBOX=17.9995833333334,-161.000416666667,23.0004166666666,-153.999583333333&WIDTH=981&HEIGHT=826&images=1
IMAGES=1,2 (числа являются идентификаторами object ID в таблице каталога сервиса изображений)
Запрос
http://server_name/arcgis/services/service_name/ImageServer/WMSServer?REQUEST=GetMap&SERVICE=WMS&VERSION=1.3.0&LAYERS=0&STYLES=&FORMAT=image/png&BGCOLOR=0xFFFFFF&TRANSPARENT=TRUE&CRS=EPSG:4326&BBOX=17.9995833333334,-161.000416666667,23.0004166666666,-153.999583333333&WIDTH=981&HEIGHT=826&images=1,2
GetFeatureInfo
Запрос
XML-ответ
<FeatureInfoResponse>
<FIELDS FID="14" Shape="Null" AREA="77330.258" STATE_NAME="Nebraska" STATE_FIPS="31" SUB_REGION="W N Cen"
STATE_ABBR="NE" POP1990="1578385" POP1999="1671251" POP90_SQMI="20" HOUSEHOLDS="602363" MALES="769439"
FEMALES="808946" WHITE="1480558" BLACK="57404" AMERI_ES="12410" ASIAN_PI="12422" OTHER="15591"
HISPANIC="36969" AGE_UNDER5="119606" AGE_5_17="309406" AGE_18_29="281105" AGE_30_49="441470"
AGE_50_64="203730" AGE_65_UP="223068" NEVERMARRY="295873" MARRIED="719288" SEPARATED="13552"
WIDOWED="96052" DIVORCED="90230" HSEHLD_1_M="63686" HSEHLD_1_F="95985" MARHH_CHD="171428"
MARHH_NO_C="179086" MHH_CHILD="7603" FHH_CHILD="34583" HSE_UNITS="660621" VACANT="58258"
OWNER_OCC="400394" RENTER_OCC="201969" MEDIAN_VAL="50400" MEDIANRENT="282" UNITS_1DET="479124"
UNITS_1ATT="15767" UNITS2="18369" UNITS3_9="46246" UNITS10_49="49402" UNITS50_UP="9656"
MOBILEHOME="37046" NO_FARMS87="60502" AVG_SIZE87="749" CROP_ACR87="23320162" AVG_SALE87="110197"/>
</FeatureInfoResponse>
GetStyles
Запрос
XML-ответ
<sld:StyledLayerDescriptor version="1.0.0" xsi:schemaLocation="http://www.opengis.net/sld http://schemas.opengis.net/sld/1.0.0/StyledLayerDescriptor.xsd">
<!-- layer "0" -->
<sld:NamedLayer>
<sld:Name>0</sld:Name>
<!-- NamedStyle -->
<sld:NamedStyle>
<sld:Name>default</sld:Name>
</sld:NamedStyle>
<!-- UserStyle -->
</sld:NamedLayer>
<!-- layer "1" -->
<sld:NamedLayer>
<sld:Name>1</sld:Name>
<!-- NamedStyle -->
<sld:NamedStyle>
<sld:Name>default</sld:Name>
</sld:NamedStyle>
<!-- UserStyle -->
</sld:NamedLayer>
<!-- layer "2" -->
<sld:NamedLayer>
<sld:Name>2</sld:Name>
<!-- NamedStyle -->
<sld:NamedStyle>
<sld:Name>default</sld:Name>
</sld:NamedStyle>
<!-- UserStyle -->
</sld:NamedLayer>
</sld:StyledLayerDescriptor>
GetLegendGraphic
Запрос
Ответ с изображением легенды
Довольно часто браузер не является предпочтительным вариантом WMS-клиента, но с его помощью всегда можно отслеживать взаимодействие между WMS-сервером и клиентом и выполнять его отладку.
Параметры WMS-запроса
Полный список параметров запроса, которые можно использовать для каждой операции WMS определяется характеристиками картографического сервиса OGC Web Map Service. По приведенным ниже ссылкам можно ознакомиться характеристиками решения OGC WMS:
В приведенных ниже таблицах перечислены применимые к решению WMS параметры запросов, которые являются поднабором параметров, определяемых характеристикой.
Параметры URL-запроса WMS GetCapabilities
Обязательный/необязательный |
Значение по умолчанию |
Описание | |
---|---|---|---|
VERSION/WMTVER |
Необязательный (Optional) |
1.3.0 (9.3 и выше) 1.1.1 (9.2) |
Запрос версии Используйте только WMTVER в версии WMS 1.0.0; в других версиях – VERSION. |
SERVICE |
Обязательный |
недоступно |
Тип сервиса. Должен иметь значение WMS. Этот параметр недоступен в WMS 1.0.0. |
REQUEST |
Обязательный |
недоступно |
Запрос имени. Должен иметь значение GetCapabilities. В версии WMS 1.0.0 должен иметь значение capabilities. |
FORMAT |
Необязательный (Optional) |
text/xml (9.3 и выше) |
Формат вывода для метаданных сервиса. Этот параметр доступен только в версии WMS 1.3.0 (например, application/vnd.ogc.wms_xml, text/plain или text/html). |
Параметры URL-запроса WMS GetMap
Обязательный/необязательный |
Значение по умолчанию |
Описание | |
---|---|---|---|
VERSION/WMTVER |
Обязательный |
недоступно |
Запрос версии Используйте только WMTVER в версии WMS 1.0.0; в других версиях – VERSION. |
REQUEST |
Обязательный |
недоступно |
Запрос имени. Должен иметь значение GetMap. В версии WMS 1.0.0 должен иметь значение map. |
LAYERS |
Обязательный |
недоступно |
Список слоев карт, разделенный запятыми (например, 0,1,2 или layer1,layer2). |
STYLES |
Обязательный |
недоступно |
Список стилей, разделенный запятыми, по одному стилю на каждый запрошенный слой (например, 0,1,2 или style1,style2). |
CRS/SRS |
Обязательный |
недоступно |
Система координат. В версии WMS 1.3.0 используется только CRS; в других версиях – SRS (например, EPSG:4326 или EPSG:4269). |
BBOX |
Обязательный |
недоступно |
Ограничения углов поля (левый верхний и правый нижний) в единицах CRS/SRS (например, -180,-90,180,90). |
WIDTH |
Обязательный |
недоступно |
Ширина изображения карты в пикселях (например, 1024). |
HEIGHT |
Обязательный |
недоступно |
Высота изображения карты в пикселях (например, 768). |
FORMAT |
Обязательный |
недоступно |
Выходной формат карты (например, image/png, image/jpeg или image/svg+xml. |
TRANSPARENT |
Необязательный (Optional) |
False |
Определяет прозрачность или непрозрачность фона (True – прозрачный или False – непрозрачный). |
BGCOLOR |
Необязательный (Optional) |
0xFFFFFF |
Цвет фона карты RGB в шестнадцатеричном формате (например, 0xFFFFFF или FFFFFF). |
SLD |
Необязательный (Optional) |
"" |
URL XML-файла дескриптора слоя со стилем. |
SLD_BODY | Необязательный (Optional) | "" | Содержимое XML-файла дескриптора слоя со стилем. |
TIME | Необязательный (Optional) | "" | Значение времени запрошенного слоя. |
EXCEPTIONS |
Необязательный (Optional) |
text/xml (WMS 1.3.0) application/vnd.ogc.se_xml (WMS 1.1.1 и WMS 1.1.0) application/vnd.ogc.inimage (WMS 1.0.0) |
Формат отчета об исключениях (например, text/xml или text/html). |
Параметры URL-запроса WMS GetFeatureInfo
Обязательный/необязательный |
Значение по умолчанию |
Описание | |
---|---|---|---|
VERSION/WMTVER |
Обязательный |
недоступно |
Запрос версии Используйте только WMTVER в версии WMS 1.0.0; в других версиях – VERSION. |
REQUEST |
Обязательный |
недоступно |
Запрос имени. Должен иметь значение GetFeatureInfo. В версии WMS 1.0.0 должен иметь значение feature_info. |
Часть запроса карты |
Обязательный |
недоступно |
Неполная копия параметров запроса GetMap, генерирующая карту, для которой требуется информация. |
QUERY_LAYERS |
Обязательный |
недоступно |
Список слоев карт, разделенный запятыми, которые необходимо запросить (например, 0,1,2 или layer1,layer2). |
INFO_FORMAT |
Обязательный (WMS 1.3.0) Необязательный (WMS 1.1.1, 1.1.0, 1.0.0) |
Недоступно (WMS 1.3.0) text/xml (WMS 1.1.1, 1.1.0, 1.0.0) |
Формат вывода сведений об объектах (например, text/xml или text/html). |
I/X |
Обязательный |
недоступно |
Значение координат объекта по оси X в пикселях (например, 100). Используйте I в версии WMS 1.3.0; в других версиях – X. |
J/Y |
Обязательный |
недоступно |
Значение координат объекта по оси Y в пикселях (например, 100). Используйте J в версии WMS 1.3.0; в других версиях – Y. |
TIME | Необязательный (Optional) | "" | Значение времени запрошенного слоя. |
EXCEPTIONS |
Необязательный (Optional) |
text/xml (WMS 1.3.0) application/vnd.ogc.se_xml (WMS 1.1.1 и WMS 1.1.0) application/vnd.ogc.inimage (WMS 1.0.0) |
Формат отчета об исключениях (например, text/xml или text/html). |
Параметры URL-запроса WMS GetStyles
Обязательный/необязательный |
Значение по умолчанию |
Описание | |
---|---|---|---|
VERSION |
Обязательный |
1.3.0 (9.3 и выше) 1.1.1 (9.2) |
Версия, требуемая интерфейсами OGC. |
REQUEST |
Обязательный |
недоступно |
Запрос имени. Должен иметь значение GetStyles. |
LAYERS |
Обязательный |
недоступно |
Список разделенных запятыми именованных слоев, для которых необходимо извлечь описания стиля. |
SLDVER |
Необязательный (Optional) |
1.0.0 (10.0) |
SLD-версия, запрашиваемая для документа SLD. Поддерживается только версия 1.0.0. |
Параметры URL-запроса WMS GetLegendGraphic
Обязательный/необязательный |
Значение по умолчанию |
Описание | |
---|---|---|---|
VERSION |
Обязательный |
1.3.0 (9.3 и выше) 1.1.1 (9.2) |
Версия, требуемая интерфейсами OGC. |
REQUEST |
Обязательный |
недоступно |
Запрос имени. Должен иметь значение GetLegendGraphic. |
LAYER |
Обязательный |
недоступно |
Слой, для которого необходимо создать графику легенды. |
STYLE |
Необязательный (Optional) |
по умолчанию |
Стиль слоя, для которого необходимо создать графику легенды. Если не указан, выбирается стиль по умолчанию. Значением параметра может быть любой действительный стиль, доступный для слоя, в том числе собственные стили, отличные от SLD. |
RULE | Необязательный (Optional) | "" | Правило стиля, для которого необходимо создать графику легенды, если оно применимо. Если со стилем связано несколько правил, но конкретное правило не выбрано, картографический сервис обязательно создаст графику, отвечающую условиям всех правил стиля. |
SLD | Необязательный (Optional) | "" | Задает ссылку на документ SLD. Имеет функцию аналогичную параметру SLD= операции WMS GetMap. |
SLD_BODY | Необязательный (Optional) | "" | Позволяет включить документ SLD непосредственно в запрос HTTP GET. Имеет функцию аналогичную параметру SLD_BODY операции WMS GetMap. |
FORMAT | Необязательный (Optional) | image/png (png24) | Тип MIME формата файла, в котором необходимо вернуть графику легенды. Допустимы такие же значения, что и для параметра FORMAT= запроса WMS GetMap. |
WIDTH | Необязательный (Optional) | Определяется с учетом конкретного изображения легенды | Позволяет определить ширину возвращаемой графики в пикселях. |
HEIGHT | Необязательный (Optional) | Определяется с учетом конкретного изображения легенды | Позволяет определить высоту возвращаемой графики в пикселях. |
EXCEPTIONS | Необязательный (Optional) | text/xml (WMS 1.3.0) application/vnd.ogc.se_xml (WMS 1.1.1 и WMS 1.1.0) application/vnd.ogc.inimage (WMS 1.0.0) | Тип MIME формата файла, в котором необходимо вернуть исключения. Допустимы такие же значения, что и для параметра EXCEPTIONS= запроса WMS GetMap. |