Geoserver 谷歌瓦片地圖的使用 多級發布


下面,我來介紹一下如何在離線的情況下,在Geoserver 中配置出如同谷歌地圖般絢麗的效果。

為了讓大家有動力看我我接下來寫的東西,我先把結果圖給大伙兒展現一下:

 

 

正如上圖所示,該地圖是谷歌第四級的地圖展現。

左上角的工具可以多地圖進一步放大,地圖的縮放層級可以從第4級到第10級,共7層。

左下角是一個比例尺,這個不做過多介紹。

右下角是顯示鼠標點擊地圖上位置的經緯度的展現。

地圖上面還有自定義的幾個文本框,可以對地圖進行二次開發,做自己感興趣的東西。

想配置出上面的地圖,前期的工作還是比較多的。

(注:如果你的應用可以聯網操作,則可以省下很多事情,你可以查查如何使用谷歌地圖的API,就能比較輕松且高效地完成上面那種地圖展示。

   下面我所介紹的是如何配置離線谷歌地圖,可以應用於相對封閉和保密性的場景。)

一、谷歌地圖下載器

如果想配置離線的谷歌地圖,很自然地會想到要先去下載完整的谷歌地圖。

而谷歌也提供了名為:Google Map DownLoader ,我們可以利用它來下載地圖。

但是由於各種原因,利用谷歌的軟件下載地圖是一件非常令人沮喪的事情, 我推薦大家使用:

《稻歌Google Map截獲器》,如圖所示:

 

 

需要填上截獲的地圖區域和地圖級別之后,才可以點擊確定按鈕下載地圖。

此處左上角坐標我填寫的是:54,73 (英文的",")

           右下角坐標填寫的是: 2,136

(注:大家也可以自己通過點擊屏幕獲取坐標。但是我不建議大家這么做,因為由於網絡等原因,每次地圖下載可能都會有缺陷 ,

如果某一層級的地圖不理想,大家可以手動輸入相同的地圖坐標,再次對單個層級地圖進行下載,有利於后期多個地圖的合並使用)

再選擇地圖的層級,從第4級到第10級,這個大家隨意,這里給大家一個數據:

當我下載第10級地圖的時候,該軟件成功下載並且合並成TIFF文件的時候,該地圖已然7.6GB的大小了,想必地圖等級過高,

下載的時間會更長,地圖合並也不是那么順利。如果大家想讓地圖合並成自己想要的大小,或者網速不行想保證下載質量的話,

要在該軟件的“軟件設置”中進行詳細設置,各項參數在此不作贅述:

 

 

當你們下載完所有的地圖之后,就可以看下面的步驟了。

說實話,成功下載完所有地圖是個耗時的工作,但這只是一個開始。

 

二、Geoserver 中制作柵格地圖

當你下載完地圖后,可以打開Geoserver了。

如果你沒有配置好Geoserver,那么你還得花幾個小時查找和配置Geoserver,在此處不做詳細介紹,但可以給大家來點建議:

登陸Geoserver的官方網站,基本是有兩種方式搭配起Geoserver。

(1)一種是下載.war的Geoserver工程,然后丟到服務器的webapp目錄下,(開源的一般是Tomcat和Jetty),然后會生成Geoserver工程。

做過J2EE開發的應該都知道,工程部署成功后,就可以利用: localhost:8080/geoserver/web 來訪問Geoserver了。

(2)windows環境開發的話,官網上還可以下載.exe的安裝包,其實也沒有什么特殊的,里邊就是集成了開源的服務器而已。

如果圖方便,大家可以下載這種安裝包,省事!我下載的是Geoserver 2.4.8 版本,內置的是jetty 6.0的服務器。

 

你成功登上Geoserver后:

 

 

提醒一下,初始賬號:admin  密碼:geoserver 

 

然后添加數據存儲:

 

 點擊添加柵格數據源:

 

 

根據步驟一步步填寫內容。

工作區:是為了方便管理自己的地圖,建議大家可以自己新建一個工作區

數據源名稱:唯一標示該數據源的東西

連接參數URL:選取下載好的TIF地圖

 

 

保存后,選擇發布地圖。

在“數據”標簽頁中,着重配置一下幾個參數:

 

 

其中,SRS是要自己定義的,谷歌地圖是ESPG:900913標准,單位是:米。

由於地球的不規則橢球形,導致各個地方將橢球形表面的地形轉化成平面地圖繪制 的時候各家的標准都不一樣。
中國早年采用的是Beijing-1954大地坐標系,貌似采用的是蘇聯“克拉索夫斯基”測繪標准,而后采用1980-Xian大地坐標系。但是由於早年測繪的數據遷移轉化
的工作量大等一系列原因,某些地圖仍舊采用的是1954-Beijing的大地坐標。普及一下,谷歌地圖用的是ESPG:900913,而默認的國際標准是ESPG:4326。

因為源地圖下載的是谷歌的,所以配置ESPG:900913,但是地圖顯示的時候,要轉化成ESPG:4326經緯度顯示,可讀性比較好,好在openlayers

已經封裝了轉化函數。此是后話。

 

 

繼續配置,在title caching 標簽頁中:

 

 

看到我們要配置的gridset選擇的是ESPG:900913,且發布的zoom level 從第四級到第10級,cached zoom level 同理。

至此,第四級的圖層已經添加上了。為了能夠得到谷歌瓦片地圖,我們還得做下一步的配置,這里有幾個問題要說明。

其實,我們在添加數據源的時候只是添加了第四級的TIF地圖文件,但是為什么加了共7級的地圖呢?

因為,接下來,我們要重復把第5,6,7,8,9,10級的地圖依次加入數據源。重復地配置7次,然后,把這所有的數據圖層都切割成瓦片,

最后放在第四級的地圖中,這樣,我們只要查看第四級的圖片,就能夠查看到從4~10級的所有圖片。

下面,將第四級的圖層切割成瓦片:

 

 繼續:

 

 

這個地方的zoom start 和 zoom stop 只要寫第四級就行了,因為數據源只有第四級。然后按submit 按鈕。

最后,可以在D:\Program Files\Coding Software\GeoServer 2.4.8\data_dir\gwc\ChinaMap_chinaTIFF04 中看到生成的瓦片地圖:

 

 

同理,將第5,6,7,8,9,10級的圖片一一添加柵格數據源,然后一一配置並且發布圖層。

最后,將第5,6,7,8,9,10級切割下的瓦片地圖拷貝到第四級地圖下:

 

 加入之后,按圖示操作,即可看到漂亮的地圖了:

 

 附上顯示的圖片:

 

 上圖中,只顯示左上角的縮放工具,你如果查看網頁源碼的話應該能看到這是openlayers自己添加的。地圖也能成功從第四級到第十級縮放。

參考:https://blog.csdn.net/yangzhai/article/details/58586723


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM