网络要素服务 (WFS) 是通过 Web 提供地理要素服务的开放规范。 与 Web 地图服务 (WMS) 不同,WFS 服务返回的是具有几何和属性信息的实际要素。 您可通过创建 WFS 服务连接或从活动门户中添加 WFS 项目,在 ArcGIS AllSource 中连接到开放地理空间联盟 (OGC) 的 WFS 服务。
添加 WFS 服务器连接
要添加 WFS 服务器连接,请完成以下步骤:
- 在插入选项卡的工程组中,单击连接按钮,单击服务器,然后单击新建 WFS 服务器
。
随即弹出添加 WFS 服务器连接对话框。
- 在服务器 URL 文本框中,输入要连接的 WFS 服务器站点的 URL。
URL 将根据站点配置的不同而变化。
示例 URL 如下所示:https://sampleserver6.arcgisonline.com/arcgis/services/SampleWorldCities/MapServer/WFSServer
- 从版本下拉菜单中,选择要连接的 WFS 版本。
默认版本连接到服务器支持的最高版本号。
- 如果要连接的 WFS 服务具有其他功能,或者要为 WFS 服务器连接设置特定于 ArcGIS AllSource 客户端的属性,则可以向自定义请求参数部分添加自定义请求参数名称和值。
常用的特定 ArcGIS AllSource 客户端的保留关键字的示例包括:用于启用客户端分页的 PAGESIZE、用于将要素限制在特定地理区域的 BBOX、用于设置地图中显示的要素数量限制(默认使用限值 3000)的 MAXFEATURES 或用于交换图层轴顺序的 SWAPXY。 这些关键字可应用于 WFS 服务器连接中列出的所有图层。 要修改单个图层的属性,可以在图层属性的 WFS 选项卡上进行查看或修改。 请注意,ArcGIS AllSource 无法验证特定于服务器的附加参数。
要添加自定义参数,请执行以下操作:
- 单击第一个单元格。
- 在参数列的单元格中指定参数名称。
- 在值列的单元格中指定参数值。
- 要添加其他参数,请单击添加行按钮,并重复步骤 a 到 c。
要删除自定义参数,请执行以下操作:
- 选择包含要删除参数的行。
- 单击移除行删除该行。
- 对每个要删除的参数重复步骤 a 和 b。
- 如果适用,通过执行以下操作之一完成服务的身份验证:
- 如果服务使用基础身份验证提供保护,则在身份验证下拉菜单中,单击服务器身份验证,然后输入用户名和密码。 要将用户名和密码保存到 Windows 凭据管理器或连接文件中,请选中保存登录账户标题下的选项。
- 如果服务使用基于 OAuth 2.0 的身份验证提供保护,则在身份验证下拉菜单中,从下拉列表中单击适当的连接。 如果某个连接不可用,请参阅在 ArcGIS Pro 中连接到身份验证提供程序以了解如何添加身份验证提供程序的连接。 如有必要,请单击登录为提供程序的连接进行身份验证。
- 单击确定。
随后会创建一个 WFS 连接文件 (.wfs) 并将其保存在工程的主目录文件夹中。 引用此连接文件的项目会被添加到工程中,同时该连接会显示在目录窗格的工程选项卡的服务器文件夹中。
- 展开 WFS 连接以查看 WFS 服务中的图层,右键单击图层并单击添加到新建下拉菜单中的选项,或单击添加到当前地图
,将 WFS 图层添加到地图。
还可以通过将服务拖动到地图或内容窗格中来将其添加到地图中。
WFS 服务可用于添加一个或多个图层。 按住 Shift 键同时单击想要添加的子图层组中的第一个和最后一个子图层,可以选择一组图层。按住 Ctrl 键同时单击各个图层,还可以选择多个不连续的图层。 选择图层后,右键单击选中的图层并选择将其添加至当前地图或新地图。 一次添加多个图层比添加一个图层需要更长的时间。
基于活动门户连接添加 WFS 服务
还可以将 WFS 服务添加到门户中。 门户中的 WFS 项目有以下三个来源:
- 向已经与门户联合的 ArcGIS Server 站点发布的 WFS 服务将以项目形式自动添加到您的门户。
- 以项目形式添加到门户中的第三方 WFS 服务。
- 通过从托管要素图层发布 WFS 服务创建的托管 WFS 服务。
可以使用以下步骤将每种类型的 WFS 门户项目添加到地图:
WFS 服务可用于添加一个或多个图层。 按住 Shift 键同时单击想要添加的子图层组中的第一个和最后一个子图层,可以选择一组图层。按住 Ctrl 键同时单击各个图层,还可以选择多个不连续的图层。 选择图层后,右键单击选中的图层并选择将其添加至当前地图或新地图。 一次添加多个图层比添加一个图层需要更长的时间。
使用”添加 WFS 图层“对话框
添加 WFS 图层对话框允许您设置一些适用于 WFS 图层的可选图层属性。 这包括设置最大要素数量和页面大小,以及通过提供范围将要素限制在感兴趣区域。 您还可以在 WFS 图层属性对话框中修改这些属性。

