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

地圖數據以海量著稱,傳統的做法是建立空間索引,優化查詢等,這些並沒有解決如何有效的組織地圖數據,提高地圖訪問效率的問題。用GeoServer可以在用戶之間迅速共享空間地理信息。

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

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

放大的樣子:

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

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

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

一、ArcGIS是什麼?

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

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

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

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

二、Geoserver是什麼?

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

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

三、為什麼Geoserver這麼高效?

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

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

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

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

四、怎麼把ArcGIS的.shp文件發佈到Geoserver裡?

1.配置環境

搭建GeoServer環境需要安裝包:Java JDK 7、Tomcat 7 、geoserver.war(最新版本的GeoServer 2.0.2版已經內置了HTTP服務器)。

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

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

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

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

2.加入style

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

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

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

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

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

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

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

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

3.發佈地圖

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

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

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

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

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

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

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

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

設置座標系和邊界

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

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

把剛才設置的style加進來

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

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

4.查看發佈的地圖

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

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

最終展示效果如下:

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

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

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


分享到:


相關文章: