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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM