在本地已有shp格式地圖數據的條件下通過Geoverser發布WMS。
環境要求:JDK,
GeoServer,
uDig
1.在本地拷入要發布的shp數據
在開始菜單中單擊進入該文件夾
依次進入下圖路徑,並新建一個文件夾(如wms1),盡量用英文。並將要發布的數據拷入剛新建的wms1的文件夾內
2.登錄進GeoServer地圖發布頁
單擊Start GeoServer
進入GeoServer Admin Page
利用安裝GeoServer時設置的用戶名(默認為admin)和密碼(默認為geoserver)登錄
登錄成功后如下圖所示。發布wms主要會用到Data功能區里的部分。
3.新建Workspace
點進Workspaces,可利用已有的workspace或者新建workspace.
輸入workspace 的name和url(可隨便寫)
提交后就可以在Workspaces里看到剛剛新建的wms1_ws
4.關聯本地數據源
在首頁點擊Data功能區里的Stores,新建Store
通常選擇第一個Directory of spatial files(shapefiles),可以同時關聯一個文件夾下的多個shp圖層。這里也可以選擇Shapefile 關聯單個shp圖層
配置關聯數據的參數
注意:在第3步中,選擇一開始在GeoServer安裝目錄下新建的存放shp數據的文件夾(如C:\\Program Files\GeoServer 2.3.0\data_dir\data\wms1)。
此處的路徑為file:data/wms1;在第4步中也要特別注意,如果屬性數據中有中文字段的必須選擇為GB2312或GBK,否則發布出來的中文屬性數據將顯示為亂碼。
保存配置后,如下圖:
5.發布地圖
在上圖(也可通過Data ->Layers->Add a new resource),點擊要發布圖層后面對應的Publish,進入地圖發布配置項。
6.預覽地圖
在主界面,Data功能區里點擊Layer preview,進入地圖預覽功能界面。
找到剛剛發布圖層,點擊對應的OpenLayers
7.設置地圖符號效果
打開Data ->Styles
新建樣式。
設置樣式名稱,工作空間和樣式代碼(可從uDig復制進來,接下來講到)。
注意:如果屬性數據表中涉及中文,從uDig中粘貼的樣式代碼的編碼方式手動改為GB2312,不然無法識別設置的中文樣式。
用uDig打開本地shp圖層,
在Layer里,右鍵點擊圖層,選擇change style,
如果設置的Label字段為中文,則還需要點擊Set Font,修改中文字體和編碼方式。
注意:如果Label字段為中文,則必須選擇腳本(R)處為中文GB2312(需先將字體設置為中文樣式)。
確認以上所有修改后,點擊Style Editor中的XML,復制所有代碼。
注意:此處可以用Export的方式,但是如果有中文的屬性數據,導出的中文樣式為亂碼。所以此處建議全用手工復制的方式。
在GeoServer中進入Data ->Layers功能區。
點擊已經發布的圖層,進入修改頁面。
保存后,重新預覽該圖層,效果如下
8.遇到的問題
菜鳥學習,所以遇到了很多白痴問題,記錄下來,免得以后再出錯!
1.在最開始登錄GeoServer時提示DNS出錯,找不到該地址。
解決方法 在開始菜單中點擊start GeoServer,並等待啟動后再登錄GeoServer。
2.當發布成功后,預覽某個圖層時,提示下載wms,而不是顯示地圖。起初都以為沒有發布成功,糾結了很久才知道是xml格式有問題。
解決方法是下載該wms,用記事本打開,上面標明了出錯的地方。
3.用uDig導出的xml樣式文件,導入到GeoServer時,發現樣式代碼中的中文字體名稱和字段名顯示不出來。
解決方法 手動改正。並將編碼方式改為GB2312,否則會報錯。如第2條。
4.顯示出來的屬性數據中文部分為亂碼。
解決方法 在第4步關聯本地數據時,注意修改編碼方式。或者編輯圖層,修改其編碼方式。
總之,在涉及中文屬性的時候,一定要修改編碼方式,提示下載wms時就下載下來查看錯誤的所在。