javascript
ArcGIS JS API加载GeoServer发布的WFS服务
文章目錄
- 前言
- 主要代碼
- 總結
- 參考鏈接
前言
WFS(Web Feature Service),OGC標準下的要素服務。其支持的主要操作如下:
- GetCapabilities (discovery operation)
- DescribeFeatureType (discovery operation)
- GetPropertyValue (query operation)
- GetFeature (query operation)
- GetFeatureWithLock (query & locking operation)
- LockFeature (locking operation)
- Transaction (transaction operation)
- CreateStoredQuery (stored query operation)
- DropStoredQuery (stored query operation)
- ListStoredQueries (stored query operation)
- DescribeStoredQueries (stored query operation)
該服務可以直接在ArcGIS Server上發布,只需要在正常發布服務流程上勾選上WFS的選項就可以,也可以通過其他平臺發布,如開源GIS平臺GeoServer。在實際項目中WFS服務用到的還是比較少的,一般來說如果甲方采購GIS平臺的話,如ArcGIS平臺,會直接發布Feature Layer服務來進行要素的增刪改操作;SuperMap平臺的話,會直接發布數據服務。也就是各自平臺所特有的要素數據服務,而不會去采用WFS服務的方式。個人感覺雖然各個GIS平臺廠商對OGC標準下的服務都有支持,但支持并不是那么的友好,畢竟不是自家的。該篇博客主要說如何通過ArcGIS JS API加載GeoServer發布的WFS服務,只要是WFS服務就可以,無論哪個平臺發布的,以GeoServer平臺的為例。
主要代碼
API地址:https://developers.arcgis.com/javascript/3/jsapi/wfslayer-amd.html
官方示例: https://developers.arcgis.com/javascript/3/jssamples/layers_wfs.html
下面是自己發布的WFS服務
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>ArcGIS疊加GeoServer發布的WFS圖層</title> </head> <link rel="stylesheet" href="https://js.arcgis.com/3.27/esri/css/esri.css"> <style>html, body, #map {height: 100%;margin: 0;padding: 0;} </style> <script src="https://js.arcgis.com/3.27/"></script> <script>var map;require(["esri/map", "esri/InfoTemplate", "esri/layers/WFSLayer","esri/config", "esri/geometry/Extent", "dojo/domReady!" ], function(Map, InfoTemplate, WFSLayer, esriConfig, Extent) {map = new Map("map");esriConfig.defaults.io.proxyUrl = "http://localhost/Java/proxy.jsp";//設置代理var opts = {"url": "http://localhost:8090/geoserver/wfs_point/wfs","version": "1.1.0","name": "Points",//圖層名稱"wkid": 4326,//Supported WKIDs: 3857 | 4326 | 3785."maxFeatures": 1000};var layer = new WFSLayer();//經測試使用new WFSLayer(opts)失敗layer.fromJson(opts);//只能用fromJsonmap.addLayer(layer);map.setExtent(new Extent(116.92277568843764,36.6065212736288,117.16265171209778,36.70398132446974,map.spatialReference)); }); </script> <body><div id="map"></div> </body> </html>幾個需要注意的地方在下面的總結中!
總結
參考鏈接
http://www.opengeospatial.org/standards/wfs
總結
以上是生活随笔為你收集整理的ArcGIS JS API加载GeoServer发布的WFS服务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaScript计算汉明距离(Ham
- 下一篇: ArcMap导出属性表为Excel文件