使用 WFS 服务图层

使用 ArcGIS Pro 时,可使用 Web 上的可用开放地理空间联盟 (OGC) Web 要素服务 (WFS)。 ArcGIS 支持使用 WFS 客户端在 Internet 上获取这些服务并向地图中添加 WFS 图层。

OGC 网络要素服务是通过 Web 提供地理要素服务的开放规范,其返回的是具有几何和属性的实际要素。 有关 OGC WFS 规范的详细信息,请参阅 OGC 网站,网址为 www.opengeospatial.org/standards

注:

WFS 客户端的版本仅支持地理标记语言 (GML) 简单要素专用标准。

在内容窗格中查看 WFS 图层

创建 WFS 服务器连接后,WFS 服务连接将显示在目录窗格的服务器文件夹中。 可以通过在 WFS 连接中选择所有图层来将整个 WFS 服务添加到地图,也可以单独添加 WFS 图层。 将 WFS 图层添加到地图后,图层随即将添加到内容窗格中。

也可以通过将项目拖动到地图上以查看活动门户中的 WFS 项目

WFS 图层属性

当向地图中添加 WFS 图层时,其中包括默认图层属性。 这些默认设置可能对 WFS 图层并不适用,所以可能需要作出更改。 要查看或修改这些属性,右键单击内容窗格中的 WFS 图层,然后单击属性

WFS 图层的只读属性

以下 WFS 图层属性提供了关于 WFS 服务器连接属性的详细信息。 这些属性位于图层属性对话框的选项卡中。

WFS 图层数据源属性,例如 URL、WFS 版本和 WFS 模式
  1. 数据类型 - 如果连接至 WFS 图层,则该属性会告知您数据类型为 WFS 服务要素类。
  2. URL - 此为 WFS 服务的 URL。
  3. 要素类 - 在 WFS 术语中,此为 WFS typename。 本示例中的 typename 为 Continent。
  4. WFS 版本 - 您所连接的 WFS 版本。 本示例中的版本为 2.0.0。
  5. WFS 模式 - 您所使用的连接模式。 本示例中的连接模式为快照。

修改 WFS 图层属性

有许多您可以在需要时修改的 WFS 图层属性:

如连接模式、轴顺序或返回的最大要素数量等 WFS 图层属性
  1. 连接模式 - 此属性允许您选择要为图层使用的连接模式。 默认的连接模式为快照。

    连接模式描述

    快照

    此模式与大多数 WFS 服务兼容。 在使用此模式时,将下载 WFS 数据的临时副本,并将其用作要素缓存。 与向 WFS 服务发送复杂的过滤请求并等待服务器响应不同,您将在本地使用数据副本进行工作。 当您关闭 ArcGIS Pro 会话后,数据的临时副本将被删除。

    此方法的缺点是您将无法看到在 ArcGIS Pro 会话期间添加至 WFS 服务的任何新编辑内容。 要查看 WFS 服务的更新内容,必须先关闭并重新打开 ArcGIS Pro。 使用此模式时您可能会注意到,第一次打开地图图层的速度很慢。 这是因为要从服务器中复制数据的缘故。

    按需

    此模式与大多数 WFS 服务并不兼容。 在使用此模式时,无需在本地复制数据,而是要连接到实时 WFS 服务。 当您在地图上进行平移和缩放或对数据进行查询时,该模式会发送服务请求。 由于没有下载数据,因此图层打开的速度可能会变快,并且可在添加有关 WFS 服务的编辑内容时对此部分内容进行查看。

    此模式的缺点是不兼容无法处理复杂过滤请求的 WFS 服务。 要处理此位于 ArcGIS Pro 中的图层并对数据进行查询和分析,服务器必须支持高级过滤请求。

    另一个缺点是,在此模式下无法更改时间属性,因为时间集成自服务器上的设置。

    此模式使用要素服务的要素缓存功能,在要素缓存打开时通过使用显示缓存来提高性能。

    可以通过设置设置 HTTP 方法属性选择 ArcGIS Pro 是否使用 GET 或 POST 请求向服务发送请求。

  2. 设置返回的最大要素 - 该属性允许您限制添加到地图的要素数量。 如果您的 WFS 图层中有数百万条记录,那么此图层的处理速度可能会很慢。 为了避免出现性能问题,默认值设置为 3,000 个要素。
    注:

    为了满足该默认值,WFS 服务版本 2.0.0 必须支持 COUNT,之前版本必须支持 MAXFEATURES

  3. 设置页面大小 - 对于支持分页的 WFS 2.0 服务,您可以设置服务器每次加载请求返回的要素数量。 如果在将 WFS 图层添加到地图时设置该值,则可以在此对话框中修改该值。 修改此值时将刷新图层。
  4. 使用空间范围 - 选择通过提供感兴趣区域(空间范围)来限制要素。 如果在将 WFS 图层添加到地图时设置该值,则可以在此对话框中修改该值。 修改该值时将刷新图层。
    • 选中 - 通过提供范围来限制添加到地图的要素。 WFS 服务必须支持 BBOX 参数才能使用此功能。 提供在所选范围参数中要使用的范围。
    • 未选中 - 不要在空间上限制添加到地图的要素。 这是默认设置。

    所选范围 - 设置用于限制添加到地图的数据的自定义范围。 您可以手动输入坐标,也可以从当前可见范围、所有图层的数据范围、特定图层的范围内借用范围值。 如果在将 WFS 图层添加到地图时设置该值,则可以在此对话框中修改范围值以刷新图层使用新范围。

  5. 高级 - 展开此部分可设置其他 WFS 属性。
    • 交换 x/y 坐标 - 为图层显示交换 x,y 坐标。
      • 已选中 - 交换 x,y 的顺序。
      • 未选中 - 不交换 x,y 的顺序。 这是默认设置。
    • 交换 x/y 过滤请求 - 交换发送到服务器的空间过滤请求的 x,y 坐标。 如果您需要交换图层的 x,y 坐标以获得正确的正确效果,则您可能需要交换 x,y 过滤请求,以确保获得正确的空间查询结果。
      • 已选中 - 交换过滤请求的 x,y 顺序。
      • 未选中 - 不交换过滤请求的 x,y 顺序。 这是默认设置。
    • 设置 HTTP 方法 - 指定以按需模式向服务器发送请求时使用的 HTTP 方法。 默认情况下,ArcGIS Pro 以按需模式向服务器发送 POST 请求。 这允许将更高级的过滤器发送到服务器。 但是,WFS 的某些实现不支持 POST 请求。 在这种情况下,您可以在按需模式下将 HTTP 方法设置为 GET 并访问 WFS 图层的基本功能。
      • GET - 使用 HTTP GET 方法向服务器发送请求。
      • POST - 使用 HTTP POST 方法向服务器发送请求。 这是默认设置。
    • 几何类型 - 指定图层的几何类型。 几何类型默认设置为自动。 这意味着 ArcGIS Pro 会通过在服务图层中查询第一个要素的几何字段为您查找几何类型。 如果已知服务图层包含混合集合(例如,表包含带线和面的行),则可以从下拉菜单中选择几何类型以强制图层显示数据中符合选定几何类型的要素。 ArcGIS Pro WFS 图层限制为每个图层一个几何类型。 要显示相同服务图层中的多个几何类型,多次添加服务图层以及为每个图层指定一个几何类型。 几何类型参数仅适用于快照模式。

修改 WFS 服务器连接属性

可修改 WFS 服务器连接属性。 通过修改服务器连接属性,可以在服务器连接级别设置 WFS 属性(这会影响服务中的所有图层),而无需针对每个图层进行设置。 以下步骤将说明如何添加、移除或修改 WFS 服务器连接属性:

  1. 目录窗格中选择 WFS 服务器连接。
  2. 右键单击该连接并选择属性

    这将打开 WFS 服务器连接属性对话框。

  3. 要更新 WFS 服务 URL,请在服务器 URL 文本框中输入新 URL。
  4. 要更新服务连接到的 WFS 版本,请在版本下拉列表中选择其他版本。
  5. 要更新自定义请求参数,请修改参数名称或值。 (可选)添加新行或删除行。
  6. 展开 WFS 属性部分以修改任意现有属性。
  7. 要更新使用的身份验证,请输入新的用户名和密码,然后选择凭据的保存方式。
  8. 在更新完属性后,单击确定

    服务器连接将刷新以反映所做的修改。

  9. 之前从服务器连接添加到地图的所有图层都不受这些更改的影响。 您必须将图层重新添加到地图才能查看更改。

使用 web 上的 WFS 图层

添加至 ArcGIS Pro 的 WFS 图层将作为数据库中的只读要素图层。 您可以查询要素,更改符号系统或在图层上运行分析。

疑难解答

并非所有 WFS 服务均采用相同的方法实现。 此部分可解决将 WFS 图层添加至 ArcGIS Pro 时出现的若干常见问题。

问题解决方案

要素在地图上不显示,或者不在预期位置显示。

您可能需要更改图层的轴顺序属性。 默认情况下,客户端假设每个服务的轴顺序为 x,y。 如果您的服务的轴顺序并非以上顺序,请尝试更改交换 x/y 坐标设置。

需要很长时间才能将 WFS 图层添加至地图。

请执行以下操作:

  • 如果您同时添加了多个图层,请尝试一次只添加一个图层。
  • 将返回的最大要素设置为一个较低值。
  • 使用 BBOX 自定义请求参数或使用空间范围选项指定较小的地理区域。
  • 如果使用 WFS 2.0,修改用于设置每个 GetFeature 请求的要素数量的页面大小值。 这可能意味着需要增加请求的要素数量。

我在将 WFS 图层添加至地图时收到一个错误。

如果客户端不支持 WFS 服务中的要素类型,或者服务器不支持客户端发送的请求,那么在将服务添加到地图时,可能会收到一条错误消息。 错误消息可帮助判断问题所在。 请参阅以下示例:

  • GetCapabilities 请求会返回 XML 解析程序错误。 这属于服务器响应问题。
  • 几何类型不支持错误消息。 WFS ArcGIS Pro 客户端不支持复杂数据类型。
  • 请求超时错误。 如果服务器响应过慢,则请求可能会超时。 如果使用 WFS 2.0,修改用于设置每个 GetFeature 请求的要素数量的页面大小值。 这可能意味着需要减少请求的要素数量。

我无法添加 WFS 服务器连接。

请确保您具有访问 WFS 服务数据所需的登录凭据。 这可能需要用户名和密码或自定义请求参数值。

通过在浏览器中检查 GetCapabilities 响应来验证服务是否正常。

使用按需模式时,我观察到一些奇怪的行为或查询没有返回预期结果。

请尝试使用“快照”模式。 如果您想继续使用按需模式,请尝试更改其他一些 WFS 属性。 如果修改不同的图层属性不能解决您的问题,并且您的服务能够在“快照”模式下正常工作,则请联系并反馈给 Esri 技术支持

默认情况下,按需模式通常会使用复杂过滤器将 POST 请求发送至 WFS 服务。 您可以尝试使用 web 调试程序工具来尝试捕获通过客户端发送至服务器的 POST 请求,并验证服务是否支持正在发送的过滤器。

另一种选择是通过将 HTTP 方法设置为 GET,将 HTTP 方法切换为在按需模式下使用 GET 请求。

局限性

ArcGIS Pro 中使用 WFS 客户端存在以下已知限制:

  • 尚不支持具有事务的 WFS。 图层的行为与只读数据源相同。
  • 尚不支持在 ArcGIS Pro 中将 WFS 图层共享为 web 地图。
  • 无法在按需连接模式下更改时间属性。 时间继承自服务器上的设置。
  • 不支持包含使用 ArcGIS Data Interoperability 扩展模块 扩展模块创建的 WFS 图层的已导入 .mxd 文件。
  • 针对版本 1.0.0 创建的 WFS 服务器连接仅支持使用“快照”连接模式。
  • 基于 ArcGIS Desktop 的 WFS 服务 10.5 版本或较早版本需要使用快照模式。

相关主题