- 设置返回的最大要素 - 设置要添加到地图的要素总数。 向地图添加非常大的数据集可能会导致性能问题和速度缓慢。 此选项允许您限制添加到地图的要素数量。 如果与使用空间范围参数一起使用,这将限制所提供范围内的要素数量。
- 设置页面大小 - 对于支持分页的 WFS 2.0 服务,您可以设置服务器每次加载请求返回的要素数量。 对于 WFS GetFeature 请求,这将设置与分页请求的 startIndex 参数配合使用的 count 参数值。 ArcGIS AllSource 将尝试根据您的服务设置确定要使用的最佳页面大小,但是,最佳值可能取决于服务器在超时(大约 15 秒)之前返回要素的性能。 例如,如果页面大小设置为 25000,那么可以在超时之前返回 25,000 个要素的服务器将会看到更快的地图加载时间。 这减少了从客户端发送到服务器的总请求数。 但是,一些性能较差的服务器可能只能在超时前返回 200 个要素。 在这种情况下,需要较低的页面大小值以避免由于超时而导致的加载错误,并且您会看到发送到服务器加载数据的请求数量增加。
- 使用空间范围 - 选择通过提供感兴趣区域(空间范围)来限制要素。
- 选中 - 通过提供范围来限制添加到地图的要素。 WFS 服务必须支持 BBOX 参数才能使用此功能。 提供在所选范围参数中要使用的范围。
- 未选中 - 不要在空间上限制添加到地图的要素。 这是默认设置。
- 所选范围 - 设置用于限制添加到地图的数据的自定义范围。 您可以手动输入坐标,也可以从当前可见范围、所有图层的数据范围、特定图层的范围内借用范围值。
还可以在图层属性对话框的 WFS 选项卡上查看或修改添加 WFS 图层对话框中的属性。
ArcGIS 数据模型仅允许每个表有一种几何类型。 如果将混合几何 WFS 图层添加到地图,则通过查询 WFS 服务中的第一个要素来确定图层的几何类型。 例如,如果数据中的第一行是面,则 WFS 图层将作为面图层添加到地图中。
使用自定义请求参数
自定义请求参数表单可用于输入 WFS 服务支持的其他功能。 输入键值对可以是特定于 WFS 服务器实现的自定义参数,或者可以使用 ArcGIS AllSource 客户端实现的其中一个保留关键字。
使用键值对
某些 WFS 服务可能具有特定的键值对,这些键值对可用于对服务运行自定义查询。 键值对将追加到 WFS URL 中的问号字符。 例如,您的 WFS URL 为 https://sampleserver6.arcgisonline.com/arcgis/services/SampleWorldCities/MapServer/WFSServer?。 如果您的自定义参数名为 myCustomKey,则可以在参数单元格内输入 myCustomKey 值,然后在值单元格内输入相应的值。 如果 ArcGIS AllSource 请求连接到您的 WFS 服务,则其会将键值对追加到 WFS URL,例如 https://sampleserver6.arcgisonline.com/arcgis/services/SampleWorldCities/MapServer/WFSServer?request=GetCapabilities&service=WFS&myCustomKey=myValue。
使用保留关键字
ArcGIS AllSource WFS 客户端具有保留关键字,这些保留关键字可用于指定 WFS 服务器连接的连接属性。 您为这些参数设置的值将应用于 WFS 服务中的所有图层。 如果要将保留关键字应用于 WFS 服务中的各个图层而不是每个服务连接,则必须使用不同的参数值创建多个连接,或者更新地图中的 WFS 图层属性。 下表中列出了您在设置 WFS 服务器连接文件属性时可能用到的自定义参数名称和值:
关键字 | 描述 |
---|---|
BBOX | 提供边界框范围以限制返回要素的范围,例如 -122.5,37.7,-122.3,37.8。 如果要将所有 WFS 图层中返回的要素数限制在特定地理区域,则此参数将非常有用。 这仅适用于快照模式。 |
MAXFEATURES | 设置 WFS 服务器连接中针对图层返回的最大要素数。 当服务存在大量要素时,设置该值可以避免出现性能问题。 默认值为 3000。 如果您的数据量大,可将此项设置为较大的数字以查看更多要素。 如果您的服务支持分页,可调整 PAGESIZE 参数以更高效地加载数据。 |
MODE | 指定要为图层使用的连接模式。 默认的连接模式为快照。
|
OUTPUTFORMAT | 指定请求要素所用的格式。 WFS 服务可以支持多种输出格式类型,但是默认情况下,格式为 GML。 仅当您的服务支持指定的输出格式时,才会使用此选项。 您可以在 GetCapabilities 响应中查看服务支持的输出格式。
输出格式为 GeoJSON 时,SWAPXY 和 SWAPXYFILTER 属性不适用。 |
PAGESIZE | 指定在提出 GetFeature 请求以将数据加载到地图中时要使用的页面大小。 默认情况下,如果服务支持分页,将使用页面大小值 200。 使用此关键字修改每个请求返回的要素数量(使用 WFS count= 参数)。 页面大小使用的最佳值取决于服务器的性能。 理想情况下,该值将设置为服务在一次 GetFeature 请求中可以返回的最大要素数,而不会导致服务器超时(大约 15 秒)。 对于响应时间较快的服务器,10,000 到 50,000 的页面大小可能效果最佳。 对于响应时间较慢或每次响应返回的要素数量有限制的服务器,较小的页面大小(100)可能会避免超时错误。 不支持分页且具有大量要素的服务,由于所有要素将在一次请求中返回,因此图层在地图中的加载性能可能会很慢。 此关键字仅适用于支持 startIndex 和 count 参数的 WFS 2.0 服务。 使用按需连接方式时,该关键字不适用。 |
STRINGLENGTH | 指定 WFS 图层中文本字段的长度。 在地图中打开图层时,默认将所有文本字段的长度截断为 255 个字符。 |
SWAPXY | 交换图层显示的 x,y 坐标。
|
SWAPXYFILTER | 交换发送到服务器的空间过滤请求的 x,y 坐标。
|
HTTPMETHOD | 指定以按需模式向服务器发送请求时使用的 HTTP 方法。 默认情况下,ArcGIS AllSource 以按需模式向服务器发送 POST 请求。 这允许将更高级的过滤器发送到服务器。 但是,WFS 的某些实现不支持 POST 请求。 在这种情况下,您可以在按需模式下将 HTTPMETHOD 设置为 GET 并访问 WFS 图层的基本功能。
|
注:
除了 BBOX、STRINGLENGTH、OUTPUTFORMAT 和 HTTPMETHOD 关键字之外,所有这些关键字在 WFS 图层属性中都有相应的图层设置。 通过右键单击内容窗格中的图层,然后选择属性,可以访问 WFS 图层属性。
除了以上列出的可用于指定 WFS 服务器连接属性的关键字之外,还存在无法使用的其他保留关键字,因为它们对于 WFS 服务或 ArcGIS 有着特殊的含义。 关键字包括 NAMESPACE、TYPENAME、VERSION、SERVICE、CRSNAME、REQUEST、USER、URL、PASSWORD、MODE、ANONYMOUS、HTTPTIMEOUT、CAPABILITIES_PARAMETERS 和 CONNECTIONPATH。
使用 WFS 转要素类工具
可使用 WFS 转要素类地理处理工具将 WFS 服务中的数据下载到地理数据库中。 该工具可用于为正在下载的 WFS 数据创建脚本并且支持复杂的 WFS 服务。
要使用该工具从复杂的 WFS 服务下载数据,请执行以下步骤:
- 打开 WFS 转要素类地理处理工具。
要打开该工具,可在地理处理窗格的“转换”工具箱的从 WFS 工具集下找到该工具,也可以使用搜索栏按名称搜索该工具。
随即显示 WFS 转要素类工具对话框。
- 如果 WFS 服务为复杂服务,选中 复杂 WFS 服务对话框。
- 在 WFS 服务器参数中粘贴或输入 WFS 服务的 URL,然后单击参数文本框外部。
http://gisserver.example.com/geoserver/ows?
这将在选择要提取的要素类型参数下拉菜单中填充要下载的可用图层列表。
- 从下拉菜单中选择图层。
- 使用输出位置参数提供下载位置。
如果选中复杂 WFS 服务,则将输出一个文件地理数据库,因此位置必须为文件夹。
如果未选中复杂 WFS 服务,将输出一个要素类,因此位置必须为地理数据库或地理数据库中的要素类。
- 在名称参数中提供输出要素类或地理数据库名称。
- (可选)选择输入最大要素数参数值,限制返回的要素数。
- (可选)如果选中复杂 WFS 服务,则通过选中显示元数据参数显示服务元数据,这将创建并填充输出地理数据库中的元数据表。
- 或者,要将要素限制在感兴趣区域,请在运行工具时为环境选项卡上的处理范围参数提供范围值(或设置 arcpy.env.extent 环境(如果使用 Python))。
要在 Python 脚本中自动执行此过程,可在工具文档中找到代码示例。