添加 WFS 服务

网络要素服务 (WFS) 是通过 Web 提供地理要素服务的开放规范。 与 Web 地图服务 (WMS) 不同,WFS 服务返回的是具有几何和属性信息的实际要素。 您可通过创建 WFS 服务连接或从活动门户中添加 WFS 项目,在 ArcGIS Pro 中连接到开放地理空间联盟 (OGC) 的 WFS 服务。

添加 WFS 服务器连接

要添加 WFS 服务器连接,请完成以下步骤:

  1. 插入选项卡的工程组中,单击连接按钮,单击服务器,然后单击新建 WFS 服务器 新建 WFS 服务器

    随即弹出添加 WFS 服务器连接对话框。

  2. 服务器 URL 文本框中,输入要连接的 WFS 服务器站点的 URL。

    URL 将根据站点配置的不同而变化。

    示例 URL 如下所示:https://sampleserver6.arcgisonline.com/arcgis/services/SampleWorldCities/MapServer/WFSServer

  3. 版本下拉菜单中,选择要连接的 WFS 版本。

    默认版本连接到服务器支持的最高版本号。

  4. 如果要连接的 WFS 服务具有其他功能,或者要为 WFS 服务器连接设置特定于 ArcGIS Pro 客户端的属性,则可以向自定义请求参数部分添加自定义请求参数名称和值

    常用的特定 ArcGIS Pro 客户端的保留关键字的示例包括:用于启用客户端分页的 PAGESIZE、用于将要素限制在特定地理区域的 BBOX、用于设置地图中显示的要素数量限制(默认使用限值 3000)的 MAXFEATURES 或用于交换图层轴顺序的 SWAPXY。 这些关键字可应用于 WFS 服务器连接中列出的所有图层。 要修改单个图层的属性,可以在图层属性的 WFS 选项卡上进行查看或修改。 请注意,ArcGIS Pro 无法验证特定于服务器的附加参数。

    要添加自定义参数,请执行以下操作:

    1. 单击第一个单元格。
    2. 参数列的单元格中指定参数名称。
    3. 列的单元格中指定参数值。
    4. 要添加其他参数,请单击添加行按钮,并重复步骤 a 到 c。

    要删除自定义参数,请执行以下操作:

    1. 选择包含要删除参数的行。
    2. 单击移除行删除该行。
    3. 对每个要删除的参数重复步骤 a 和 b。
  5. 如果适用,通过执行以下操作之一完成服务的身份验证:
    • 如果服务使用基础身份验证提供保护,则在身份验证下拉菜单中,单击服务器身份验证,然后输入用户名和密码。 要将用户名和密码保存到 Windows 凭据管理器或连接文件中,请选中保存登录账户标题下的选项。
    • 如果服务使用基于 OAuth 2.0 的身份验证提供保护,则在身份验证下拉菜单中,从下拉列表中单击适当的连接。 如果某个连接不可用,请参阅在 ArcGIS Pro 中连接到身份验证提供程序以了解如何添加身份验证提供程序的连接。 如有必要,请单击登录为提供程序的连接进行身份验证。
  6. 单击确定

    随后会创建一个 WFS 连接文件 (.wfs) 并将其保存在工程的主目录文件夹中。 引用此连接文件的项目会被添加到工程中,同时该连接会显示在目录窗格的工程选项卡的服务器文件夹中。

  7. 展开 WFS 连接以查看 WFS 服务中的图层,右键单击图层并单击添加到新建下拉菜单中的选项,或单击添加到当前地图 添加至当前地图,将 WFS 图层添加到地图。

    还可以通过将服务拖动到地图或内容窗格中来将其添加到地图中。

    随即将 WFS 项目添加到地图。 您可以根据情况通过单击进度对话框中的取消来取消将图层添加到地图操作。 如果服务支持分页,则在将图层添加到地图时将使用默认页面大小 200。 如果数据在添加到地图后没有按预期方式显示,则可以修改 WFS 图层属性

WFS 服务可用于添加一个或多个图层。 按住 Shift 键同时单击想要添加的子图层组中的第一个和最后一个子图层,可以选择一组图层。按住 Ctrl 键同时单击各个图层,还可以选择多个不连续的图层。 选择图层后,右键单击选中的图层并选择将其添加至当前地图或新地图。 一次添加多个图层比添加一个图层需要更长的时间。

基于活动门户连接添加 WFS 服务

还可以将 WFS 服务添加到门户中。 门户中的 WFS 项目有以下三个来源:

  • 向已经与门户联合的 ArcGIS Server 站点发布的 WFS 服务将以项目形式自动添加到您的门户。
  • 以项目形式添加到门户中的第三方 WFS 服务。
  • 通过从托管要素图层发布 WFS 服务创建的托管 WFS 服务。

可以使用以下步骤将每种类型的 WFS 门户项目添加到地图:

  1. 目录窗格中,单击门户选项卡。
  2. 我的内容我的群组ArcGIS Online 集合中,浏览或搜索想要使用的 WFS 项目。

    将鼠标悬停在门户项目上可查看项目类型。

  3. 右键单击项目,然后单击添加到新建下拉列表或添加到当前地图 添加至当前地图,将 WFS 图层添加到地图。

    还可以通过将服务拖动到地图或内容窗格中来将其添加到地图中。 如果服务包含多个图层,则系统将提示您选择要添加至地图的图层。

    随即将 WFS 项目添加到地图。 您可以根据情况通过单击进度对话框中的取消来取消将图层添加到地图操作。 如果数据在添加到地图后没有按预期方式显示,则可以修改 WFS 图层属性

WFS 服务可用于添加一个或多个图层。 按住 Shift 键同时单击想要添加的子图层组中的第一个和最后一个子图层,可以选择一组图层。按住 Ctrl 键同时单击各个图层,还可以选择多个不连续的图层。 选择图层后,右键单击选中的图层并选择将其添加至当前地图或新地图。 一次添加多个图层比添加一个图层需要更长的时间。

使用自定义请求参数

自定义请求参数表单可用于输入 WFS 服务支持的其他功能。 输入键值对可以是特定于 WFS 服务器实现的自定义参数,或者可以使用 ArcGIS Pro 客户端实现的其中一个保留关键字。

使用键值对

某些 WFS 服务可能具有特定的键值对,这些键值对可用于对服务执行自定义查询。 键值对将追加到 WFS URL 中的问号字符。 例如,您的 WFS URL 为 https://sampleserver6.arcgisonline.com/arcgis/services/SampleWorldCities/MapServer/WFSServer?。 如果您的自定义参数名为 myCustomKey,则可以在参数单元格内输入 myCustomKey 值,然后在单元格内输入相应的值。 如果 ArcGIS Pro 请求连接到您的 WFS 服务,则其会将键值对追加到 WFS URL,例如 https://sampleserver6.arcgisonline.com/arcgis/services/SampleWorldCities/MapServer/WFSServer?request=GetCapabilities&service=WFS&myCustomKey=myValue

使用保留关键字

ArcGIS Pro WFS 客户端具有保留关键字,这些保留关键字可用于指定 WFS 服务器连接的连接属性。 您为这些参数设置的值将应用于 WFS 服务中的所有图层。 如果要将保留关键字应用于 WFS 服务中的各个图层而不是每个服务连接,则必须使用不同的参数值创建多个连接,或者更新地图中的 WFS 图层属性。 下表中列出了您在设置 WFS 服务器连接文件属性时可能用到的自定义参数名称和值:

关键字描述

BBOX

提供边界框范围以限制返回要素的范围,例如 -122.5,37.7,-122.3,37.8。 如果要将所有 WFS 图层中返回的要素数限制在特定地理区域,则此参数将非常有用。 这仅适用于快照模式。

MAXFEATURES

设置 WFS 服务器连接中针对图层返回的最大要素数。 当服务存在大量要素时,设置该值可以避免出现性能问题。 默认值为 3000。 如果您的数据量大,可将此项设置为较大的数字以查看更多要素。 如果您的服务支持分页,可调整 PAGESIZE 参数以更高效地加载数据。

OUTPUTFORMAT

