李鶴元,陳 剛
(1.信息工程大學 地理空間信息學院,河南 鄭州 450052;2.地理信息工程國家重點實驗室,陜西 西安 710054)
?
基于改進Web墨卡托投影的瓦片地圖服務設計與實現(xiàn)
李鶴元1,2,陳剛1
(1.信息工程大學 地理空間信息學院,河南 鄭州 450052;2.地理信息工程國家重點實驗室,陜西 西安 710054)
隨著GIS技術(shù)、計算機技術(shù)和網(wǎng)絡技術(shù)的飛速發(fā)展,特別是Google Map和Google Earth推出后,地圖正在以前所未有的深度和廣度改變著人們的生活方式甚至思維方式,新時期的地圖應用已具備網(wǎng)絡化、服務化、多維化、高效化等新的特征。
學者們在網(wǎng)絡地圖方面進行大量深入的研究,通常的做法是采用瓦片地圖金字塔的機制、空間換時間的策略,通過預先生成的海量圖片提高地圖訪問效率[1-7]。
但是,采用一套數(shù)據(jù)同時解決二維、三維地圖應用的問題一直沒有得到實用化解決。以Google為例,Google Map是典型的二維地圖應用,它采用基于web墨卡托投影的地圖瓦片;Google Earth是典型的三維地球應用,它采用地理坐標的地圖瓦片。當用戶同時需要二維地圖和三維地球兩類應用時,需要準備兩套不同規(guī)格的地圖瓦片,增加存儲成本。
本文從投影模型的改進入手,對網(wǎng)絡地圖應用中影像和DEM瓦片組織方法進行研究,提出一種改進Web墨卡托投影的方法,解決高緯度地區(qū)柵格地圖的表達以及二、三維地圖服務共用一套規(guī)格地圖瓦片的問題,并通過試驗實現(xiàn)B/S模式下的二、三維瓦片地圖服務的快速響應和高速可視化。
1Web墨卡托地圖投影的改進
1.1瓦片地圖投影選取
三維空間向二維地圖轉(zhuǎn)換的主要方法是地圖投影變換,實質(zhì)是建立球體空間與平面場之間點間的一一對應關(guān)系。地圖投影方式有很多種,常用投影有高斯投影、蘭勃特投影、Albers投影、墨卡托投影等[4],地理坐標也可以廣義的視為一種投影變換。所有的投影都會在某些方面存在變形,如長度變形、面積變形或者角度變形等。
目前,地理坐標和Web墨卡托投影坐標是最常用的兩種瓦片地圖投影方式。Google Earth是典型的三維地球應用,它采用地理坐標的地圖瓦片,其優(yōu)點在于整個地球表面映射到平面上后始終是一個有界矩形。但是,它也有自己的缺點,即具有較大的視覺變形。Google Map是典型的二維地圖應用,它采用基于Web墨卡托投影(EPSG 3857)[8]的地圖瓦片。Web墨卡托投影是墨卡托投影[8]的一種近似,具有近似等角特性,可以有效保持地理空間物體的空間方位關(guān)系以及大型空間對象(如大比例尺地圖上的建筑物)的形狀,更符合人的視覺感知,從視覺變形特別是角度變形上優(yōu)于Google Earth采用的地理坐標。但其越靠近高緯度地區(qū),其面積變形越大,因此該模型無法表達緯度高于±85.051 1°的地區(qū)。
1.2改進Web墨卡托投影
本文設計一種能夠同時滿足二維地圖應用和三維地球應用的地圖投影,力圖克服Web墨卡托投影在高緯度地區(qū)表達的缺陷,即改進Web墨卡托投影。設橢球模型的長半軸半徑為R,經(jīng)緯度坐標(λ,φ)與其對應的Web墨卡托投影坐標(xm,ym)存在如下關(guān)系:
(1)
其中,經(jīng)緯度的單位為弧度。
設(xn,yn)滿足關(guān)系:xn=xm/πR,yn=ym/πR,對任意經(jīng)度λ∈[-180°,180°],存在xn∈[-1,1]。當yn= ±1時,φ≈±85.05°。根據(jù)式(2)可以實現(xiàn)經(jīng)緯度向[-1,1]×[-1,1]矩陣空間的映射。
(2)
其中,λ∈[-180°,180°],φ∈[-85.05°,85.05°]。通過(xn,yn)反算經(jīng)緯度坐標(λ,φ),算式為
(3)
Web墨卡托投影能實現(xiàn)緯度φ∈[-85.05°,85.05°]范圍內(nèi)的投影,但實際地理空間緯度坐標范圍為[-90°,90°],當緯度φ無限接近±90°時,yn將趨近無窮大,即采用此種方式的Web墨卡托投影并不能完全實現(xiàn)三維地球空間向有界二維平面的轉(zhuǎn)換。為解決Web墨卡托投影的這一缺陷,本文提出一種新的混合投影方案,構(gòu)建地理空間經(jīng)緯度全部數(shù)值空間與二維瓦片平面空間之間、點對之間的映射關(guān)系。
為了方便瓦片的劃分,仍然將投影坐標范圍定義在[-1,1]×[-1,1]之內(nèi),在y接近±1時,也就是說|y|大于一個閾值y0,足夠接近極點時,采用經(jīng)緯度線性映射,以覆蓋高緯度至極點地理范圍;而|y|小于y0時,采用Web墨卡托投影,以達到近似等角投影的目的。因此,y0需要足夠大,才能保證大多數(shù)非高緯度地區(qū)的等角投影。在考慮到這個要求的基礎(chǔ)上,為計算方便,首先要確定y0的值。如果采用本文2.1中的瓦片劃分規(guī)則,當瓦片的級別為4時,最后一行瓦片的最小y值,以及第一行瓦片的最大y值為±0.875,因此取y0=0.875。這樣,0~3級的瓦片均跨過此邊界,處理時相對復雜,但這類瓦片數(shù)量很少,對應用影響較小。4級以上的瓦片,或者按經(jīng)緯度線性映射處理,或者按Web墨卡托投影計算,均不可能跨越該邊界,大大簡化計算。
取y0=0.875,可通過式(2)得φ0≈82.676°,可定義投影正算算式為
y0=0.875,
(4)
當|φ|小于φ0時,式(4)與Web墨卡托投影算式計算結(jié)果完全一致,當|φ|大于或等于φ0時,y值將會從±y0線性過渡到±1,混合投影實現(xiàn)地理范圍[-180°,180°]×[-90°,90°]到矩陣空間[-1,1]×[-1,1]的映射。當|φ|>φ0時,混合投影不能維持等角投影的特性,但是此緯度范圍不屬于重點關(guān)注區(qū)域,對實際應用影響較小。改進的Web墨卡托投影反變換算式為
(5)
2瓦片地圖金字塔設計
地圖投影確定后,還需要設計瓦片地圖的瓦片大小、劃分規(guī)則,才能構(gòu)建完整的瓦片地圖金字塔。
2.1瓦片金字塔劃分規(guī)則
通常采用瓦片金字塔的方式改進和優(yōu)化海量地理空間數(shù)據(jù)的無縫高速瀏覽,瓦片金字塔需要定義瓦片大小、劃分規(guī)則等。本文定義瓦片分塊規(guī)則如下:給定N為瓦片級別,瓦片行列數(shù)均為2N,瓦片塊數(shù)T與N存在關(guān)系:T=4N。將整個投影空間
原點設為(0,0),坐標范圍設為[-1,1]×[-1,1],任意瓦片(N,X,Y)對應的投影坐標范圍為
(6)
其中,N∈{0,1,2,3,…}。對任意級別N與N+1存在關(guān)系:級別N下的任意瓦片(N,X,Y),與級別N+1下的4塊瓦片(N+1, 2X, 2Y),(N+1, 2X+1, 2Y),(N+1, 2X, 2Y+1)和(N+1, 2X+1, 2Y+1)所構(gòu)成的地理范圍相同,(N,X,Y)稱為父瓦片,其他稱為子瓦片,構(gòu)成層級關(guān)系,根據(jù)瓦片級別建立以(0, 0, 0)為根結(jié)點的瓦片金字塔。
2.2影像瓦片金字塔
影像瓦片是地圖可視化過程中的調(diào)度對象,瓦片尺寸太大會使調(diào)度粒度過粗,造成網(wǎng)絡和I/O帶寬資源浪費;瓦片尺寸過小會大幅增加網(wǎng)絡請求數(shù),導致響應效率降低。本文定義所有影像瓦片的像素尺寸為256×256。
根據(jù)式(6)計算瓦片的投影坐標邊界,以像素中心為基準點,推導瓦片(N,X,Y)中第S列,第T行像素(S,T)對應投影坐標為
(7)
其中,S=0,1,…,255;T=0,1,…,255。瓦片像素投影坐標推算如圖1所示。
圖1 影像瓦片示意圖
瓦片的分辨率隨著瓦片的級別增加而增加。當瓦片級別為N時,經(jīng)度方向的分辨率為
(8)
單位為:度/像素。
假定影像以經(jīng)緯度形式表示空間位置信息,影像瓦片計算和獲取過程如下:
1) 結(jié)合分辨率要求,根據(jù)式(8)反算待瀏覽瓦片的最高級別N;
2) 根據(jù)式(4)將影像的經(jīng)緯度坐標范圍轉(zhuǎn)化為投影坐標范圍;
3) 根據(jù)式(6)計算影像級別n覆蓋的瓦片,其中n<=N;
4) 根據(jù)式(7)和式(5)計算影像覆蓋的任意瓦片的每一像素對應的經(jīng)緯度坐標,在經(jīng)緯度影像里獲得插值結(jié)果。圖2所示為影像瓦片金字塔構(gòu)建過程。
圖2 影像瓦片金字塔創(chuàng)建示意圖
上述瓦片的剖分方法,形式上和采用墨卡托投影的WMTS瓦片剖分類似,但是,因為使用混合投影,相對于傳統(tǒng)墨卡托投影瓦片,覆蓋高緯度乃至到極點的地理范圍;相對于傳統(tǒng)采用經(jīng)緯度的WMTS瓦片,每個瓦片都是近似等角映射,局部角度變形很小,橫縱分辨率基本相同。因此,該方案兼有兩種傳統(tǒng)瓦片的優(yōu)點。
2.3DEM瓦片金字塔
DEM數(shù)據(jù)主要應用于三維地形可視化,瓦片化是DEM數(shù)據(jù)應用于三維地形可視化之前的必要過程。本文使用Chunked Lod方法[9-11]實現(xiàn)三維地形可視化,同時根據(jù)Chunked Lod方法進行DEM瓦片金字塔的優(yōu)化設計。
Chunked Lod方法構(gòu)建全球地形數(shù)據(jù)的四叉樹瓦片結(jié)構(gòu),每個四叉樹節(jié)點由地形塊構(gòu)成,每個地形塊由高程數(shù)據(jù)生成。第0級瓦片地形塊覆蓋整個地球表面,瓦片數(shù)為1;第1級瓦片地形塊將全球分為2行2列,瓦片數(shù)為4;第2級瓦片地形塊將全球分為4行4列,瓦片數(shù)為16,以此類推,第N級瓦片地形塊將全球分為2N行2N列,瓦片數(shù)為4N。由于網(wǎng)格過密會導致繪制效率低下,通過實驗確定每個地形塊的合適頂點數(shù)為17×17個。為了在地形塊構(gòu)建時計算更符合地形狀況的平滑的地面法向量,除了提供地形塊本身包含的高程點集,還需要地形塊邊界外一定范圍內(nèi)且能包圍地形塊的高程點集[12]。
鑒于17×17的瓦片數(shù)據(jù)量較小,將瓦片和地形塊級別形成對應關(guān)系,會導致數(shù)據(jù)調(diào)度過于零碎,影響調(diào)度效率。因此,構(gòu)建邊界和內(nèi)部包含257×257個高程點的DEM瓦片是較為合理的做法。當?shù)匦螇K級別L=0時,由于視點距離遠,地形精細度低,高程幾乎無法通過地形圖表示,認為高程為0;當?shù)匦螇K級別L≥4時,L級地形塊在投影坐標系下高程點與L-4級DEM瓦片的高程點間距相同且重合,因此可以復用第L-4級的地形塊中一部分高程數(shù)據(jù),一塊L-4級DEM瓦片能為16塊L級地形塊提供高程數(shù)據(jù)。當L-4大于DEM瓦片的最高級別時,根據(jù)最高級別瓦片的一部分高程數(shù)據(jù),采用雙三次插值[11]計算相關(guān)高程點的值,此時,需要提供DEM瓦片高程點值需要具有范圍外額外兩圈高程點。
根據(jù)以上分析,本文設計滿足條件的DEM瓦片結(jié)構(gòu),每個瓦片包含131×131個高程點,同時,為了保證每個瓦片地形塊能完整地實現(xiàn)三維平滑地形可視化,每個瓦片相關(guān)的高程點還應包括瓦片外圍兩周能包圍瓦片矩形的高程點集,瓦片高程點集如圖3所示。
按照此法則,DEM瓦片每個高程點(S,T)對應的投影坐標為
Clamp(x)=Min[Max(x,-1),1].
(8)
其中,S=-2,-1,…,258;T=-2,-1,…,258;mod 2保證范圍外額外高程點在經(jīng)度±180°時環(huán)繞;Clamp函數(shù)保證范圍外高程點緯度不超出±90°。
DEM瓦片的生成過程與影像瓦片類似,但是在DEM瓦片金字塔的構(gòu)建過程中需要為每一瓦片增加其外圍一定數(shù)量的高程點集。本文中DEM父瓦片的生成以子瓦片及其相鄰的16個瓦片為基準,以構(gòu)建完整的父瓦片高程點集。同時,瓦片的高程點集以壓縮形式儲存,任意高程值H被量化為24位非負整數(shù)Q,量化算式如下
Q=Round[256(H+32 768)].
(9)
高程值H位于-32 768 m到32 767 m之間時,經(jīng)過轉(zhuǎn)化后的量化誤差不超過1/512 m,并且量化值位數(shù)始終小于等于24位,此外,當某點實際不表示任何有意義的高程值時,規(guī)定Q=16 777 215。經(jīng)過量化的24位高程值被拆分為3個8位通道,采用PNG格式壓縮存儲,由于相鄰高程值往往變化較小,采用PNG格式能夠通過相鄰像素預測實現(xiàn)有效壓縮。
和影像瓦片類似,該DEM瓦片也具有影像瓦片類似的優(yōu)點。除此之外,針對三維平滑地形顯示,因為WMTS等常見瓦片由于瓦片之間并無重疊,并且高程點不能完全和三維地形網(wǎng)格點對應,需要進行拼接和插值才能滿足需求,處理比較復雜。而瓦片的具有部分重疊機制以及優(yōu)化的高程點規(guī)則設計,使得瓦片可以很直接地應用于三維地
圖3 DEM瓦片示意圖
形生成,降低三維平滑地型顯示處理的復雜度,提高瓦片數(shù)據(jù)調(diào)度的效率。
3瓦片地圖服務驗證與試驗
為了驗證改進Web墨卡托投影及瓦片金字塔設計的可行性,本文設計并實現(xiàn)瓦片地圖服務系統(tǒng),為二維地圖和三維可視化場景提供高效的瓦片地圖服務。
3.1瓦片地圖服務系統(tǒng)設計
瓦片地圖服務系統(tǒng)類似于WMS-T的實現(xiàn)機制,并在兩個方面做了優(yōu)化。其一是每個級別和每個圖幅(根據(jù)一定規(guī)則劃分的經(jīng)緯度范圍)使用獨立的數(shù)據(jù)庫表格,以提高瓦片數(shù)據(jù)的檢索效率;其二,采用LRU[14]策略實現(xiàn)服務器內(nèi)存緩存空間的釋放和瓦片數(shù)據(jù)的更新,以進一步提高服務器響應速度。
3.2效果驗證和系統(tǒng)實現(xiàn)
針對改進的Web墨卡托投影和新的影像瓦片金字塔構(gòu)建方法,對傳統(tǒng)按照經(jīng)緯度瓦片實現(xiàn)的三維地形可視化程序進行改造,每個地形塊直接對應一個新瓦片。雖然直接采用傳統(tǒng)Web墨卡托投影的瓦片也可以進行類似改造,但是由于投影無法表達高緯度地區(qū),使高緯度地區(qū)顯示不完整,影響可視化效果。而用文中提出的投影可以避免這個問題。
圖4中,左側(cè)圖片是采用傳統(tǒng)Web墨卡托投影的影像地圖瓦片作為紋理進行三維可視化時的效果圖,由于無法表達高緯度地區(qū),在北極地區(qū)出現(xiàn)了空洞(見圖上白色區(qū)域);右側(cè)圖片是采用改進Web墨卡托投影的影像地圖瓦片三維可視化的效果圖,可以看到北極地區(qū)的空洞已經(jīng)被有效填補。
圖4 影像地圖瓦片可視化效果圖(Web墨卡托投影改進前后)
圖5 二維地圖(左)和三維地球(右)網(wǎng)絡地圖服務示意圖
無論是二維地圖應用還是三維地球應用,根據(jù)本文設計的方案,影像地圖瓦片都是一套地圖瓦片數(shù)據(jù)。因此,對于二維也采用類似三維地球的可視化實現(xiàn),只是將球面地形改成平面地形,然后采用GPU加速方式進行繪制。由于文中的瓦片方案在較低緯度時投影和傳統(tǒng)Web墨卡托投影一致,因此這部分范圍顯示效果基本和傳統(tǒng)瓦片一致,但是對于高緯度地區(qū)到極地,也能完整表達和繪制。圖5顯示了二維地圖和三維地球應用地圖服務訪問的原型系統(tǒng)示意圖。在實驗環(huán)境中,服務器和客戶端均為Core i5 750,內(nèi)存2 GB,普通7 200轉(zhuǎn)機械硬盤,客戶端顯卡Geforce GTS450,均為按當前標準較低的配置;服務器和客戶端通過1 Gbps以太網(wǎng)絡直連;覆蓋全球的數(shù)據(jù)分辨率50 m,實際測試顯示局部分辨率達到0.2 m。實驗表明,網(wǎng)絡環(huán)境下,二維地圖和三維地圖應用在同一套影像地圖瓦片支持下,地圖顯示效果較好,結(jié)合DEM瓦片數(shù)據(jù),地形顯示平滑,二三維每秒可繪制50~60幀,地圖數(shù)據(jù)響應和繪制速度較快。1 920×1 080分辨率的地圖視窗內(nèi)0.5 s可以實現(xiàn)二維地圖和三維地球場景中影像和DEM數(shù)據(jù)的同步調(diào)度和可視化。
由瓦片投影定義和剖分方式可知,達到同等分辨率所需要的儲存數(shù)據(jù)量和傳統(tǒng)Web墨卡托投影瓦片相同,但是一套瓦片的方案就可以實現(xiàn)二三維可視化,相對于兩套數(shù)據(jù)瓦片,極大程度節(jié)約儲存成本。
4結(jié)論
本文提出一種改進的Web墨卡托地圖投影方法,在此基礎(chǔ)上根據(jù)瓦片金字塔劃分規(guī)則改進影像和DEM數(shù)據(jù)的瓦片化方法,設計并實現(xiàn)瓦片地圖服務系統(tǒng)。實驗結(jié)果證明,該方法具有較高的實用性,為二維地圖和三維地球可視化場景提供共用一套影像地圖瓦片數(shù)據(jù)的方案,極大程度節(jié)約了存儲成本,同時解決了高緯度地區(qū)地圖表達的問題,瓦片地圖數(shù)據(jù)調(diào)度效率和可視化效果較好。
參考文獻:
[1]韋勝.ArcEngine環(huán)境下實現(xiàn)瓦片地圖的訪問與拼接[J].武漢大學學報(信息科學版),2012,37(6):737-740.
[2]許虎,聶云峰,舒堅.基于中間件的瓦片地圖服務設計與實現(xiàn)[J].地球信息科學學報,2010,12(4):562-567.
[3]馬靜謹,李強.基于瓦片數(shù)據(jù)的DEM構(gòu)建與顯示[J].測繪工程,2007,16(2):27-29.
[4]黃瑞陽,郭建忠,成毅,等.基于網(wǎng)絡的三維影像數(shù)據(jù)處理與分發(fā)[J].測繪工程,2009,18(6):44-48.
[5]劉興明,湯力,王大雪.基于Silverlight技術(shù)的插件式GIS Server架構(gòu)研究[J].測繪工程,2015,24(6):70-73.
[6]王敏,張昆.基于THREE.JS和Google Map API的網(wǎng)頁交互可視化技術(shù):以等角航線為例[J].測繪與空間地理信息,2015,38(7):158-161.
[7]杜清運,虞昌彬,任福.利用嵌套金字塔模型進行瓦片地圖數(shù)據(jù)組織[J].武漢大學學報(信息科學版),2011,36(5):564-567.
[8]European Petroleum Survey Group (EPSG),EPSG Geodetic Parameter Dataset[EB/OL],http://epsg-registry.org.
[9]SNYDER,JOHN P.Map Projections - A Working Manual[M].Washington,D.C:United States Government Printing Office,1987.
[10] HILL D.An efficient,hardware-accelerated,level-of-detail rendering technique for large terrains[D].Toronto,Canada:University of Toronto,2002.
[11] ULRICH T.Rendering massive terrains using chunked level of detail control[M].Course Notes of ACM SIGGRAPH,Volume 35,2002.
[12] THURRNER G,WUTHRICH C A.Computing Vertex Normals from facet Normals[J],Journal of Graphics Tools,1999,4(2):1-6.
[13] WIKIPEDIA,Bicubic interpolation[EB/OL],http://en.wikipedia.org/wiki/Bicubic_interpolation.
[14] WONG K Y.Web cache replacement policies:a pragmatic approach[J],Network,IEEE,2006,20(1):28-34.
[責任編輯:張德福]
摘要:為解決網(wǎng)絡地理信息應用二、三維一體化顯示需要,通常做法是處理并存儲兩套不同投影的地圖瓦片數(shù)據(jù),一套采用Web墨卡托投影,面向二維地圖應用;一套采用經(jīng)緯度坐標,面向三維地圖應用。這在一定程度上降低數(shù)據(jù)處理效率、浪費存儲資源。文中提出一種改進Web墨卡托地圖投影方法,并設計一種面向影像地圖和DEM數(shù)據(jù)的瓦片化方法。方法生成的影像地圖瓦片數(shù)據(jù)既能同時面向二維地圖和三維可視化場景使用,又有效解決Web墨卡托投影不支持高緯度地區(qū)柵格地圖表達的缺陷。將新型的地圖投影和數(shù)據(jù)模型通過瓦片地圖服務系統(tǒng)進行驗證,證明這種新改進的投影和影像,以及DEM瓦片化方法具備較高的實用性。
關(guān)鍵詞:改進Web墨卡托投影;瓦片;影像;DEM;網(wǎng)絡地圖服務
Design and implementation of tiled map services based on improved Web Mercator map projectionLI Heyuan1,2,CHEN Gang1
(1.School of Geospatial Information,Information Engineering University,Zhengzhou 450052,China;2.State Key Laboratory of Geo-Information Engineering,Xi’ an 710054,China)
Abstract:In order to meet the integrated visualization requirements of two and three-dimension within network geographic information application,the usual practice is to process and store two sets of map tile data with different projection. One is Web Mercator projection for two-dimensional map application,and the other is Lat-Lon projection for 3D map application.This approach reduces the efficiency of data processing and storage resources waste dramatically. This paper proposes an improved Web Mercator map projection.And a tiling method of image map and DEM data is designed according to this new projection.The generated image map pyramid by this method can be used in 2D map and 3D visualization scene. It solves the problem that Web Mercator projection does not support map expression in high latitude area effectively. This model is validated through a tile map service system. The results prove the new improved projection, image, DEM tiling method is adaptable for the practice.
Key words:improved Web Mercator map projection;tile;image;DEM;web map service
作者簡介:李鶴元(1976-),男,高級工程師,博士研究生.
基金項目:國家自然科學基金資助項目(41201469;41071297)
收稿日期:2014-08-22;修回日期:2015-08-21
中圖分類號:TP317
文獻標識碼:A
文章編號:1006-7949(2016)02-0011-06