1 GIS空间要素对象

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

geospark空间查询优化 geoserver空间查询_GeoServer

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]等服务,如下图:

geospark空间查询优化 geoserver空间查询_geospark空间查询优化_02

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

geospark空间查询优化 geoserver空间查询_GIS_03

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

geospark空间查询优化 geoserver空间查询_GeoServer_04

输出格式(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

(黑色)与(橙色)分离

geospark空间查询优化 geoserver空间查询_geospark空间查询优化_05

CONTAINS

(黑色)包含(橙色)

geospark空间查询优化 geoserver空间查询_GeoServer_06

WITHIN

(黑色)被包含(橙色)

geospark空间查询优化 geoserver空间查询_User_07

TOUCHES

(黑色)与(橙色)接触

geospark空间查询优化 geoserver空间查询_空间查询_08

CROSSES

(黑色)与(橙色)交叉

geospark空间查询优化 geoserver空间查询_geospark空间查询优化_09

OVERLAPS

(黑色)压盖(橙色)

geospark空间查询优化 geoserver空间查询_User_10

EQUALS

(黑色)与(橙色)相等

geospark空间查询优化 geoserver空间查询_geospark空间查询优化_11

RELATE

九交模型(DE-9IM)参数

九交模型(DE-9IM):通过描述A与B的内部(Interior , I),边界(Boundary , B),外部(Exterior , E)之间的关系来表达A与B的拓扑关系,例如分离表达为:FF*FF****点:没有边界(Boundary, B)

geospark空间查询优化 geoserver空间查询_User_12


线:两个端点为边界(Boundary , B),端点之间为内部(Interior , I)

geospark空间查询优化 geoserver空间查询_GIS_13


面:

geospark空间查询优化 geoserver空间查询_geospark空间查询优化_14

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