GetCapabilities 响应 |
在与 OGC 标准一致的 WMS 的特别情形中,根据 DTD(XML 文件类型定义,XML Document Type Definition ),XML 响应必须是合法的。DTD 表明了响应中必需和可选的内容,以及内容格式的形成。
服务器的 Capabilities XML 文档完全参考了 DTD 文档,而不是 URL 的主体部分。DTD 文件必须定位在完全合格并且可用的 URL 中,以便允许 XML 验证软件来检索它。
WMS Capabilities XML 主要包含 Service 和 Capability 两个组成部分。
WMS Capabilities XML 中的<Service>元素中的内容表示通用服务元数据(General service metadata),该元素提供了对服务器通用元数据的一个整体描述。该数据包括 Name、Title 以及 Online Resource URL 元素,另外包括一些可选的内容:Abstract、KeywordList、ContactInformation、Fees 和 AccessConstraints 元素等。
表1 通用服务元数据的元素
元素名称 | 描述 |
Name | WMS 服务的名称。 |
Title |
服务标题。 服务器的简短描述,取决于服务提供者,能够跟其它服务器相区分。 |
Abstract |
服务摘要。 提供有关服务器信息的更多描述。 |
KeywordList |
关键字。 服务器作为一个整体,能够有助于目录搜索。 |
OnlineResource |
在线资源。 提供服务提供者的网站参考。 其他 OnlineResource 元素是每个操作的 URL 前缀。 |
ContactInformation |
联系信息,包括了服务提供者名称、地址、电话、传真、邮箱等信息。 服务元数据中应该包含该元素。 |
Fees |
费用。 如果服务器没有应用费用,该元素可以忽略。 如果使用了该元素,“none”(不区分大小写)表示免费,比如“<Fees>none</Fees>”。 |
AccessConstraints |
访问限制。 如果服务器没有应用访问限制,该元素可以忽略。 如果使用了该元素,“none”(不区分大小写)表示没有访问限制,比如“<AccessConstraints>none</AccessConstraints>”。 如果使用该元素,该元素的内容没有准确的语法定义,客户端可显示用户信息和行为内容。 |
<Capability>元素中的内容表达了服务器实例所支持的请求(GetCapabilities、GetMap 或 GetFeatureInfo),每一种操作提供的输出格式,以及每一个操作的 URL 前缀。XML DTD 包括了分布式平台(Distributed Computing Platforms,DCP)的占位符,以及其它的 HTTP 请求方法。但目前只定义了 HTTP GET 作为基本的 WMS 操作。
可忽略的服务提供者特定元素可以包含在 <Capability> 元素中。 WMS 中还会包含 <UserDefinedSymbolization> 元素以及 HTTP POST 请求的 URL。
Layer 和 Style 是 WMS Capabilities XML 文档中最重要的部分。
每个可用的地图都通过 <Layer> 元素列举在 Capabilities XML 文档中。一个父图层可以包含任意数目的子图层。
地图服务器必须在每个提供的地图中至少包含一个 <Layer> 元素。
<Style> 节点提供图层的风格列表,STYLES 通过 SLD(Styled-Layer Descriptor,图层样式表)定义,在 Capabilities XML 文档中列出的 STYLES 是服务器预定义的样式。
目前 Layer/Style 的 Name,Title 和 Keywords 是可选的。
<Layer>元素的嵌套子元素,表达了图层的属性信息。
表2 图层属性(Layer properties)
元素 | 是否必需 |
描述 |
Title |
是 |
图层标题。每个图层必须有一个标题。 不能被子图层继承。 |
Name |
否 |
图层名称。 如果图层有 <Name> 元素,那么在 GetMap 请求 中可以使用 Name 作为 LAYERS 参数的值。 客户端不会请求一个只有 Title 而没有 Name 的图层。 如果客户端请求了一个非法的图层,WMS 服务器将抛出服务异常(code="LayerNotDefined")。 Name 不能被子图层继承。 |
Abstract |
否 |
图层摘要。 提供有关图层的更加详细的描述。 Abstract 不能被子图层继承。 |
KeywordList |
否 |
关键字列表。 KeywordList 包含0个或多个 <Keyword> 元素有助于目录搜索。 KeywordList 不能被子图层继承。 |
Style |
否 |
图层风格。 0个或多个<Style>用来表示单个图层或者图层集合的风格。每一个 Style 包含<Name>和<Title>元素。Name 用于设置 GetMap 请求中的 STYLES 参数。 Style 还可能包含其它一些元素。<Abstract>提供了风格的描述,<LegendURL>包含了地图图例的图片位置。 LegendURL 中的<Format>元素表示图例图片的 MIME 类型,<Format>元素的 width 和 height 属性表示图片的像素大小。 Style 可以被子图层继承,如果子图层的 Name 和父图层一样,则子图层将不会重新定义 Style。 |
SRS |
是 |
坐标参考系统(Spatical Reference System)。 每一个图层有一个或多个 SRS。SRS 可以被子图层继承。根元素 <Layer> 包含0个或多个 SRS 元素,列举了通用于所有子图层的 SRS。 对空间参考系统的支持情况参见iServer OGC 服务支持发布的坐标参考系。 |
LatLonBoundingBox |
否 |
经纬度边界框。 每个图层必须包含至少一个 <LatLonBoundingBox> 元素,可以声明,也可以从父图层继承而来。 LatLonBoundingBox 声明了地图数据在 EPSG:4326坐标系统下的最小外接矩形。其属性 minx, miny, maxx, maxy 以十进制的度数表示了矩形的边界。 LatLonBoundingBox 有利于在不要求坐标转换时的地理搜索。 |
BoundingBox |
是 |
边界框。 一个图层包含1个或多个边界框。 < BoundingBox>元素包含以下属性:
BoundingBox 元数据指明了图层的坐标范围,请求参数 BBOX,指明了地图的区域。BBOX 区域和 BoundingBox 区域不一定要相交,包含或被包含。 BoundingBox 可以继承自父图层。 |
ScaleHint |
否 |
<ScaleHint> 元素给出了能恰当的显示图层的最小和最大比例尺。 ScaleHint 有两个值:minimum 和 maximum ScaleHint 可以被子图层继承。在子图层中定义的 ScaleHint 会覆盖继承自父图层的定义。 |
Dimension |
否 |
用于多维数据。 Dimension 的定义可以继承自父图层。子图层中任何一个新的 Dimension 定义都可以增加到继承父图层的列表中。子图层不能重新定义继承父图层的同名的 Dimension 元素。 |
Extent |
否 |
用于多维数据。 Extent 的定义可以继承自父图层。子图层中继承自父图层的同名的 Extent 的声明会覆盖父图层中声明的值。只有当 Capabilities XML 文档中已经声明或者继承了同名的 Dimension ,Layer 才会声明一个 Extent。 |
MetadataURL |
否 |
元数据 URL。 一个服务器应该使用1个或多个<MetadataURL>来提供图层数据详细和标准的元数据。目前定义了两种类型:'TC211' 参照 [ISO 19115];'FGDC' 参照 [FGDC-STD-001-1988]. MetadataURL 元素不能在非标准化元数据格式中作为参考,包含在其中的 <Formmat> 元素表明了元数据记录的 MIME 类型的文件格式。 此元素不能被子图层继承。 |
Attribution |
否 |
该元素用于定义图层或图层集合的地理信息来源。 <OnlineResource> 表示数据提供者的 URL。 <Title> 是数据提供者的名称。 <LogoURL> 是 Logo 图片的 URL。 <Format>表明了 Logto 图片的 MIME 类型。 <width> 和 <height> 属性指定了图像的像素大小。 该元素可以被子图层继承。 |
Identifier and AuthorityURL |
否 |
WMS 服务器可以使用0个或多个 <Identifier> 列举 Authority 定义的 ID 号或者标签。 |
FeatureListURL |
否 |
要素 URL 列表。 用来指向一个图层上的要素列表。 FeatureListURL 不可以被子图层继承。 |
DataURL |
否 |
DataURL 提供了一个被特定图层描述的数据的链接。 DataURL 不能被子图层继承。 |
CRS |
是 |
坐标参考系统(Coordinate Reference System)。 每一个图层有一个或多个 CRS。 CRS 可以被子图层继承。根<Layer>元素包含0个或多个 CRS 元素,列举了通用于所有子图层的 CRS。 对空间参考系统的支持情况参见iServer OGC 服务支持发布的坐标参考系。 |
<Layer> 元素可以有零个或者多个下表中的 XML 属性:queryable,cascaded,opaque,noSubsets, fixedWidth,fixedHeight。这些属性都是可选的。每个属性都可以被继承或者被子图层替代。
表3 图层元素属性(Layer Attributes)
属性 | 允许的值 | 含义(默认值为0) |
queryable | 0, 1 |
0:图层不可查。 1:图层可查。 |
cascaded | 0,正整数 |
0:图层还没有被层叠 Map 服务器(Cascading Map Server)转发。 n:图层已经被转发 n 次。 |
opaque | 0, 1 |
0:地图数据不是完全不透明。 1:地图数据完全不透明。 |
noSubsets | 0, 1 |
0:WMS 可以绘制一个完整边界框的子集。 1:WMS 只绘制完整边界框。 |
fixedWidth | 0,正整数 |
0:WMS 可以生成一个任意宽度的地图。 非0:地图的宽度固定,WMS 不能修改。 |
fixedHeight | 0,正整数 |
0:WMS 可以生成一个任意高度的地图。 非0:地图的高度固定,WMS 不能修改。 |
GetCapabilities 操作返回的数据 MIME 类型为 application/vnd.ogc.wms_xml,本质是 xml 文档。
GetCapabilities 请求示例的响应内容示例如下: