基于geoserver的WFS空间查询

摘要:
3Geoserver对空间查询的支持点击查询管网(线)的geoserver请求示例:http://example.com/geoserver/ows?service=wfs&version=2.0.0&request=GetFeature&typeNames=namespace:featuretype&outputFormat=application/json&cql_filter=BBOX服务类型:空间查询通常选择的是网络要素服务,支持WMS,WFS,WCS,WPS,WMTS,CSW[2]等服务,如下图:请求类型:通常选择获取要素,支持以下几种类型[3]:图层:geoserver图层名称由工作空间名称:数据存储名称组成,如下图:输出格式:通常选择json格式,会返回Geojson文档,前端可以直接渲染。

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↩︎

免责声明:文章转载自《基于geoserver的WFS空间查询》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇EA使用教程windows server中opencv运行过程中MF.dll/MFReadWrite.dll/MFPlat.DLL文件丢失问题解决下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Eclipse下建立geoserver源码工程

摘要:本文详细阐述,如何基于geoserver源码构建eclipse工程文件,操作过程中除用到jdk、eclipse以外,还有git和maven,操作系统为windows8。 1安装Git       从(http://git-scm.com/download/win),下载得到Git-1.9.0-preview2014021 7.exe文件,直接安装即可...

GeoServer源码解析和扩展 (二)注册服务

先上源码下载 上一章我们介绍了GeoServer源码分析的必要性(这个就见仁见智了)以及诸项准备工作,并且在最后还给出了OWS请求处理流程的伪代码。 这一章我们来看看要注册自己的服务需要做哪些工作。假设我们要为一个物流公司GOODS开发系统,有一个功能是给定起点和终点的城市名称以及包裹的重量返回运费,运费的计算公式如下: 运费(¥) = 距离(千米)...

基于geowebcache切片服务的发布

接着上一篇文章,如何将JPG格式的图片转化为带地理坐标的TIFF格式里提及的最近的一个项目,数据源是一张高分辨率的2.5维图片,现在已经成功转化成了带有地理坐标的TIFF格式。下面将介绍借助GeoServer如何将这个TIFF格式的数据以TMS(Tiled Map Service)的形式发布出去。此前笔者利用商业软件ArcGIS Server发布地图服务...

(九)WebGIS中的矢量查询(针对AGS和GeoServer)

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/。 1.前言 在第七章里我们知道了WebGIS中要素的本质是UIComponent,而矢量图层的本质是包含了n(n>=0)个UIComponent的Canvas。我们在UIComponent的graphics中,根据矢量数据画...

使用geoserver发布arcgis切片

arcgis map 版本:10.1,10.2,10.3均可 jre:7或者8 geoserver:2.8.2以上 切片:松散型,256*256  ,png 1:安装geoserver并独立部署geowebcache   安装方法:将下载的geowebcache独立部署包解压到geoserver的webapp目录下  例如:webapp/geowebcac...

Geoserver的rest接口使用(后台或者前端调实现自动发布服务)

Geoserver提供许多服务的发布,我们可以通过控制台进行手动发布,至于至于如何在程序中利用代码发布服务,这如何做?可以通过两种思路进行一通过后台通过请求rest接口进行发布或者前端通过ajax,另一种通过xml方式详细的请参考该篇文章简析GeoServer服务的内部文件组织以及GeoServer自动化服务发布工具的开发思路本文主要介绍地第一种方式(ja...