曾興國,左 維,牟伶俐,張舟斌,李春來
(中國科學院國家天文臺中國科學院月球與深空探測重點實驗室,北京 100012)
面向移動端月球形貌展示的快速三維地圖平臺搭建
曾興國,左 維,牟伶俐,張舟斌,李春來
(中國科學院國家天文臺中國科學院月球與深空探測重點實驗室,北京 100012)
受限于移動設備運算能力和三維地圖數(shù)據(jù)網(wǎng)絡傳輸速度,如何在快速移動端流暢地顯示月球三維地圖,展示月球形貌細節(jié),還是一個難點。為解決這一問題,本文首先考察已有的移動端三維地圖實現(xiàn)方法,在此基礎上研究了一種基于前后臺異步渲染策略的三維月球地圖實現(xiàn)方案;基于嫦娥月球數(shù)據(jù),構建了一個月球三維形貌地圖原型系統(tǒng),并成功應用于移動端的嫦娥月球三維形貌數(shù)據(jù)發(fā)布。
三維地圖;移動互聯(lián)網(wǎng);三維月球;月球地圖
測繪技術正在逐步深入地應用于我國的月球與深空探測工程[1- 2]。使用月球地圖進行月球形貌展示、開展探測規(guī)劃已經(jīng)十分普遍。而隨著互聯(lián)網(wǎng)三維地圖技術的不斷進步,網(wǎng)絡三維地圖也不斷涌現(xiàn)并開始應用于月球數(shù)據(jù)及其他行星數(shù)據(jù)的三維展示與數(shù)據(jù)發(fā)布。
從技術層面看,網(wǎng)絡三維地圖經(jīng)歷了從桌面端到瀏覽器端再到移動端的轉(zhuǎn)變。最早出現(xiàn)的是桌面端的網(wǎng)絡三維地圖。以Google Earth、World Wind等為代表,基于C/S架構,三維模型數(shù)據(jù)主要在桌面的客戶端進行渲染,而服務端提供輔助信息支持。這一類的網(wǎng)絡三維地圖應用渲染速度快,顯示效果好,但需要在客戶端單獨安裝桌面應用軟件,數(shù)據(jù)也是預下載到軟件中,較為復雜。
其次是瀏覽器端的網(wǎng)絡三維地圖,這一類的網(wǎng)絡三維地圖主要基于B/S架構,按照出現(xiàn)先后還可以細分為兩種類型。早期主要通過在瀏覽器端安裝插件(如ActiveX、Java3D、ActionScript等),由服務器端提供三維數(shù)據(jù),傳輸?shù)娇蛻舳瞬⒗貌寮θS模型進行渲染[3- 8];近期,隨著瀏覽器對WebGL等3D引擎的支持,在瀏覽器端可以不用安裝插件,直接渲染三維地圖[9- 10]?;跒g覽器端的網(wǎng)絡三維地圖的優(yōu)點在于不用單獨安裝應用程序,直接通過瀏覽器顯示三維場景,但繪制效率和顯示效果不如桌面版,典型應用有Cesium等。
隨著移動互聯(lián)網(wǎng)的發(fā)展,移動網(wǎng)速的加快,智能移動設備的計算能力不斷提高,逐步出現(xiàn)了基于移動端的網(wǎng)絡三維地圖[11]。這一類型的網(wǎng)絡三維地圖主要采用(APP/Server)的架構,也可以細分為兩種模式。一種將三維數(shù)據(jù)和渲染引擎都放在APP中,服務端只提供輔助信息,在APP中直接渲染顯示三維場景;另外一種是APP端只提供渲染引擎,而服務端提供數(shù)據(jù)服務,傳輸?shù)紸PP中再進行渲染顯示。這兩種模式各有利弊,前一種模式無需下載數(shù)據(jù),渲染顯示速度更快,三維展示效果較好,但三維數(shù)據(jù)難以進行更新;后一種模式數(shù)據(jù)和引擎分開,易于進行數(shù)據(jù)更新和動態(tài)表達,但對于網(wǎng)絡傳輸速度要求更高,渲染速度和效果則差強人意。
從應用領域來看,針對地球網(wǎng)絡三維地圖的應用種類繁多,技術也最為成熟,而針對月球或其他行星的網(wǎng)絡三維地圖則較少,只有如基于Google Earth技術的Google Moon、Google Mars等,而且主要沿用三維地球的技術。但這種沿用忽略了月球與行星的坐標系統(tǒng)、分幅索引方案等,從月球與行星地圖實際應用出發(fā),在數(shù)據(jù)定位、查詢等方面存在問題。
本文主要研究如何在智能移動端實現(xiàn)面向月球形貌表達的網(wǎng)絡三維地圖。針對現(xiàn)有的移動端網(wǎng)絡三維地圖在技術層面存在的數(shù)據(jù)和渲染的矛盾,在應用領域存在的考慮月球特殊環(huán)境的缺失問題,基于嫦娥月球數(shù)據(jù),本文提出了一種基于異步渲染策略的,針對月球空間環(huán)境的網(wǎng)絡三維地圖實現(xiàn)方案,可提高嫦娥月球數(shù)據(jù)的三維展示與發(fā)布能力,服務于我國的月球與深空探測工程。
1.1 主要思路
由于移動端環(huán)境下網(wǎng)絡速度和運算能力的限制,網(wǎng)絡三維地圖存在著數(shù)據(jù)和渲染的矛盾;如果完全將三維數(shù)據(jù)放置于APP端,則每次三維地圖數(shù)據(jù)更新,需要重新下載APP,操作十分麻煩;而如果全將三維地圖數(shù)據(jù)放置于服務器,由服務器根據(jù)APP訪問實時將數(shù)據(jù)傳給前端渲染,則數(shù)據(jù)的實時傳輸壓力較大,渲染效果也會受到影響。對此,本文提出一種基于異步渲染策略的方案,具體方案如圖1所示。
圖1 三維地圖異步渲染策略
如圖1所示,該方案是將三維地圖數(shù)據(jù)分開,一部分包含三維幾何數(shù)據(jù)、三維場景分幅定位數(shù)據(jù)放置于APP,由APP進行本地調(diào)用渲染。而用于顯示效果的地圖紋理、標注數(shù)據(jù),則放置于服務器,而且這一部分數(shù)據(jù)可以由服務器進行預渲染,生成相應的瓦片地圖數(shù)據(jù)。同時,瓦片地圖數(shù)據(jù)可以采用標準的影像數(shù)據(jù)模型進行壓縮(如JPEG),以減少數(shù)據(jù)量。在APP中,在渲染幾何數(shù)據(jù)時,通過異步調(diào)用瓦片地圖服務,將地圖瓦片數(shù)據(jù)疊加于三維模型數(shù)據(jù)之上,則可以顯示出最終的三維場景。
基于APP端和服務端進行異步渲染實現(xiàn)的網(wǎng)絡三維地圖,由于幾何和定位數(shù)據(jù)在本地,可以提高三維場景的渲染效率;而將瓦片地圖數(shù)據(jù)放在服務端,一旦三維瓦片地圖數(shù)據(jù)需要更新,只需要在服務端生成新的瓦片,APP端則不需要更新,調(diào)用新的瓦片地圖服務即可, 這樣地圖瓦片數(shù)據(jù)的更新將會更加方便。
1.2 月球三維地圖坐標系統(tǒng)與瓦片切分
針對月球的網(wǎng)絡三維地圖,其三維引擎在調(diào)用瓦片地圖服務時,為減少數(shù)據(jù)獲取量,需要考慮月球的空間坐標系統(tǒng)及分幅編碼特點以進行地圖瓦片切分和調(diào)用[12- 13]。目前月球的空間坐標系統(tǒng)主要采用月固坐標系GSCMoon2000,主要的GIS軟件如ArcMap等也可以支持該坐標系。APP端在請求服務端的影像瓦片數(shù)據(jù)時,可以利用月球的分幅編碼規(guī)則,根據(jù)顯示月球坐標范圍,請求對應分幅的瓦片數(shù)據(jù),而不需要請求全球的瓦片數(shù)據(jù)。
目前可以參考國家標準《月球基本比例尺地形圖分幅和編號》[14],基于此標準,對月球三維地圖影像瓦片數(shù)據(jù)進行分幅和編碼。按照該標準,以1∶100萬分幅為例,如圖2所示,瓦片編號與圖幅編號相同,單張瓦片大小為256×256像素。
圖2 1∶100萬月球地圖分幅編碼
圖2中,根據(jù)某點位置,其瓦片編號可由求圖幅編號公式得到。1∶100萬圖幅編號按式(1)和式(2)計算
a=[(84°-φ)/Δφ]+2
(1)
b=[(λ+180°]/Δλ]+1
(2)
式中,a為1∶100萬圖幅所在緯度帶字符碼所對應的數(shù)字碼;b為1∶100萬圖幅所在經(jīng)度帶的數(shù)字碼;[ ]表示商取整;φ為圖幅內(nèi)某點的緯度或圖幅西北圖廓點的緯度,單位為度(°);Δφ為14°;λ為圖幅內(nèi)某點的經(jīng)度或圖幅西北圖廓點的經(jīng)度,單位為度(°);Δλ為第a行對應的1∶1 000 000圖幅經(jīng)差,單位為度(°)。式(1)、式(2)只適用于南北緯84°之間的行號、列號計算。北緯84°—90°圖幅編號為A01,南緯84°—90°圖幅編號為N01。以月面某點(經(jīng)度為-19°30′36″,緯度為44°07′12″)為例,計算其所在地圖瓦片的編號。根據(jù)式(1)和式(2)計算其行號、列號。
a=[(84°-φ)/Δφ]+2=[(84°-44°07′12″)/ 14°]+2=4(對應字符碼D)
查詢第4行經(jīng)差為24°,即Δλ=24°
b=[(λ+180°)/Δλ]+1=[(-19°30′36″+ 180°)/24°]+1=7
該點所在1∶1 000 000圖幅編號為D07,獲取的瓦片即為Image D07,其相鄰瓦片則為Image C05、C06、D06、D08、E08、E09。
2.1 系統(tǒng)設計
2.1.1 系統(tǒng)架構
基于上述設計方案,采用APP/Server的架構搭建本系統(tǒng)。移動端是一個APP,主要是一個三維地圖渲染引擎,內(nèi)置有月球三維結構幾何數(shù)據(jù)和用于空間定位、查詢的分幅編碼數(shù)據(jù),負責三維模型的渲染和顯示。Server服務端是月球三維紋理數(shù)據(jù)瓦片地圖服務,負責渲染月球紋理數(shù)據(jù),并以瓦片地圖的形式發(fā)布,APP端可以調(diào)用該服務,并將相應的地圖瓦片貼合在月球三維模型表面,形成最終的月球三維地圖。
2.1.2 功能模塊
系統(tǒng)設計包括三維主要功能模塊,如圖3所示,每個模塊及其功能,具體如下。
(1) 三維展示模塊:用于渲染并顯示三維月球模型數(shù)據(jù)與地圖場景。
(2) 交互模塊:顯示交互性信息,接受觸摸動作,根據(jù)觸摸動作修改3D模型參數(shù),與3D模型互動。
(3) 數(shù)據(jù)加載模塊:加載并分析月球三維紋理、標注數(shù)據(jù),計算坐標在3D模型上顯示的位置。
圖3 系統(tǒng)功能模塊
2.1.3 功能模塊
系統(tǒng)設計基于開源的Cesium項目構建,使用WebGL繪制三維地圖,通過支持WebGL的主流瀏覽器如Firefox、Chrome即可以訪問和渲染三維場景,Cesium平臺支持對于WMTS、WMS等主流網(wǎng)絡地圖服務的調(diào)用。
2.2 實例應用
2.2.1 月球數(shù)據(jù)
原型系統(tǒng)主要運用已有的嫦娥月球影像數(shù)據(jù),包括普通的120 m分辨率的全月DOM數(shù)據(jù)、月球地名數(shù)據(jù),數(shù)據(jù)的組織結構如圖4所示。
圖4 嫦娥月球數(shù)據(jù)組織
根據(jù)已有的數(shù)據(jù),在服務器端,通過ArcGIS Server將地圖數(shù)據(jù)發(fā)布為多級顯示的網(wǎng)絡地圖瓦片服務,作為網(wǎng)絡三維月球系統(tǒng)的紋理和標注數(shù)據(jù)來源。
2.2.2 系統(tǒng)效果
在智能手機端安裝原型系統(tǒng)APP,通過APP調(diào)用瀏覽器,渲染本地的三維幾何數(shù)據(jù),在3G網(wǎng)絡環(huán)境下調(diào)用服務端發(fā)布的網(wǎng)絡地圖瓦片服務,可以實現(xiàn)流暢的訪問月球三維場景,相應的地名數(shù)據(jù)也可以疊加顯示于地圖中。在不同尺度下的三維月球數(shù)據(jù)展示的具體示意圖效果如圖5所示。
圖5 移動端三維月球效果
在平臺支持上,本系統(tǒng)可以支持安卓、iOS等主流移動平臺,具有較好的跨平臺性;由于采用了異步渲染策略;在訪問速度上,可以實現(xiàn)實時流暢的三維月球場景訪問,在渲染效果上與主流的平臺效果相當。
本文在前人的研究基礎上,著重分析了網(wǎng)絡三維地圖在技術和應用領域的發(fā)展現(xiàn)狀。與此同時,指出了在移動端網(wǎng)絡三維地圖存在的數(shù)據(jù)和渲染之間的矛盾。針對該矛盾,提出了一種基于APP端和服務端對不同數(shù)據(jù)進行異步渲染,而后集成顯示的三維地圖方案。該方案被應用于月球三維地圖的構建,實現(xiàn)了一個可以流暢顯示月球形貌的月球三維地圖。該方案存在的不足之處在于,目前主要用于展示月球形貌的紋理數(shù)據(jù)為影像灰度瓦片,形貌的三維效果還不夠突出,未來應研究使用采用彩色暈渲瓦片替代灰度瓦片等方式,以提高月球三維形貌地圖的表現(xiàn)力。
[1] 劉經(jīng)南, 魏二虎, 黃勁松, 等. 月球測繪在月球探測中的應用[J]. 武漢大學學報(信息科學版), 2005, 30(2): 95- 100.
[2] 陳俊勇,章傳銀,黨亞民.月球航天探測和月球測繪[J].測繪學報,2005,34(3):189- 195.
[3] OLMEDO H. Virtuality Continuum’s State of the Art[J]. Procedia Computer Science,2013(25):261- 270.
[4] 郭美卉. 基于 Unity 3D 的虛擬鷲峰漫游展示設計[D]. 北京:北京林業(yè)大學, 2013.
[5] 鄒韻飛. 基于 WEB 的三維全景交互虛擬場景技術應用的研究[D].昆明:昆明理工大學, 2011.
[6] 劉義海, 黃翔濤, 肖圓秀. 基于 3d max 與 Away3D 的校園三維模型在 Web 中的顯示研究[J]. 黑龍江科技信息, 2013 (13): 144.
[7] 譚云蘭, 賈金原, 彭碩, 等. 基于 Web3D 的虛擬旅游關鍵技術研究進展[J]. 系統(tǒng)仿真學報, 2014, 26(7): 1541- 1549.
[8] 龐國明. 智能設備基于 J2ME 平臺的 3D 開發(fā)技術[J]. 電腦編程技巧與維護, 2009 (21): 68- 72.
[9] RESCH B, WOHLFAHRT R, WOSNIOK C. Web- based 4D Visualization of Marine Geo- data Using WebGL[J]. Cartography and Geographic Information Science, 2014, 41(3): 235- 247.
[10] 張玲. 基于 WebGL 技術和 Oak3D 引擎的交互式三維地球模型研究[J]. 軟件導刊, 2014, 13(2): 153- 155.
[11] NOGUERA J M, SEGURA R J, OGYAR C J, et al. Navigating Large Terrains Using Commodity Mobile Devices[J]. Computers & geosciences, 2011, 37(9): 1218- 1233.
[12] DONG Y F, SUN Y K, TANG Z S. Interactive Visualization of 3D Lunar Model with Texture and Labels, Using Chang’E- 1 Data[J]. Science China Physics, Mechanics and Astronomy, 2013, 56(10): 2002- 2008.
[13] 何猛, 蔡忠亮, 任福. 移動地圖中的矢量瓦片組織方法研究[J]. 測繪地理信息, 2015, 40(2): 74- 76.
[14] 中國科學院國家天文臺.月球基本比例尺地形圖分幅和編號:GB/T 32521—2016[S].北京:中國標準出版社,2016.
Research on Fast Development of 3D Lunar Topography RepresentationPlatform Based on Mobile Devices
ZENG Xingguo,ZUO Wei,MU Lingli,ZHANG Zhoubin,LI Chunlai
(Key Laboratory of Lunar and Deep Space Exploration, National Astronomical Observatories, Chinese Academy of Sciences, Beijing 100012, China)
Restricted by the computing capability of the smart mobile devices and the speed for 3D map data transmission through mobile internet, how to display the 3D lunar map on mobile devices smoothly and represent the lunar topography in detail is still a problem. To solve this problem,the state of art for mobile 3D map was investigated, and based on the work, an asynchronous rendering strategy for 3D Lunar Mapping on mobile devices was proposed. With the method and Chang’E lunar data, a 3D lunar map prototype system for mobile devices was developed and successfully implemented in the program for Chang’E lunar topographic data release.
3D map; mobile internet; 3D moon; lunar map
2016- 06- 13;
2017- 01- 06
國家自然科學基金(41371427/D0108);中國科學院國家天文臺青年人才基金;數(shù)字制圖與國土信息應用工程國家測繪地理信息局重點實驗室開放基金(GCWD201402)
曾興國(1988—),男,博士,助理研究員,主要從事月球與行星地圖可視化研究。E- mail:zengsingle@163.com
曾興國,左維,牟伶俐,等.面向移動端月球形貌展示的快速三維地圖平臺搭建[J].測繪通報,2017(3):42- 45.
10.13474/j.cnki.11- 2246.2017.0081.
P208
A
0494- 0911(2017)03- 0042- 04