徐紅波,郝立貞
(1. 浙江省地理信息中心,浙江 杭州 310012; 2. 浙江省測繪大隊,浙江 杭州 310030)
目前,為提高服務(wù)器響應(yīng)速度和改善用戶體驗,人們在WebGIS應(yīng)用中普遍采用地圖瓦片技術(shù),即按照一定的數(shù)學(xué)規(guī)則,把地圖切成一定規(guī)格的小圖片集保存到服務(wù)器上。當(dāng)用戶通過客戶端瀏覽器訪問地圖服務(wù)時,不是由服務(wù)器實時創(chuàng)建一幅圖片來送到客戶端,而是服務(wù)器直接返回當(dāng)前地圖坐標(biāo)區(qū)域所對應(yīng)的小瓦片后在客戶端拼接成地圖,這樣就可以通過降低服務(wù)器負(fù)擔(dān)來極大提升地圖瀏覽的速度[1-4]。由于地圖瓦片為靜態(tài)圖片數(shù)據(jù),一般不能修改其中的地圖顯示樣式,因此在生成地圖瓦片前,需要將地圖數(shù)據(jù)進行合適的符號化設(shè)置,同時要根據(jù)地圖數(shù)據(jù)的特征,考慮在不同的顯示比例尺下顯示一定數(shù)目的要素,做到?jīng)]有嚴(yán)重的要素壓蓋、重疊現(xiàn)象。為了減少要素壓蓋、重疊現(xiàn)象,通常根據(jù)圖層中要素的分類代碼、等級、類型、級別、年份等屬性分層過濾要素,使得在不同的顯示比例尺下顯示不同數(shù)目要素,顯示比例尺小時顯示要素數(shù)目少,隨著顯示比例尺的增大,顯示要素數(shù)目逐漸增多。但是通過屬性進行分層過濾在圖層要素數(shù)目很大、要素空間分布不均勻等情況下常存在不同顯示比例尺間過渡不自然、要素存在局部聚集等現(xiàn)象,據(jù)此符號化設(shè)置生成的地圖瓦片數(shù)據(jù)在地圖縮放過程中有要素突然變多、要素疏密不均之感。
為提高針對要素數(shù)目多、空間分布不均的地圖數(shù)據(jù)的瓦片效果,本文提出基于四叉樹編碼的要素分級顯示過濾技術(shù),即通過對地圖數(shù)據(jù)要素根據(jù)其空間坐標(biāo)生成不同長度的四叉樹編碼,在不同的顯示比例尺下顯示不同長度的四叉樹編碼的對應(yīng)要素,從而實現(xiàn)地圖數(shù)據(jù)的縮放效果自然流暢、顯示要素分布均勻。
空間數(shù)據(jù)的四叉樹編碼是將二維區(qū)域按照4個象限進行分割,并為分布于每個象限中的空間要素賦編碼的過程。每個象限區(qū)域可以繼續(xù)分割為4個子象限,依次類推,直至象限內(nèi)只有一個空間要素為止。其編碼方式如圖1所示。
圖1 四叉樹編碼原理
根據(jù)該原理可以將空間數(shù)據(jù)賦指定級別的四叉樹編碼,編碼的長度代表編碼的級別,如“3241”代表四級四叉樹編碼。
基于四叉樹編碼的要素分級顯示過濾通過對不同要素賦不同長度的四叉樹編碼,在不同的顯示比例尺下顯示不同長度四叉樹編碼的要素。
根據(jù)分級顯示的需要,確定四叉樹編碼的級別L,這里的級別L可能比實際要素最長的四叉樹編碼級別少。級別L根據(jù)需要設(shè)置。一般的,四叉樹編碼到第10級即可較好地實現(xiàn)分級過濾顯示。確定編碼級別L后,為每個要素計算其對應(yīng)的L級別的四叉樹編碼。
(1) 計算L級四叉樹編碼
依次判斷每個空間要素對應(yīng)L級四叉樹編碼,并將其記錄在要素四叉樹編碼字段SCSCODE中。L級四叉樹編碼由L個數(shù)字組成,10級四叉樹編碼形如“2412314223”。
(2) 四叉樹編碼過濾
每個要素生成四叉樹編碼后需對其進行過濾,即在一個級別的四叉樹編碼中,均保留其中編碼不重復(fù)的要素,重復(fù)編碼要素保留其一。由于四叉樹在空間上將區(qū)域平均分布為4L個子區(qū)域,每個子區(qū)域最多保留一個要素,實現(xiàn)空間上過濾出的要素平均分布。四叉樹編碼過濾時自下而上進行,即從最長一級(L級)四叉樹編碼開始過濾,直到第1級,從而使圖層具有不同層次要素,實現(xiàn)要素在空間分布上的分級。建立L個四叉樹編碼字段SCSCODE1、SCSCODE2、…、SCSCODEL,用于存儲經(jīng)過過濾后的四叉樹編碼。由于級別L可能比實際要素最長的四叉樹編碼級別要少,對于L級的四叉樹編碼,可能存在多個要素對應(yīng)同一個四叉樹編碼的情況,此時,需要從相同的四叉樹編碼要素中保留一個要素編碼,保存于SCSCODEL字段中;對于不重復(fù)的L級四叉樹編碼,均保存于SCSCODEL字段中,因此具有L級四叉樹編碼的要素個數(shù)最多為4L。對于L-1級四叉樹編碼,過濾方法與L級類似,如果SCSCODEL字段中保存的L級編碼中有重復(fù)的L-1級編碼,則保留其中一個要素的L-1級編碼,保存于相應(yīng)要素的SCSCODEL-1字段中;對于不重復(fù)的L-1級四叉樹編碼,均保存于SCSCODEL-1字段中,因此具有L-1級四叉樹編碼的要素個數(shù)最多為4L-1。如2個要素的5級四叉樹編碼是“32412”和“32414”,進行第4級四叉樹編碼過濾時,這2個要素的四叉樹編碼重復(fù),均為“3214”,過濾是選擇其一即可。每一級四叉樹編碼過濾方法依次類推,直到最小一級。一般的,對于省級范圍的數(shù)據(jù),最小一級編碼到第3級即可滿足要求,不必過濾到第1級。
基于過濾后的要素四叉樹編碼,可在ArcMap中設(shè)置分層顯示效果。設(shè)四叉樹編碼過濾的最小一級為S級,則將圖層在ArcMap中加載L-M+2次,如最小一級為3級,則加載圖層L-1次。為每個圖層設(shè)置相同的符號和標(biāo)注樣式;為前L-2個圖層設(shè)置過濾條件,只顯示對應(yīng)級別四叉樹編碼過濾出的要素,即對應(yīng)四叉樹編碼過濾字段中有值的要素,如 “Not SCSCODEL IS Null And SCSCODEL〈〉”。根據(jù)每個圖層要素顯示的疏密程度,為其設(shè)置合適的顯示比例尺范圍。在設(shè)置圖層的顯示最小比例尺時,要確保在該顯示比例尺下當(dāng)前圖層要素較充分地分布于顯示區(qū)域,同時要素符號和標(biāo)注不重疊。圖層的顯示最大比例尺由下一級圖層的顯示最小比例尺決定。設(shè)置顯示比例尺時要保證兩個相鄰顯示比例尺間要連續(xù)且無重疊,如前一級圖層的顯示比例尺范圍為1∶100 000~1∶500 000,則后一級圖層的顯示比例尺應(yīng)從1∶99 999開始。若從1∶100 000開始,會造成在1∶100 000顯示比例尺下兩個圖層同時顯示,即要素會重復(fù)、重疊顯示的問題。最小一級四叉樹編碼的圖層可不設(shè)置顯示最小比例尺,只設(shè)置顯示最大比例尺,以保證在所有顯示比例尺下均有要素顯示。最后一個圖層不設(shè)置過濾條件,而顯示所有要素。此時即可實現(xiàn)從較小顯示比例尺開始,隨著顯示比例尺的增大,逐漸顯示更多的要素,但每個顯示比例尺下要素符號和標(biāo)注均不重疊、疏密有致、過渡自然。由于四叉樹編碼過濾自下而上進行,即在下一級過濾出的要素中繼續(xù)過濾上一級的要素,從而保證了在較小顯示比例尺下顯示的要素在其后較大顯示比例尺下均顯示。
本文提出的方法在浙江省交換平臺專題數(shù)據(jù)庫中的專題數(shù)據(jù)生成地圖瓦片時得到了充分應(yīng)用。在浙江省交換平臺中建有用于30多個省級廳局單位共建共享的專題數(shù)據(jù)庫[6],該數(shù)據(jù)庫中存在許多要素數(shù)目多、空間分布不均勻的專題圖層,如郵政局的郵政營業(yè)網(wǎng)點、民政廳的避災(zāi)安置場所、通信管理局的移動營業(yè)網(wǎng)點、文化廳的網(wǎng)吧場所等圖層。在為這些專題圖層制作地圖瓦片過程中均采用本文介紹的方法實現(xiàn)要素的分級顯示過濾,達到了較好的要素過濾效果。圖2—圖4為郵政營業(yè)網(wǎng)點專題圖層要素分級顯示過濾后的效果。
圖2 要素分級顯示效果:全省范圍
圖3 要素分級顯示效果:地市范圍
圖4 要素分級顯示效果:區(qū)縣范圍
地圖瓦片技術(shù)大大提高了WebGIS的速度和效率,但其傳統(tǒng)的基于屬性的分層過濾方法不能較好地解決要素數(shù)目多、分布不均的情況,本文提出的基于四叉樹編碼的要素分級顯示過濾技術(shù)可較好地實現(xiàn)要素的分層分級顯示,并在浙江省交換平臺專題數(shù)據(jù)庫的地圖瓦片生成實際應(yīng)用中驗證了該方法的有效性。該方法對于點類型要素,可同時對圖形符號和標(biāo)注進行過濾;對于線或面類型要素,由于其單個要素空間分布不規(guī)則,不適合對圖形符號進行過濾,但若其要素數(shù)目多,標(biāo)注重疊,可利用本文方法只針對其標(biāo)注進行分層顯示過濾,也可實現(xiàn)較好的瓦片效果。在實際要素分層過濾過程中,可根據(jù)數(shù)據(jù)特征,在基于四叉樹編碼進行要素分級顯示過濾基礎(chǔ)上,可結(jié)合要素的類別、等級等屬性過濾方法,實現(xiàn)能反映數(shù)據(jù)特征的分層顯示效果。
參考文獻:
[1] 馬維峰,王曉蕊,高松峰,等.基于服務(wù)器動態(tài)緩存和Ajax技術(shù)的WebGIS開發(fā)[J].測繪科學(xué),2008,33(5):204-205.
[2] 王強.分布式WebGIS地圖緩存策略的應(yīng)用研究[J].軟件導(dǎo)刊,2008,7(5):16-18.
[3] 周沛. 智能交通系統(tǒng)中的瓦片地圖技術(shù)研究與應(yīng)用[D].上海: 同濟大學(xué),2008:7-49.
[4] 黃夢龍.瓦片地圖技術(shù)在桌面端GIS中的應(yīng)用[J]. 地理空間信息,2011,9(4):149-151.
[5] 李德仁,肖志峰,朱欣焰,等.空間信息多級網(wǎng)格的劃分方法及編碼研究[J].測繪學(xué)報,2006,35(1):52-70.
[6] 徐紅波. 談專題共享數(shù)據(jù)的整合與集成處理[J].浙江測繪,2012,111(2): 65-67.