指定请求要素所用的格式。 WFS 服务可以支持多种输出格式类型,但是默认情况下,格式为 GML。 仅当您的服务支持指定的输出格式时,才会使用此选项。 您可以在 GetCapabilities 响应中查看服务支持的输出格式。

  • GEOJSON - 以 GeoJSON 格式请求要素。
  • GEOJSON + GZIP - 以 GeoJSON GZip 格式请求要素,例如 GEOJSON%2BGZIP
  • ESRIGEOJSON - 以 Esri GeoJSON 格式请求要素。
  • ESRIGEOJSON + GZIP - 以 Esri GeoJSON GZip 格式请求要素,例如 ESRIGEOJSON%2BGZIP

输出格式为 GeoJSON 时,SWAPXYSWAPXYFILTER 属性不适用。

PAGESIZE

指定在提出 GetFeature 请求以将数据加载到地图中时要使用的页面大小。 默认情况下,如果服务支持分页,将使用页面大小值 200。 对于不支持分页的服务,当在一个请求中请求大量要素时,可能会导致服务性能下降。 使用此关键字请求每页返回特定数量的要素。 例如,PAGESIZE 等于 100。

此关键字仅适用于支持 startIndexcount 参数的 WFS 2.0 服务。 使用按需连接方式时,该关键字不适用。

STRINGLENGTH

指定 WFS 图层中文本字段的长度。 在地图中打开图层时,默认将所有文本字段的长度截断为 255 个字符。

SWAPXY

交换图层显示的 x,y 坐标。

  • TRUE - 交换 x,y 顺序。
  • FALSE - 不交换 x,y 顺序。 这是默认设置。

SWAPXYFILTER

交换发送到服务器的空间过滤请求的 x,y 坐标。

  • TRUE - 交换过滤请求的 x,y 顺序。
  • FALSE - 不交换过滤请求的 x,y 顺序。 这是默认设置。
注:

除了 BBOXSTRINGLENGTHOUTPUTFORMATPAGESIZE 关键字之外,所有这些关键字在 WFS 图层属性中都有相应的图层设置。 通过右键单击内容窗格中的图层,然后选择属性,可以访问 WFS 图层属性。

除了以上列出的可用于指定 WFS 服务器连接属性的关键字之外,还存在无法使用的其他保留关键字,因为它们对于 WFS 服务或 ArcGIS 有着特殊的含义。 关键字包括 NAMESPACETYPENAMEVERSIONSERVICECRSNAMEREQUESTUSERURLPASSWORDMODEANONYMOUSHTTPTIMEOUTCAPABILITIES_PARAMETERSCONNECTIONPATH

使用 WFS 转要素类工具

可使用 WFS 转要素类地理处理工具将 WFS 服务中的数据下载到地理数据库中。 该工具可用于为正在下载的 WFS 数据创建脚本并且支持复杂的 WFS 服务。

要使用该工具从复杂的 WFS 服务下载数据,请执行以下步骤:

  1. 打开 WFS 转要素类地理处理工具。

    要打开该工具,可在地理处理窗格的“转换”工具箱的从 WFS 工具集下找到该工具,也可以使用搜索栏按名称搜索该工具。

    随即显示 WFS 转要素类工具对话框。

    “WFS 转要素类”地理处理工具对话框
  2. 如果 WFS 服务为复杂服务,选中 复杂 WFS 服务对话框。
  3. WFS 服务器参数中粘贴或输入 WFS 服务的 URL,然后单击参数文本框外部。

    http://gisserver.example.com/geoserver/ows?

    这将在选择要提取的要素类型参数下拉菜单中填充要下载的可用图层列表。

  4. 从下拉菜单中选择图层。
  5. 使用输出位置参数提供下载位置。

    如果选中复杂 WFS 服务,则将输出一个文件地理数据库,因此位置必须为文件夹。

    如果未选中复杂 WFS 服务,将输出一个要素类,因此位置必须为地理数据库或地理数据库中的要素类。

  6. 名称参数中提供输出要素类或地理数据库名称。
  7. (可选)选择输入最大要素数参数值,限制返回的要素数。
  8. (可选)如果选中复杂 WFS 服务,则通过选中显示元数据参数显示服务元数据,这将创建并填充输出地理数据库中的元数据表。

要在 Python 脚本中自动执行此过程,可在工具文档中找到代码示例

相关主题