高效訪問海量地圖數據--GeoServer手動發佈本地Shapefile地圖

首先,本文實現的結果圖給大家展現一下:

放大的樣子:

顏色是通過屬性中某個字段值來分級的,可以自定義。

上面功能是用ArcGIS切片好數據,在Geoserver 中發佈,並用google地圖作爲底圖展示的效果。

一、ArcGIS是什麼?

ArcGIS由ESRI公司開發,是一款創建和繪製各種不同形式地圖的軟件。

本文所採用的地圖數據一般由測繪人員採集,經過gis數據處理人員繪製成圖再打包給開發人員經過代碼處理展示在網頁端。

以下是ArcGIS旗下軟件ArcMap的切片地圖原圖,圖中密密麻麻分成了6000多個面,每個面是把地圖放大後,一點一點勾勒出來,再加入屬性數據,這是一項非常耗時+耗精力+耗眼睛的工作。

二、Geoserver是什麼?

顧名思義,是一個server,利用它可以方便的發佈地圖數據,允許用戶對特徵數據進行更新、刪除、插入操作,通過GeoServer可以比較容易的在用戶之間迅速共享空間地理信息。

值得一提的是,它是開源的,而ESRI公司開發的同類型產品ArcServer卻是一款收費的GIS服務器,而且價格比較高。

三、爲什麼Geoserver這麼高效?

隨着瓦片的概念被提出以來,利用金字塔模型緩存地圖瓦片的模式代替傳統地圖框架,大大提高了網絡地圖的響應速度。

      

如圖所示,在某一個點上用一定的切片算法對地圖進行切片,比如經緯度步長等比例分割成的瓦片(小圖片)緩存起來,如果地圖比例尺比較大,則只展示第一張圖,隨着地圖放大,同時發生四次請求來加載第二層的四張圖片,直至放大加載到最後一層。

當需要定位一個地方時,可以根據剛纔的經緯度步長來計算具體位置。

四、如何把ArcGIS的.shp文件發佈到Geoserver裏?

1.配置環境

搭建GeoServer環境需要安裝包:Java JDK 7、Tomcat 7 、geoserver.war(最新版本的GeoServer 2.0.2版已經內置了HTTP服務器)。安裝包可以私信我,數據的話自己網上找找ArcGIS切片地圖文件,因爲簽了保密協議,博主不能提供。

把geoserver.war放在Tomcat的webapp下啓動就可以訪問了。

用戶名是admin,密碼是geoserver,登錄後頁面如下:

2.加入style

打開GeoServer界面,點擊Styles,如圖

進入新頁面後,點擊Add new style

在新打開的頁面,Name命名爲liugh,在代碼區添加代碼,然後點擊頁面中的Validate按鈕,如果代碼沒有問題,在頁面的頂部會提示“No validation errors”,然後點擊提交

也可以直接導入styles文件,如下圖,點擊SLD file的瀏覽按鈕,導入liugh.sld文件,然後點擊Upload,上傳成功後點擊Validate檢查代碼,按Submit提交,步驟和上面的相同

3.發佈地圖

style設置成功後,添加ArcGIS切片好的數據

單機後進入如下頁面,我們可以看到前文提到的ESRI公司,這裏需要.shp文件。

點擊後,開始設置地圖名稱、路徑等信息,注意,地圖文件的路徑中千萬不要有中文,否則地圖無法顯示

保存後彈出以下頁面,點擊發布

設置座標系和邊界

先不要點擊下方的保存,點擊發布選項卡

把剛纔設置的style加進來

然後點擊最下方的保存就發佈成功了

4.查看發佈的地圖

在打開的頁面中找到剛剛添加的圖層,點擊OpenLayers

最終展示效果如下:

到這裏我們的地圖發佈就完成了,那如何把它加載到谷歌地圖裏展示呢?敬請期待下一篇文章:

高效訪問海量地圖數據--用OpenLayers訪問Geoserver發佈的地圖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章