通过 WMS 服务使用外部服务能力文件
使用外部服务能力文件可使您完全控制 WMS 服务的服务能力文件,因此,您可以按照以下方式操作:
- 添加有关此服务的元数据。
- 添加有关每个图层的元数据。
- 添加来自 ArcGIS Server 的预定义投影列表的空间参考系统。
- 自定义每个图层的图例信息。
虽然外部服务能力文件使您获得更大的灵活性,但是使用它们需要熟悉 OGC WMS 规范。
本主题包含启用 WMS 服务以使用外部服务能力文件的说明,也列举了一些表明外部服务能力文件优点的示例。
注:为 WMS 服务使用外部服务能力文件时,您要负责验证您的功能文件是否符合 OGC 的 DTD 或 XML 模式。您还要负责对服务能力文件和发布 WMS 服务所使用的源地图文档执行同步。
配置 WMS 服务以使用外部服务能力文件
要配置 WMS 服务以使用外部服务能力文件,您必须至少已经准备好一个 WMS 服务能力文件。您可以重新创建文件,但是通常情况下,使用系统生成的服务能力文件作为模板会更加容易。(默认情况下,每次启动服务时,都会在 ArcGIS Server 的输出目录中创建一组系统生成的服务能力文件。服务停止时,将删除这些文件。)
如果想要您的 WMS 服务支持不同版本的 WMS 协议 - 例如,1.0.0、1.1.0、1.1.1 和 1.3.0 - 那么要支持的每个 WMS 版本必须有一个对应的服务能力文件。创建所有必要的服务能力文件之后,使用通用前缀(例如,capabilities)加上一个唯一的三位数字的版本号(例如,capabilities100、capabilities110、capabilities111、capabilities130)来对其命名。将您所有的服务能力文件放在可通过 URL 访问的通用文件夹下。然后,执行以下步骤,配置使用这些文件的服务:
ArcGIS Server 管理器说明
- 在管理器中单击服务选项卡。
- 查找服务,然后单击编辑图标。
- 单击功能选项卡。
- 在功能列表中查找 WMS。确保选中该框,然后单击字母 WMS(注意不要取消选中该框)。即会出现一些属性。
- 选择使用外部服务能力文件。
- 在指定位置前缀框中,输入放置服务能力文件的文件夹的 URL,和它们的通用前缀(例如,如果使用 "capabilities" 作为通用前缀,并将您的文件放在 C:\Inetpub\wwwroot\<实例名称>\wms 下,同时正在通过 ArcGIS Server for .NET 使用 IIS,则您只能输入 http://<服务器名称>/<实例名称>/wms/capabilities)。
- 单击保存。
ArcCatalog 说明
- 创建与运行服务的 GIS 服务器的管理连接
- 查找服务,如果正在运行,停止服务。
- 右键单击此服务,然后单击服务属性。
- 单击功能选项卡。
- 在功能列表中查找 WMS。确保选中该框,然后单击字母 WMS(注意不要取消选中该框)。即会出现一些属性。
- 选择使用外部服务能力文件。
- 在指定位置前缀框中,输入放置服务能力文件的文件夹的 URL,和它们的通用前缀(例如,如果使用 "capabilities" 作为通用前缀,并将您的文件放在 C:\Inetpub\wwwroot\<实例名称>\wms 下,同时正在通过 ArcGIS Server for .NET 使用 IIS,则您只能输入 http://<服务器名称>/<实例名称>/wms/capabilities)。
- 单击“确定”,然后重新启动服务。
使用实例 1:添加更多空间参考系统 (SRS/CRS)
问题:使用 ArcGIS Server 创建的 WMS 服务支持数百个空间参考系统,但是在服务能力文件中只能宣明两个:EPSG 4326(每个 WMS 服务必需的)和发布服务的数据框的空间参考。虽然您可以使用数百个受支持的空间参考系统中的任意一种向 WMS 服务请求地图,但如果请求的空间参考没有出现在服务能力文件中,则有些 WMS 客户端会返回错误。其他客户端(例如 ArcMap)仅允许在服务能力文件中列出的空间参考系统间进行切换。
解决方案:使用外部服务能力文件发布 WMS 服务,可将更多的空间参考系统添加至 WMS 服务的外部服务能力文件,这样,WMS 客户端就会获得这些系统的信息。
具体步骤: 有关详细示例,请参阅 ArcGIS Server 博客上的添加空间参考系统至 WMS 服务的服务能力文件。
使用实例 2:通过配置 OnlineResource 标记重定向 WMS 请求
问题:WMS 服务的服务能力文件中的 OnlineResource 标记可以表明客户端首次连接后后续 GetCapabilities、GetMap 和 GetFeatureInfo 请求应当发送到的位置。通常,OnlineResource 标记包含与 WMS 服务相同的 URL,但是,当涉及反向代理或当用户要将不同类型的 WMS 请求发送给不同的服务器时,必须使 OnlineResource 标记可配置。
解决方法:使用外部服务能力文件发布 WMS 服务,OnlineResource 标记可配置为不同类型的 WMS 请求指向不同的 URL。
具体步骤:
- 按照本文档的配置 WMS 服务以使用外部服务能力文件部分执行,以使用外部功能文件发布 WMS 服务。
- 在文本编辑器中,打开版本 1.3.0 的外部服务能力文件(例如,capabilities130.xml)。
- 查找所有 <OnlineResource> 标记。应该有四个标记。一个是 WMS 服务本身,其余三个是 WMS 请求的三种类型,它们是 GetCapabilities、GetMap 和 GetFeatureInfo。
- 将 <OnlineResource> 的 xlink:href 属性设置为要将该类型 WMS 请求发送到的 URL。保存更改。(这四个 <OnlineResource> 标记中的 xlink:href 属性可以是唯一的。)
- 对于外部服务能力文件的其他版本(1.0.0、1.1.0、1.1.1 等等),重复步骤 2 至 4。
- 通过 URL 访问外部服务能力文件,并确保更改被正确保存。
执行这些步骤后,不必重新启动 WMS 服务或其父地图或影像服务。从客户端刷新连接即可。
注:如果所有类型的 WMS 请求都使用相同的 URL(不是 WMS 服务 URL),则不必使用外部服务能力文件。此时可以通过 ArcCatalog 或管理器设置通用 OnlineResource 标记,然后使用系统生成的服务能力文件发布 WMS 服务。
使用实例 3:在 WMS 服务能力文件中配置和自定义图层信息
问题:WMS 服务能力文件是 WMS 服务和 WMS 客户端之间的唯一连接,客户端使用该文件时,服务器宣明信息。WMS 规范定义大量属性(通过服务能力文件中的 XML 标记)以描述服务中的每个图层以及服务本身,但是,通过 ArcGIS Server 使用系统生成的功能文件发布 WMS 时,很多图层属性不能得到添加或配置。
解决方法:通过使用外部服务能力文件发布 WMS 服务,可以为服务中的每个 WMS 图层配置和自定义所有元数据信息。
示例:本示例显示了如何将 WMS 图层的元数据添加至 WMS 服务的服务能力文件。此元数据可能包括摘要、关键字、标准模式的元数据的 URL 链接、属性甚至要素数据的 URL 链接。