劉 鵬,趙 羲,史宜南
(1. 武漢大學(xué) 中國南極測繪研究中心,湖北 武漢 430079;2. 武漢大學(xué) 資源與環(huán)境科學(xué)學(xué)院,湖北 武漢430079)
地圖緩存是一個目錄,包含在特定比例尺級別下,對地圖范圍進行規(guī)則劃分。需要先規(guī)劃好比例尺級別(圖1中地圖被緩存成2個比例尺),設(shè)置緩存屬性,然后服務(wù)器按照一定的數(shù)學(xué)法則根據(jù)每個比例尺下的地圖生成若干瓦片保存在緩存目錄。使用ArcGIS Server發(fā)布緩存地圖的大致流程如圖2所示。在客戶端發(fā)出地圖請求后,服務(wù)器可以直接將這些瓦片進行拼接返回給客戶端,而不需要實時地動態(tài)繪制地圖,因而響應(yīng)速度大大加快[1-5]。
圖1 緩存成2個比例尺的地圖
圖2 地圖緩存生成流程
ArcGIS 9.3及之前版本生成的緩存屬于松散型,ArcGIS 10推出了一種新的瓦片緩存文件格式——緊湊型緩存。與松散型相比,它具有遷移方便、創(chuàng)建速度快等優(yōu)點,已經(jīng)成為創(chuàng)建切片緩存的默認格式。
服務(wù)器切圖完成后,地圖服務(wù)緩存的目錄結(jié)構(gòu)如圖3所示。在緩存根目錄中,第一級是地圖服務(wù)命名的文件夾,第二級是切圖的DataFrame命名的文件夾。由于圖3展示的是單一融合方式切圖,所以第三級是_alllayers。如果采用多層緩存方式,那這里就是MXD中每個圖層的序號文件夾。第四級目錄是切圖設(shè)置的各個比例尺級別,如L00代表第一級比例尺。第五級是某個比例尺的行文件夾,命名規(guī)則是R加上8位行號(16進制),不足補零。比如圖中的R00000001表示此比例尺中的第1行。每行文件夾下就是該行的所有瓦片文件,命名規(guī)則是C加上8位列號,不足補零,比如C00000000表示第一列的圖片,其他依此類推。可以看出,松散型緩存最底層都是單個的PNG圖片。
第三級中的conf.xml文件是緩存配置文件,描述了瓦片的各項參數(shù),包括空間參考、比例尺級別等。
圖3 松散型緩存目錄
ArcGIS 10.0引入了緊湊型緩存格式,如圖4所示。新的方法將9.3版本中的瓦片歸組到大文件中,而不是以單獨的圖片形式存儲。緊湊型緩存,每一級比例尺包含2種文件:.bundle和.bundlx文件(圖4第五級所示),其中bundle文件用以存儲切片數(shù)據(jù),bundlx是bundle文件中數(shù)據(jù)的索引文件[6]。一個bundle文件中最多可以存儲16 384個瓦片,但是創(chuàng)建瓦片時并不是一張張單獨生成,而是以4 096像素(無抗鋸齒)或2 048(有抗鋸齒)為邊長渲染的,如果設(shè)定瓦片邊長為256像素并開啟了抗鋸齒,那么每次ArcSOC進程(正在運行的服務(wù)實例)創(chuàng)建的是一張8×8個切片拼接成的大圖,然后切割存入bundle文件中。
圖4 緊湊型緩存目錄
在瓦片創(chuàng)建過程中,每個包都會被分配給一個ArcSOC.exe進程,由該進程為包創(chuàng)建瓦片,2個ArcSOC.exe進程不能同時處理同一個包[6]。當(dāng)生成緩存的要素邊界都比較小時,容易出現(xiàn)服務(wù)器資源未被充分利用的情形。
使用服務(wù)器創(chuàng)建緩存是一項耗時耗資源的工作,尤其在涉及大比例尺的情況下,往往需要生成成千上萬張瓦片。這些瓦片不僅會占用大量的磁盤空間,而且會帶來數(shù)據(jù)遷移困難的問題。下面從緩存管理效率和磁盤利用率兩個方面對這兩種緩存格式進行比較,其中緩存管理效率主要涉及3個方面:創(chuàng)建時間、占用磁盤空間(全部瓦片在磁盤上占用的空間)、遷移時間(全部瓦片從一臺電腦轉(zhuǎn)移到另一臺電腦耗費時間);磁盤利用率主要考慮2個方面:緩存實際文件大?。ㄈ客咂募笮】偤停┡c實際占用磁盤空間是否一致、是否會導(dǎo)致磁盤碎片。為保證結(jié)果的公正性,本文引用ESRI官方公布的數(shù)據(jù)進行比較。
從表1和表2的數(shù)據(jù)比較(數(shù)據(jù)來源:2010 ESRI中國區(qū)域用戶大會[7])可以看出,在同等情況下,松散型緩存的創(chuàng)建時間較長,占用磁盤空間較大,遷移時間明顯很慢,從緩存管理方面來說緊湊型格式更高效一些。對于松散型緩存,瓦片一張張單獨生成,并以零散的圖片形式保存在磁盤上,當(dāng)需要生成的瓦片數(shù)量很大時,需要頻繁地更換切圖范圍和讀寫磁盤,持續(xù)時間較長。而緊湊型緩存以bundle作為處理單元,服務(wù)器將更多精力投入到連續(xù)切圖中去,而不是頻繁更換切圖范圍,生成的瓦片存儲在緊湊、連續(xù)的文件流中,也不會頻繁讀寫磁盤,節(jié)省了時間。
從表3(數(shù)據(jù)來源:2010 ESRI中國區(qū)域用戶大會[7])中橫向?qū)Ρ瓤梢钥闯?,緊湊型緩存文件的實際大小與占用磁盤空間基本一致,松散型緩存下二者差距比較大,浪費了大量磁盤空間。這是因為Windows平臺下主流的磁盤分區(qū)NTFS文件系統(tǒng)默認簇大小為4 KB[8](可分配的最小存儲單位,文件大小不足4 KB仍占用4 KB磁盤空間),對于松散型緩存,當(dāng)小的瓦片(文件大小不足4 KB)數(shù)量較多時會造成大量的磁盤空間浪費,并且小的瓦片容易產(chǎn)生磁盤碎片;而緊湊型緩存將一定數(shù)量的瓦片合并到bundle大文件中,出現(xiàn)小文件的幾率較小,對磁盤的利用率比較充分,不易產(chǎn)生磁盤碎片。
從以上對比分析可以看出,緊湊型緩存管理相對方便,并且磁盤利用率高,是利用ArcGIS10及更高版本創(chuàng)建緩存的首選方式。需要注意的是,緊湊型緩存只支持ArcGIS客戶端(包括Web APIs)讀取,如果想在自由應(yīng)用中讀取緩存文件,則必須使用松散格式的緩存。ArcGIS 10中與緩存相關(guān)的GP工具可將之前的松散型緩存轉(zhuǎn)換為緊湊型格式,也可以將緊湊格式轉(zhuǎn)換成松散格式。
表1 美國路易斯安那州(150萬張切片)
表2 歐洲全圖(380萬張切片)
表3 中國全圖1︰400萬(緩存級別 L0~L10)
本文對基于ArcGIS Server的地圖緩存技術(shù)進行研究,在介紹其原理的基礎(chǔ)上深入剖析了ArcGIS Server平臺下的2種瓦片存儲方式:松散型和緊湊型,并從緩存管理效率和磁盤利用率2方面對2者進行了比較。實驗數(shù)據(jù)證明,緊湊型緩存創(chuàng)建時間較短、遷移速度快、磁盤利用率高、管理相對方便,是創(chuàng)建緩存的首選方式。
[1]馬林兵,張新長,伍少坤.WebGIS原理與方法教程[M].北京:科學(xué)出版社,2008
[2]吳信才.地理信息系統(tǒng)原理與方法[M]. 北京:電子工業(yè)出版社,2002
[3]戴偉.基于ArcGIS Server平臺的WebGIS臺風(fēng)預(yù)報系統(tǒng)應(yīng)用研究[D].武漢:武漢理工大學(xué),2009
[4]黃夢龍.瓦片地圖技術(shù)在桌面端GIS中的應(yīng)用[J].地理空間信息,2011,9(4):149-151
[5]姚真凱.瓦片地圖技術(shù)在水利WebGIS系統(tǒng)中的開發(fā)研究與應(yīng)用[J].浙江水利科技,2009(6):40-42
[6]ESRI.Inside the Compact Cache Storage Format[EB/OL].http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//005300000137000000,2013-10-20
[7]林雪淋.ArcGIS 10地圖緩存與設(shè)計策略[EB/OL].http://www.esrichina-bj.cn/market/2010uc/upload/Web2/ArcGIS10地圖緩存與設(shè)計策略.pdf,2013-10-22
[8]居錦武,王蘭英. NTFS文件系統(tǒng)剖析[J].計算機工程與設(shè)計,2007,28(22):5 437-5 438