基于geoserver的WFS空间查询

1 GIS空间要素对象

GIS的要素对象一般由属性数据和几何数据;“id、name、address”字段这些通常被称为属性数据,坐标那些被称为几何数据。OGC根据几何数据将空间要素对象分为Point,MultiPoint,...,MultiPolygon,MultiPolygon等[1],二维空间中,我们简单的分为点(Point)、线(LineString)、面(Polygon)。

image-20211215203336956.png (1272×797) (gitee.com)

2 属性查询与空间查询

属性查询是指属性数据的过滤查询,空间查询是指空间关系的的过滤查询,空间关系分为方位关系、距离关系、拓扑关系

3 Geoserver对空间查询的支持

点击查询管网(线)的geoserver请求示例:

http://example.com/geoserver/ows?
  service=wfs&
  version=2.0.0&
  request=GetFeature&
  typeNames=namespace:featuretype&
  outputFormat=application/json&
  cql_filter=BBOX(the_geom, xMin,yMin,xMax,yMax)

服务类型(service,必填):空间查询通常选择的是网络要素服务(WFS),支持WMS,WFS,WCS,WPS,WMTS,CSW[2]等服务,如下图:

image-20211215203813143

请求类型(request,必填):通常选择获取要素(GetFeature),支持以下几种类型[3]

image-20211215204020650

图层(typeNames,必填):geoserver图层名称由工作空间名称:数据存储名称组成,如下图:

image-20211215204046065

输出格式(outputFormat):通常选择json格式,会返回Geojson文档,前端可以直接渲染。支持GML2,GML3,Shapefile,JSON,JSONP,CSV[4].

通用查询语言过滤器(cql_filter):通用查询语言(Command Query Language)既可以实现属性查询,也可以实现空间查询,因CQL存在一些局限性,geoserver对它做了拓展(extend),被称为ECQL[5][6],ECQL支持的空间拓扑关系如下[7]

关系 解释
INTERSECTS
相交
只要符合包含、被包含、接触、交叉、压盖、相等关系,就是相交,与分离互斥
DISJOINT
(黑色)与(橙色)分离
image-20211215204559382
CONTAINS
(黑色)包含(橙色)
image-20211215204616921
WITHIN
(黑色)被包含(橙色)
image-20211215204629779
TOUCHES
(黑色)与(橙色)接触
image-20211215204643242
CROSSES
(黑色)与(橙色)交叉
image-20211215204654644
OVERLAPS
(黑色)压盖(橙色)
image-20211215204715288
EQUALS
(黑色)与(橙色)相等
image-20211215204731171
RELATE
九交模型(DE-9IM)参数
九交模型(DE-9IM):通过描述A与B的内部(Interior , I),边界(Boundary , B),外部(Exterior , E)之间的关系来表达A与B的拓扑关系,例如分离表达为:FF*FF****
点:没有边界(Boundary, B)
image-20211215204809589
线:两个端点为边界(Boundary , B),端点之间为内部(Interior , I)
image-20211215204844812
面:
image-20211215204914419
DWITHIN
(黑色)与(橙色)的距离小于阈值
距离单位:feet, meters, statute miles, nautical miles, kilometers
BEYOND
(黑色)与(橙色)的距离大于阈值
距离单位:feet, meters, statute miles, nautical miles, kilometers
BBOX
(黑色)框选(橙色)
用左下-右上对角线坐标表示矩形框,xMin,yMin,xMax,yMax

假设查询与用户绘制的面相离的要素对象,那么过滤器可以写为:DISJOINT(the_geom, POLYGON((-90 40, -90 45, -60 45, -60 40, -90 40)))。,因此,前端人员需要了解如何构造几何体,可以参考PostGIS的几何体构造函数[8]


  • 创建时间: 20211119-5_16.21
  • 更新时间: 2021.12.20.1_10.44.18
  • 版权作者: 贝可考拉
  • 当前版本: v1.0
  • 标签分类: #编程开发 #gis #geoserver
  • 索引编号: 324

[9]: Leaflet结合wms和wfs实现点击选中要素_u011505575的博客-CSDN博客_leaflet wms 过滤


  1. Simple Feature Access - Part 1: Common Architecture | OGC ↩︎

  2. Services — GeoServer 2.20.x User Manual ↩︎

  3. WFS reference — GeoServer 2.20.x User Manual ↩︎

  4. WFS reference — GeoServer 2.20.x User Manual#getfeature ↩︎

  5. WFS vendor parameters — GeoServer 2.20.x User Manual#cql-filters ↩︎

  6. CQL and ECQL — GeoServer 2.20.x User Manual ↩︎

  7. ECQL Reference — GeoServer 2.20.x User Manual ↩︎

  8. Chapter 5. PostGIS Reference ↩︎

posted @ 2021-12-16 11:11  贝可考拉  阅读(3410)  评论(1编辑  收藏  举报