本節將講解ol使用wfs同後臺geoserver進行交互,從而實現要素的增刪改查。由於geoserver需要服務器端,所以我們將從環境搭建開始講解,使用公開的數據源,進行查詢,修改,添加,刪除操作的演示,使得大家最終學會。
1、Geoserver環境配置
由於wfs協議涉及到跨域的問題,在配置過程中,我們也將把跨域的環境配置好。雖然跨域的解決方式有很多,但此處選擇一個稍微簡單的方式,詳見下面的具體步驟。
一、安裝java環境,這個就不贅述了,網上一搜一大堆
二、下載安裝TomCat,這個資源和教程網上也是一搜一堆,在此不再贅述!
三、安裝Geoserver
此時,我們需要到GeoServer官網去下載geoserver,我選擇了最新的2.15.1版本,由於我使用tomcat作爲服務器,所以我選擇下載Web Archive
格式的geoserver-2.15.1-war.zip。
下載後解壓到得到war文件:geoserver.war
,把該文件放置到tomcat目錄下的webapps目錄下,比如放置該文件後,我的路徑爲:H:\softs\apache-tomcat-8.0.53\webapps\geoserver.war
。
然後在命令行終端啓動tomcat,可能需要稍微等待一下,因爲要部署geoserver,待tomcat命令行終端啓動完成,就可以打開瀏覽器輸入http://localhost:8080/geoserver
打開geoserver的管理頁面,如下:
Tomcat啓動成功頁面:
Geoserver管理頁面:
見到這個頁面,也就安裝成功了。如果沒有出現該頁面,請按照前面的步驟檢查一下什麼地方出問題了。
2、跨域配置
由於tomcat從7.0.41版本開始就支持跨域了,我們下載的tomcat是8.0.53,自然就能很好的支持了,只需要進行下面的簡單配置:
- 找到geoserver的
web.xml
文件,我的電腦對應的路徑爲H:\softs\apache-tomcat-8.0.53\webapps\geoserver\WEB-INF\web.xml
- 打開該文件,把下面的配置添加在該文件中:
<filter> <filter-name>CorsFilter</filter-name> <filter-class>org.apache.catalina.filters.CorsFilter</filter-class> </filter> <filter-mapping> <filter-name>CorsFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
然後再重新啓動tomcat即可去除跨域的問題!這樣關於Geoserver的下載與安裝配置就已經完成了,下一步,我們要進行數據的準備!
3、配置數據源
這裏我主要是按照Geoserver官網上的來的,先看一下官網:
可以看出官網給的教程是發佈一個shapeFile服務,正好也是我們常用的,所以我們就用它來作爲實例!
我們先下載下來這個shapeFile文件。然後使用ArcGIS打開看一下這個數據如下圖:
再來看一下數據的屬性表信息:
下面就以我的計算機配置爲例,進行說明:
-
下載後解壓,把壓縮包裏面的
nyc_roads.dbf, nyc_roads.prj, nyc_roads.shp, nyc_roads.shx
放在目錄H:\softs\apache-tomcat-8.0.53\webapps\geoserver\data\data\nyc_roads
下,nyc_roads
這個目錄沒有,就新建一個。 -
啓動tomcat,在瀏覽器中打開geoserver的配置頁面
http://localhost:8080/geoserver
,使用用戶admin登錄,密碼爲geoserver -
創建
工作區
:
點擊添加新的工作區:
點擊提交,我們新建的工作控件就出現在工作區了:
然後再創建數據存儲:
點擊新建數據存儲,並選擇矢量數據源格式:
點擊保存後,然後默認新建圖層:
然後再編輯圖層:
最後點擊頁面最下方的保存
按鈕,就配置好了。
最後預覽一下,點擊左邊的Layer Preview
,在右邊找到剛纔創建的圖層nyc_roads:nyc_roads
,點擊右邊的OpenLayers,就可以打開新頁面,顯示預覽結果。
然後預覽看一下,看看是否與我們前面在ArcGIS中打開的一樣:
可以看到是一樣的!出現最後一個頁面,就說明數據源配置好了!
數據源也配置好了,下面我們要開始正式的地圖要素增刪改查了!大家加油!