GeoServer入門學習:04-發佈Shapfile地圖數據

一、開篇

此篇文章我們使用GeoServer官方網站提供的矢量道路數據nyc_roads.zip來演示如何使用GeoServer發佈矢量數據。該矢量數據包含了部分紐約的道路信息,我們本次就使用此矢量文件(ShapFile)來進行部署和發佈。
文件下載地址:https://pan.baidu.com/s/1I0xb6iKQoM3gDX_6os3E0A 提取碼:mjhw 
如果沒有對GeoServer的文件系統進行更改的話,那複製解壓上面文件完成後的文件目錄應該是:根目錄/data_dir/data/nyc_roads,然後就是四個所需的Shapefile格式文件。 

 

二、新建工作區

部署地圖數據第一個步驟即爲新建一個工作區,工作區(WorkSpace)是一個用於組織類似圖層數據的容器。我們常常會把一些相關的圖層數據放到一個工作區裏。
按照如下的步驟進行操作:
1、登錄GeoServer的Web管理界面,依次點擊右側的數據模塊中的工作區,打開工作區管理頁面,如下圖所示:

2、在上圖所示的頁面點擊《添加新的工作區》超鏈接,打開添加新工作區的頁面,如下圖所示:

3、進入新建工作區的界面,在這裏需要輸入工作區的Name(名字)和命名空間URL。

  • Name(工作區名字):就是一個標誌符,用來區分你的不同的項目。
  • 命名空間URL(Uniform Resource Identifier):通常是一個與項目有關的超鏈接,如果你的服務器接入了互聯網,做好了相關配置與發佈,那麼可以在互聯網上通過這個URL來訪問你的數據。
  • 默認工作區:如果接下來添加的圖層數據都會放到該工作區的話,可以將《默認工作區》複選框選中,這樣添加圖層數據的時候,默認選擇的就是該工作區,會比較方便一些。

4、各項數據填寫完畢之後,點擊下方的《提交》按鈕,完成工作區的創建。如下圖所示:

從上圖可以看到,我們新增的工作區已經在列表中出現了。後續對工作區的信息維護修改、以及刪除等操作也都是在這個頁面來完成的。

 

三、新建數據存儲區

爲了添加nyc_roads中的Shapefile地圖數據,必須建立一個數據存儲。數據存儲實際上維護着地圖數據和文件系統中的文件夾的映射關係。
1、點擊數據模塊中的《數據存儲》菜單項,打開數據存儲管理頁面,如下圖所示:

2、點擊《添加新的數據存儲》超鏈接,打開添加數據存儲的頁面,如下圖所示,可以看到GeoServer支持的衆多矢量數據和柵格數據源:

3、因爲我們要發佈的是Shapefile地圖數據格式,我們點選《Shapefile – ESRI(tm) Shapefiles (*.shp)》即可。打開如下圖所示的頁面:

4、然後按照圖中所示填寫好相關信息。說明如下:

  • 工作區:如前所述工作區就是一種組織數據的方式,選擇哪個工作區,那麼新增的數據源將會組織到該工作區中。此演示我們選擇前面創建的newyork工作區。
  • 數據源名稱:是一個標識,用來與其他的數據源區分。
  • 說明:自定義文本內容,可以對數據源做一個簡明扼要的描述,以便在後續數據源較多,或者過了太長的時間之後,仍然能夠清楚這是一個什麼樣的數據。
  • 鏈接參數:這是數據源所關聯的數據文件。可以用文本框後面的《瀏覽...》超鏈接打開瀏覽窗口,進行文件的選擇。
  • DBF的字符集:數據表的字符集應該和源數據一致,如果不知道源數據的字符集,建議選擇UTF-8,保證對中文系統和用戶的支持。

5、各項數據內容填寫完畢之後,點擊《保存》按鈕,完成數據源的創建。如下圖所示:

如上圖所示,系統已經自動跳轉到了《新增圖層》的頁面,接下來的內容用來說明如何新建圖層。

 

四、創建圖層

新建數據存儲後,默認會停留在新建圖層的界面,我們直接在此開始建立圖層。如下圖所示:

1、因爲只有一個圖層nyc_roads,點擊操作列中的《發佈》進入圖層編輯界面。如下圖所示:

2、圖層編輯界面定義了圖層的數據和發佈參數,需要填寫相關的信息。主要信息的說明如下:

  • 命名:是圖層的標識,用來和其他圖層區分的。
  • 標題:用來顯示的圖層名稱,一般可以和《命名》保持一致。
  • 摘要:提供圖層的概要性的說明內容。

3、填入了名稱、標題、摘要等主要信息後,還需要定義重要的SRS信息和邊框信息。如下圖所示:

主要內容說明如下:

  • 本機SRS:是指地圖數據本身的座標參考系統,這是由地圖數據本身的屬性決定的,也是不可修改的。GeoServer會自動從數據文件中讀取這一信息。
  • Native Bounding Box:與本機SRS相對應的Native Bounding Box則是根據本機SRS自動計算出來的邊框。如果文本框中沒有顯示邊界數據的話,可以點擊下方的《從數據中就算》超鏈接。
  • 定義SRS:是指我們自己想要定義顯示地圖數據的座標參考系統,我們通過右邊的《查找》按鈕進行查找選擇。對於國內用戶來說,常用的座標系統可以通過鍵入「beijing」、」xian」或者4326(WGS-84的編碼序號)進行查找選擇。選擇確定後,通過點擊《compute from nativ bounds》可以計算出在這個座標系統下的邊界。

4、最後點擊《保存》按鈕進行發佈。

發佈成功後,頁面自動跳轉到圖層管理頁面。從上圖可以看到,列表中的圖層名稱包含了工作區和圖層的名稱。
 

五、圖層預覽

爲了驗證我們部署發佈Shapefile地圖數據成功與否,可以對剛剛發佈的數據進行預覽。
1、點擊左側數據模塊的《Layer Preview》,打開如下圖所示的圖層預覽列表頁面:

2、找到我們剛剛發佈的地圖圖層nyc_roads,點擊《Openlayers》超鏈接進行預覽,如果成功則可以看到下圖所示的道路分佈地圖:

在這裏,我們已經可以通過左上角默認的控制條來進行放大縮小與平移,還能點擊圖中的地理要素來查看屬性。
測試得到的URL爲:
http://localhost:8080/geoserver/newyork/wms?service=WMS&version=1.1.0&request=GetMap&layers=newyork%3Anyc_roads&bbox=984018.1663741902%2C207673.09513056703%2C991906.4970533887%2C219622.53973435296&width=506&height=768&srs=EPSG%3A2908&format=application/openlayers
 

六、圖層疊加

在訪問WMS服務的時候通常都是將多個地圖圖層進行疊加組合,才能完成一個相對完整的地圖界面呈現。在訪問WMS服務的時候圖層疊加非常簡單,就是在WMS請求地址的layers參數後面用英文逗號(「,」)將多個圖層進行分割就可以了。下面的WMS服務請求地址就疊加了3個地圖圖層:
http://localhost:8080/geoserver/newyorkroad/wms?service=WMS&version=1.1.0&request=GetMap&layers=newyork:layer1,newyork:layer2,newyork:layer3&styles=&bbox=105.286,28.163,110.194,32.203&width=512&height=421&srs=EPSG:4326&format=application/openlayers
layers=newyork:layer1,newyork:layer2,newyork:layer3,表示此WMS服務請求是由三個地圖圖層疊加組合而成的。
 

七、參考資料 http://blog.csdn.net/mingzai624z https://blog.csdn.net/u010723516/article/details/79012445 https://blog.csdn.net/wo_buzhidao/article/details/78713426