周 毅 范 鴻 魏 曉
(成都理工大學(xué) 沉積地質(zhì)研究院,四川 成都 610059)
MOBAC 全稱Mobile Atlas Creator 是免費(fèi)開(kāi)源地圖下載軟件,用戶可根據(jù)協(xié)議修改程序和自定義編寫(xiě)圖源。在線地圖為了保證效率和性能會(huì)將地圖按照縮放等級(jí)進(jìn)行分割。這些圖片塊稱為“瓦片”。每增加一級(jí),圖片個(gè)數(shù)增加4 倍。從地圖的左上角開(kāi)始,每個(gè)等級(jí)的每張圖片按X 軸和Y 軸取0,1,2,3…這樣的整數(shù)進(jìn)行編號(hào)。加上縮放等級(jí)z,則x,y,z 三個(gè)數(shù)字組成的編號(hào)可以唯一確定某個(gè)縮放級(jí)別下唯一的一個(gè)區(qū)域[1-2]。MOBAC通過(guò)自定義編寫(xiě)圖源文件可以抓取這些地圖瓦片。
由于MOBAC 官方版(http://mobac.sourceforge.net/)不能下載經(jīng)緯度投影的天地圖和以經(jīng)緯度投影的天地圖為底圖的其他在線地圖。因此本論文介紹MOBAC 在github 上的另一個(gè)開(kāi)源項(xiàng)目MOBAC1.9.16-Ext 版本(https://github.com/rilyu/mobac-ext)。其 增 加 了msGeo-Latlong參數(shù),能夠使MOBAC下載經(jīng)緯度投影的地圖如天地圖總站上的地圖和以經(jīng)緯度方式投影的各分省天地圖。
經(jīng)過(guò)瀏覽器解析及對(duì)天地圖的瓦片地址仔細(xì)對(duì)比,天地圖按投影方式和圖層可細(xì)分為8 種類型[3-4](見(jiàn)表1)。
表1 天地圖8種類型樣式的區(qū)分
可以以其中之一的天地圖底圖為例來(lái)具體分析其解析過(guò)程和解析地址。
筆者采用的工具是火狐瀏覽器加上Firebug插件,在國(guó)家天地圖網(wǎng)站中,將投影方式調(diào)為經(jīng)緯度投影。啟動(dòng)Firebug工具(F12),用鼠標(biāo)在地圖上劃動(dòng),則Firebug的圖片欄會(huì)顯示被刷新出來(lái)的地圖切片。仔細(xì)分析會(huì)發(fā)現(xiàn)有兩種類型的地圖切片,一種是解析地址中包含T=vec_c的天地圖底圖片,為底圖不透明層;另一種是地址中包含T=cva_c的文字標(biāo)注層,為透明圖層。并且在解析地址中還可見(jiàn)到x、y和圖片層級(jí)l等信息(見(jiàn)圖1)。
圖1 瀏覽器解析天地圖瓦片
其中的一個(gè)天地圖底圖層瓦片地址為:http://t0.tianditu.com/DataServer?T=vec_c&x=1686&y=283&l=11,透明文字標(biāo)注圖層瓦片地址為:http://t6.tianditu.com/DataServer?T=cva_c&x=12935&y=2700&l=14,(見(jiàn)圖2)。
圖2 天地圖底圖層(左)和透明文字層(右)
以上面任意抓取的一個(gè)經(jīng)緯度投影的天地圖圖片為例,我們可以編寫(xiě)一個(gè)完整的MOBAC 圖源文件,其代碼如下:
使用經(jīng)緯度投影的天地圖-->
在代碼中,我們定義了圖源名稱為天地圖底圖-C,最小和最大的縮放級(jí)別分別是0 級(jí)和20 級(jí),地圖切片的類型是png格式,指定該切片是經(jīng)緯度投影方式。在上述代碼中,url 地址是將解析的地址中的數(shù)字都用變量代替,其中參數(shù)serverpart 代表線程,經(jīng)過(guò)試驗(yàn),總共用6個(gè)線程,以提高下載速度;x、y、l分別用{$x}、{$y}、{$z}代替。將上述代碼另存為xml 格式,編碼為可識(shí)別中文的UTF-8(無(wú)簽名)。命名之后將此xml 圖源文件放在MOBAC 的mapsource 文件夾中,這樣就添加了一個(gè)自定義圖源(見(jiàn)圖3)。
圖3 天地圖底圖層在MOBAC中的顯示
此圖源是一個(gè)混合圖源,最頂上的圖源是天地圖的文字標(biāo)注層,是一個(gè)透明圖層,在圖源代碼中寫(xiě)在最下面;最底下的圖層是天地圖底圖,圖源代碼中寫(xiě)在最上面。需要注意的是,在這個(gè)混合圖源中,這三個(gè)分圖源的具體代碼并沒(méi)有寫(xiě)出,是因?yàn)镸OBAC可以將已經(jīng)寫(xiě)好并放在圖源文件夾mapsource 中的這三個(gè)圖源自動(dòng)讀取并按照新圖源的命令進(jìn)行整合(見(jiàn)圖4)。
其混合圖源代碼如下:
<customMultiLayerMapSource>
圖4 天地圖底圖配合文字標(biāo)注層
因此基于上述的方法,我們可以自定義豐富的圖源,如谷歌衛(wèi)星圖和天地道路圖的混合,騰訊衛(wèi)星圖和高德文字標(biāo)注層的混合等以滿足不同的用圖需求。
[1]付云虹,方俊.基于ArcGISEngine和Google靜態(tài)地圖服務(wù)的背景地圖實(shí)現(xiàn)[J].計(jì)算技術(shù)與自動(dòng)化,2012,31(3):142-144.
[2]董元,李娜,張廣平.應(yīng)用G_tilelayer的谷歌混合地圖顯示[J].地理空間信息,2011,9(4):72-74.
[3]仲偉政,魏金明,邵飛.基于天地圖的地圖服務(wù)方法初探[J].測(cè)繪通報(bào),2014(S2):265-268.
[4]郭偉鵬,沈松雨.Silverlight支持下的WebGIS的研究與實(shí)現(xiàn)[J].地理空間信息,2011,9(4):34-36.