GIS加油站

结合GetCapabilities文档详解WFS服务

2025-08-09  本文已影响0人  牛老师讲GIS

一、WFS 核心概念

WFS 是 OGC 制定的矢量数据服务标准,提供地理要素的增删改查能力。区别于 WMS(地图服务),WFS 直接操作地理要素(点、线、面)而非渲染图片。

关键特性:

关键能力

1. 支持的 WFS 版本

http://localhost:8086/geoserver/lzugis/wfs?service=WFS&acceptversions=2.0.0&request=GetCapabilities

2. 核心操作与参数

3. 空间查询能力

4. 属性查询能力

5. 函数支持

文档中列出 200+ 函数,涵盖几何、数学、字符串、栅格处理等:

# 返回名称和面积
http://localhost:8086/geoserver/lzugis/wfs?request=GetFeature&typeNames=lzugis:base_province&   PROPERTYNAME=NAME,area(the_geom)&outputFormat=application/json

二、WFS 核心接口详解

1. 元数据接口

接口名称 描述 示例请求
GetCapabilities 获取服务能力文档 http://localhost:8086/geoserver/lzugis/wfs?service=WFS&acceptversions=2.0.0&request=GetCapabilities
DescribeFeatureType 获取要素结构定义 http://localhost:8086/geoserver/lzugis/wfs?request=DescribeFeatureType&typeNames=lzugis:base_province

2. 数据查询接口

接口名称 描述 关键参数
GetFeature 获取要素数据 typeNames (图层名), outputFormat, CQL_FILTER, PROPERTYNAME
GetPropertyValue 获取特定属性值 valueReference (属性名), resolve (引用解析)

3. 数据编辑接口

接口名称 描述 操作类型
Transaction 要素增删改 <wfs:Insert>, <wfs:Update>, <wfs:Delete>
LockFeature 锁定要素防并发冲突 releaseAction (ALL/SOME)

4. 存储查询接口

接口名称 描述
CreateStoredQuery 创建预定义查询
ListStoredQueries 列出所有存储查询
DescribeStoredQueries 获取存储查询详情

三、WFS 使用场景与示例

场景 1:基础数据查询

获取 GeoJSON 格式的道路数据

http://localhost:8086/geoserver/lzugis/wfs?service=WFS&version=2.0.0&request=GetFeature&typeNames=lzugis:base_province&outputFormat=application/json

场景 2:空间关系查询

查询与特定区域相交的数据

http://localhost:8086/geoserver/lzugis/wfs?request=GetFeature&typeNames=lzugis:base_province&CQL_FILTER=INTERSECTS(the_geom, POLYGON((10 20, 15 20, 15 25, 10 25, 10 20)))&outputFormat=application/json

场景 3:属性过滤查询

查询人口大于 100 万的城市

http://localhost:8086/geoserver/lzugis/wfs?request=GetFeature&typeNames=lzugis:base_province&CQL_FILTER=count > 5&outputFormat=application/json

场景 4:数据编辑事务

插入新道路要素 (XML 请求)

<wfs:Transaction xmlns:wfs="http://www.opengis.net/wfs/2.0"
                 xmlns:lzugis="https://lzugis.cn">
  <wfs:Insert>
    <lzugis:roads>
      <lzugis:name>New Highway</lzugis:name>
      <lzugis:geom>
        <gml:LineString srsName="EPSG:4326">
          <gml:posList>102.0 2.0 103.0 3.0</gml:posList>
        </gml:LineString>
      </lzugis:geom>
    </lzugis:roads>
  </wfs:Insert>
</wfs:Transaction>

通过合理利用 WFS 的强大功能,可构建从简单数据展示到复杂地理分析的全栈空间应用。GeoServer 的完整函数支持(如 HeatmapBarnesSurface 等)使其成为专业地理分析的理想平台。

上一篇 下一篇

猜你喜欢

热点阅读