最近有一個使用全球地圖展示資料的項目,用地圖展示資料本身沒什麼難度,但出于安全和保密的考慮,甲方機關要求項目不能連接配接外網,隻能在内網使用,也就是說,我們不得不在内網中部署一個地圖伺服器,在這個地圖伺服器的基礎上進行開發。
由于之前沒有這方面的技術積累,在經過一番搜素和比較後,發現了幾個解決方案。 不過,甲方不願意再花錢購買任何第三方的軟體和服務了,是以,我的解決方案就隻能在開源方案中尋找了,商業的解決方案都被排除在外。
GeoServer是一個功能齊全,遵循OGC開放标準的開源WFS-T和WMS伺服器。利用Geoserver可以把資料作為maps/images來釋出(利用WMS來實作)也可以直接釋出實際的資料(利用WFS來實作),同時也提供了修改,删除和新增的功能(利用WFS-T)。
GeoServer的安裝部署比較簡單,按照官方網站的文檔就可以了。 不過,由于GIS方面的知識比較欠缺,加上項目工期緊張,一直沒有搞定地圖的顯示。
Openlayers是一個開源的Javascript庫(基于修改過的BSD許可釋出),用來在Web浏覽器顯示地圖。它提供API接口建立類似于Google Maps和Bing Maps的基于web的地理應用。
結合項目的需求,由于功能上隻是用來顯示地圖,标注地點而已,用OpenLayers足夠滿足需求,是以,采用OpenLayers與Google離線地圖相結合的解決方案。 下面,詳細的記錄我安裝配置的過程,友善有類似需要的朋友們參考。
我選擇了nginx作為web伺服器。我使用的是Mac OS作業系統,下面的指令适用于Mac OS,使用其他系統的朋友們可以根據自己的實際情況進行操作。
注意:修改配置檔案 /usr/local/etc/nginx/nginx.conf
sendfile預設是on,改成off
原因:sendfile on #開啟高效檔案傳輸模式,sendfile指令指定nginx是否調用sendfile函數來輸出檔案,對于普通應用設為on,如果用來進行下載下傳等應用磁盤IO重負載應用,可設定為off,以平衡磁盤與網絡I/O處理速度,降低系統的負載。注意:如果圖檔顯示不正常把這個改成off。
如果不改成off,圖檔請求會不正常。
打開/usr/local/var/www目錄,這是nginx的web根目錄,建立gis目錄,把下載下傳的google離線地圖檔案放到這個目錄下。 下載下傳openlayers v2.13.1,将其解壓後放到/usr/local/var/www目錄下。
Google離線地圖,可以采用網上的某個工具,這裡就不說了,免得有廣告嫌疑。大家自己搜尋一下就可以找到很多類似的工具。