孫 偉 李瑞豹 丁 偉 閆慧芳
(遼寧工程技術(shù)大學(xué)測繪與地理科學(xué)學(xué)院 遼寧 阜新 123000)
基于OpenGL ES的移動終端三維地圖可視化
孫 偉 李瑞豹 丁 偉 閆慧芳
(遼寧工程技術(shù)大學(xué)測繪與地理科學(xué)學(xué)院 遼寧 阜新 123000)
基金項(xiàng)目(PF2015-13);對地觀測技術(shù)國家測繪地理信息局重點(diǎn)實(shí)驗(yàn)室開放
基金項(xiàng)目(K201401);江西省數(shù)字國土重點(diǎn)實(shí)驗(yàn)室開放研究
基金項(xiàng)目(DLLJ201501);地球空間環(huán)境與大地測量教育部重點(diǎn)實(shí)驗(yàn)室開放
基金項(xiàng)目(14-01-05);航空遙感技術(shù)國家測繪地理信息局重點(diǎn)實(shí)驗(yàn)室經(jīng)費(fèi)資助課題項(xiàng)目。孫偉,教授,主研領(lǐng)域:慣性導(dǎo)航與應(yīng)用技術(shù)研究。李瑞豹,碩士生。丁偉,碩士生。閆慧芳,碩士生。
移動智能設(shè)備正迅速成為地圖服務(wù)的增值平臺,基于Android系統(tǒng)平臺的移動地圖服務(wù)技術(shù)逐漸成為研究熱點(diǎn),由此設(shè)計(jì)基于OpenGL ES的三維地圖可視化客戶端系統(tǒng)。通過調(diào)用Android百度地圖API實(shí)現(xiàn)基本地圖操作、導(dǎo)航、路徑規(guī)劃、公交路線查詢、POI搜索等功能,使用OpenGL ES加載OBJ文件到移動設(shè)備中實(shí)現(xiàn)三維地圖模型放大、縮小和旋轉(zhuǎn)視角等功能,通過開發(fā)校園三維地圖可視化應(yīng)用軟件驗(yàn)證方案設(shè)計(jì)的可行性。
移動終端 三維可視化 OpenGL ES
隨著移動設(shè)備硬件性能的發(fā)展,人們對移動終端的圖形交互體驗(yàn)的需求逐步提高,三維場景的應(yīng)用開始由PC端轉(zhuǎn)向移動終端設(shè)備。Android智能手機(jī)平臺的出現(xiàn),加速了智能終端的快速發(fā)展[1-3]。手機(jī)地圖服務(wù)使用無線移動通信網(wǎng)絡(luò),輕松打破了地理位置的局限性,為人們的出行帶來了極大的方便。但是,如今更多的人們通過手機(jī)APP上諸如百度地圖、高德地圖的應(yīng)用查詢出行路線或者城市基礎(chǔ)設(shè)施信息[4-7]。然而,這些APP并不能滿足一些細(xì)節(jié)的要求,比如,目前不可提供校園這樣一個小范圍的地區(qū)的詳細(xì)信息,而對于學(xué)生以及需要深入了解校園內(nèi)部環(huán)境的人員而言,細(xì)節(jié)豐富的地圖必將受歡迎。如何設(shè)計(jì)出方便校園用戶使用的個性化地圖,并且使該地圖能不斷跟隨用戶對地理信息需求的變化而變化,為校園用戶提供方便定位和搜索、用戶探路和事務(wù)辦理提供實(shí)時和方便的提示等都是設(shè)計(jì)校園地圖服務(wù)需要解決的問題。
Android 系統(tǒng)在短短數(shù)年之內(nèi),能夠在智能機(jī)市場成長為移動終端的第一大操作系統(tǒng),主要?dú)w功于它的開放性、豐富的硬件選擇、無縫的Google應(yīng)用、開發(fā)商不受限制和質(zhì)優(yōu)價廉的特性[8-10]。OpenGL ES作為一種業(yè)界標(biāo)準(zhǔn)應(yīng)用程序編程接口(API),引入了對可編程管線的支持,可以大大提高不同消費(fèi)電子設(shè)備的3D圖形渲染速度,在嵌入式系統(tǒng)上實(shí)現(xiàn)了全面可編程的3D圖形,能實(shí)現(xiàn)更多的特效。國內(nèi)在面向移動平臺的三維圖形應(yīng)用方面已開展很多工作,但更多是從商業(yè)角度進(jìn)行,主要利用國外商用的三維圖形繪制引擎做上層應(yīng)用開發(fā),少有從面向移動終端實(shí)時逼真的三維圖形引擎角度做研究。
為了實(shí)現(xiàn)校園三維地圖模型的動態(tài)顯示,本文首先以Android系統(tǒng)為入手點(diǎn),分析探索Android系統(tǒng)的特征和體系結(jié)構(gòu)。在此基礎(chǔ)上歸納并總結(jié)了Android應(yīng)用程序的開發(fā)流程,設(shè)計(jì)并實(shí)現(xiàn)了基于Android平臺的移動地圖應(yīng)用程序。通過對三維場景地圖可視化應(yīng)用的需求分析,設(shè)計(jì)基于OpenGL ES的三維地圖可視化客戶端系統(tǒng)并有效結(jié)合百度地圖API技術(shù)實(shí)現(xiàn)校園三維地圖操作等功能,降低了系統(tǒng)復(fù)雜度并提供友好的人機(jī)交互。
OpenGL ES圖形標(biāo)準(zhǔn)具有開放性,可在Android、iOS、Linux、OS等系統(tǒng)中進(jìn)行移植[14-16]。OpenGL作為應(yīng)用圖形開發(fā)的API,通過編寫訪問圖形硬件的底層代碼實(shí)現(xiàn)程序高效運(yùn)行。為實(shí)現(xiàn)物體三維可視化,通過一個擁有合適長度單位和坐標(biāo)軸方向的坐標(biāo)來顯示三維物體數(shù)字化,便于計(jì)算機(jī)處理。為確定每個頂點(diǎn)在三維場景中的位置,通常采用坐標(biāo)描述物體相對空間的位置。OpenGL ES三維坐標(biāo)系(如圖1所示)定義如下:原點(diǎn)位于坐標(biāo)中央,從左向右是x軸,原點(diǎn)以左是負(fù),原點(diǎn)以右是正;從下向上延伸的是y軸,原點(diǎn)以下是負(fù),反之為正;由屏幕向外延伸的則是z軸,往屏幕里面方向去的是負(fù),向外面則是正。
圖1 OpenGL ES空間坐標(biāo)系
渲染流水線又稱繪制流水線或渲染管線,它的實(shí)質(zhì)是圖形芯片內(nèi)部處理的圖形信號相互獨(dú)立的并行處理單元。渲染過程可看作是一個流水線,圖形數(shù)據(jù)包括點(diǎn)、線、面從流水線的開端流經(jīng)流水線每個階段并經(jīng)過處理后到達(dá)流水線的終端,最后顯示在設(shè)備屏幕上,渲染流水線如圖2所示。
圖2 OpenGL渲染流水線
2.1 緩存機(jī)制
OpenGL ES使用顏色緩存、深度緩存、累積緩存和模板緩存等多種緩存。緩存操作包括:
1) 清空緩存,首先指定清除值:glClearColor(red,green,blue,alpha)為顏色緩存設(shè)置清除值,glClearIndex(index)為顏色索引緩存設(shè)置清除值,glClearDepth(默認(rèn)1.0)為深度緩存設(shè)置清除值,glClearStencil(默認(rèn)0.0)為模板緩存設(shè)置清除值,glClearAccum(red, green, blue, alpha)為累積緩存設(shè)置清除值,其次清除指定緩存,在這一步中可以一次性清除多個緩存;
2) 選擇顏色緩存賦予讀寫操作,任何一個顏色緩存都可存儲繪圖操作的結(jié)果(前、后、左前、左后、右前、右后或任意輔存),編程時可自由選擇單個緩存作為讀取目標(biāo)或者繪圖目標(biāo);
3) 緩存屏蔽,OpenGL在向緩存中寫入數(shù)據(jù)之前,需按函數(shù)指定的掩碼對數(shù)據(jù)進(jìn)行屏蔽操作。
2.2 坐標(biāo)變換
OpenGL ES使用投影變換把真實(shí)圖景映射到屏幕上,以這種方式映射會使它處于不同屏幕尺寸或方向上看起來總是正確的。要渲染的一切物體都要映射到x軸、y軸和z軸上[-1,1]范圍內(nèi)。這個范圍內(nèi)的坐標(biāo)被稱為歸一化設(shè)備坐標(biāo),其獨(dú)立于屏幕實(shí)際尺寸或形狀,但是如果直接使用就會出現(xiàn)問題,例如橫屏模式下模型會被壓扁。歸一化設(shè)備坐標(biāo)假定坐標(biāo)空間是一個正方形,因?yàn)閷?shí)際的視口可能不是正方形,圖像就會在一個方向上被拉伸,在另外一個方向上被壓扁。在一個豎屏設(shè)備上,歸一化設(shè)備坐標(biāo)上定義的圖像看上去就是在水平方向上被壓扁了,在橫屏模式下,同樣的圖像就在另一個方向上看起來是壓扁的。為解決這個問題,需要調(diào)整坐標(biāo)空間,使它把屏幕的形狀考慮在內(nèi),可行的方法是把較小的范圍固定在[-1,1]內(nèi),而按屏幕尺寸的比例調(diào)整較大的范圍。通過調(diào)整已有坐標(biāo)空間變?yōu)榭捎每臻g。以此實(shí)現(xiàn)無論豎屏還是橫屏,物體看起來都一樣。要進(jìn)行的操作叫做正交投影。使用正交投影,不管多遠(yuǎn)或多近,所有物體看上去大小總是相同。還有一種特殊的正交投影被稱作等軸側(cè)投影,它是從測角觀察的一種正交投影。這種類型的投影能用來重新創(chuàng)建一個經(jīng)典的三維角。
OpenGL ES使用大量向量和矩陣,矩陣最重要的用途就是建立正交和透視投影,使用矩陣做投影只涉及對一組數(shù)據(jù)按順序執(zhí)行大量的加法和乘法,這些運(yùn)算在現(xiàn)代GPU上執(zhí)行流暢。本文使用Android系統(tǒng)中android.opengl包的Matrix類定義正交投影,這個類有一個稱為orthoM()的方法,可生成一個正交投影。最后將使用這個投影來調(diào)整坐標(biāo)空間,正交投影和平移矩陣是非常類似的。orthoM()的所有參數(shù):orthoM(float[] m, int mOffset, float left, float right, float bottom, float top, float near, float far)當(dāng)調(diào)用這個方法的時候產(chǎn)生下面的正交投影矩陣:
(1)
這個正交投影矩陣會把所有在左右之間、上下之間和遠(yuǎn)近之間的事物映射到歸一化設(shè)備坐標(biāo)中。
OpenGL ES通過執(zhí)行透視除法將頂點(diǎn)位置歸一化設(shè)備坐標(biāo)中,不管渲染區(qū)域的大小和形狀,對其中每個可視坐標(biāo)x、y和z分量取值都位于[-1,1]的范圍內(nèi)。OpenGL ES會把每個gl_Position的x、y和z分量都除以它的w分量,當(dāng)w分量用來表示距離的時候,就使得較遠(yuǎn)處的物體被移動到距離渲染區(qū)域中心更近的地方,這個中心的作用就像一個消失點(diǎn)。在OpenGL ES中三維效果是線性的,并且是沿著直線完成的。在現(xiàn)實(shí)生活中,事物更加復(fù)雜,這種線性投影只是一種合理的近似。在看到最后的結(jié)果之前,OpenGL ES需要把歸一化設(shè)備坐標(biāo)的x和y分量映射到屏幕上的一個區(qū)域內(nèi),這個區(qū)域是操作系統(tǒng)預(yù)留出來用于顯示的,被稱作視口,這些被映射的坐標(biāo)被稱為窗口坐標(biāo)。
為創(chuàng)建三維模型,透視投影矩陣需要和透視除法一起發(fā)揮作用。一個物體想往屏幕中心移動,當(dāng)它的位置越來越遠(yuǎn)時,就變得越來越小。因此,投影矩陣最重要的任務(wù)就是為w產(chǎn)生正確的值,當(dāng)OpenGL ES做透視除法的時候,遠(yuǎn)處的物體看起來會比近處的物體要小。能實(shí)現(xiàn)這些方法之一是利用z分量,把它作為物體與焦點(diǎn)的距離并且把這個距離映射到w。這個距離越大、w值越大所得物體越小。
使用旋轉(zhuǎn)矩陣就可將模型進(jìn)行旋轉(zhuǎn)以便從某個角度觀察它。旋轉(zhuǎn)矩陣使用正弦和余弦三角函數(shù)把旋轉(zhuǎn)角轉(zhuǎn)換成縮放因子。把這些矩陣合并為一個通用的旋轉(zhuǎn)矩陣,使其可以基于任意一個角度和向量旋轉(zhuǎn),這也是可能的。
2.3 紋理映射
紋理映射是計(jì)算機(jī)虛擬現(xiàn)實(shí)技術(shù)相當(dāng)重要的部分,同時也是創(chuàng)建三維場景過程中的重要階段。在此過程里,OpenGL ES會把用戶選定的紋理圖片映射到指定的三維圖形平面上以此模擬出逼真的物體對象。OpenGL ES中紋理可以用來表示圖像、照片、甚至由一個數(shù)學(xué)算法生成的分形數(shù)據(jù)。每個二維的紋理都由許多小的紋理元素組成,它們是小塊的數(shù)據(jù),類似片段和像素。要使用紋理,最常用的方式是直接從一個圖像文件加載數(shù)據(jù)。可以用紋理加入大量細(xì)節(jié)。一旦開始使用紋理,就要開始使用多個著色器程序。
每個二維紋理都有其自己的坐標(biāo)空間,其范圍是從一個拐角的(0,0)到另一個拐角的(1,1)。按照慣例,一個維度叫做S,另一個稱為T。當(dāng)想把一個紋理應(yīng)用于一個三角形或一組三角形的時候,要為每個頂點(diǎn)指定一組ST紋理坐標(biāo),以便OpenGL知道需要用哪個紋理的哪個部分畫到每個三角形上。這些紋理坐標(biāo)有時也會被稱為UV紋理坐標(biāo),如圖3所示。
圖3 OpenGL紋理坐標(biāo)
對于一個OpenGL ES紋理來說,它沒有內(nèi)在方向性,因此可使用不同坐標(biāo)把它定向到任何喜歡的方向上。然而,大多數(shù)計(jì)算機(jī)圖像都有一個默認(rèn)的方向,它們通常被規(guī)定為y軸朝下,y的值隨著向圖像底部移動而增加。
在標(biāo)準(zhǔn)OpenGL ES中,紋理不必是正方形,但每個維度都是2的冪(POT)。這就意味著每個維度都是這樣的一個數(shù)字,如128、256、512等。這樣規(guī)定的原因在于非POT紋理可被使用的場合非常有限,而POT紋理適用于各種情況。紋理的尺寸也有一個最大值,它根據(jù)不同的實(shí)現(xiàn)而變化,但是通常都比較大,比如2 048×2 048。
在OpenGL ES中實(shí)現(xiàn)紋理映射首先把一個圖像數(shù)據(jù)加載到一個OpenGL ES的紋理中,使用Android的API讀入圖像文件的數(shù)據(jù)。OpenGL ES不能直接讀取PNG或者JPEG文件數(shù)據(jù),因?yàn)檫@些文件被編碼為特定壓縮格式,需要用Android內(nèi)置的位圖解碼器把圖像文件解壓縮為OpenGL ES可執(zhí)行形式。此時需要加載位圖數(shù)據(jù)并與紋理綁定,當(dāng)紋理被擴(kuò)大或縮小時,需要使用紋理過濾明確說明變化情況。當(dāng)在渲染表面上繪制一個紋理時,紋理元素可能無法精確映射到OpenGL ES生成的片段上。有兩種情況:縮小和放大。當(dāng)把幾個紋理元素?cái)D進(jìn)一個片段時,縮小就發(fā)生了;當(dāng)把一個紋理元素?cái)U(kuò)展到許多片段時,放大就發(fā)生了。針對每一種情況,都可配置OpenGL ES使用一個紋理過濾器。
在把紋理繪制到屏幕之前,需要創(chuàng)建一套新的著色器,可接收紋理并應(yīng)用在要繪制的片段上。這些新的著色器與目前使用過的著色器相似,只為支持紋理做一些輕微改動。創(chuàng)建新的類集合:首先,把頂點(diǎn)數(shù)據(jù)分離到不同的類中(每個類代表一個物理對象的類型),可通過創(chuàng)建獨(dú)立的類減少重復(fù),用于封裝實(shí)際的頂點(diǎn)數(shù)組;然后,為紋理著色器程序和顏色著色器程序分別創(chuàng)建一個類。通過更新渲染類并使用紋理進(jìn)行繪制。
2.4 多線程渲染
多線程渲染引起人們關(guān)注是因?yàn)閳D形API操作的CPU開銷隨著3D渲染引擎的復(fù)雜性增加,并成為加載資源時常見的瓶頸。一般情況下,一個圖形環(huán)境無法直接訪問另一個環(huán)境中的資源。這時需要使用共享環(huán)境,使得后臺負(fù)載線程可訪問主線程資源。
主線程是應(yīng)用于所有渲染的。增加的線程應(yīng)該是只用于著色器編譯和緩存數(shù)據(jù)上傳。而且后臺線程的數(shù)量應(yīng)保持在最低限度,創(chuàng)建線程過多會導(dǎo)致難以維護(hù),代碼無法調(diào)試。這一缺點(diǎn)很難克服。
本應(yīng)用主要分為基于OpenGL ES實(shí)現(xiàn)虛擬三維地圖平移、放大、縮小及自動旋轉(zhuǎn)場景等主要功能的界面,基于百度地圖實(shí)現(xiàn)用戶定位、位置搜索、路徑規(guī)劃等主要功能的界面。
1) 移動端地圖繪制主要功能模塊設(shè)計(jì)
系統(tǒng)的功能模塊主要包括:系統(tǒng)主界面;地圖操作功能;OpenGL場景可視化;導(dǎo)航功能;路徑規(guī)劃功能;公交路線查詢功能;離線地圖功能;POI搜索功能等功能模塊。下面將逐一介紹這些主要功能模塊。
地圖操作功能界面(圖4)主要有縮放、旋轉(zhuǎn)、俯視地圖功能(可通過手指觸屏);點(diǎn)選展示普通地圖和衛(wèi)星圖,交通圖和城市熱力圖功能;GPS跟隨功能和羅盤功能等。
圖4 地圖操作功能界面
2) OpenGL場景可視化測試界面,如圖5是一個測試過程中OpenGL可視化的界面,如圖5所示,展示了一個渲染過后的茶壺和一個帶有背景渲染后的汽車。
圖5 OpenGL測試界面
通過測試可知,OpenGL能夠成功實(shí)現(xiàn)obj文件加載并顯示。下面只需要通過3Dmax場景建模,轉(zhuǎn)換成obj文件并使用min3D引擎加載設(shè)備中實(shí)現(xiàn)三維地圖的可視化。
3) 導(dǎo)航功能界面,主要是通過相關(guān)接口,調(diào)啟百度地圖客戶端(v5.0以上)導(dǎo)航和Web端百度地圖導(dǎo)航,如圖6所示。
圖6 導(dǎo)航功能界面
4) 路徑規(guī)劃功能界面,能夠?qū)崿F(xiàn)輸入起點(diǎn)和終點(diǎn)進(jìn)行駕車搜索、公交搜索、步行搜索的功能,如圖7所示,以遼寧工程技術(shù)大學(xué)北校到北方酒店步行搜索為例。
圖7 路徑規(guī)劃功能界面
5) 公交路線查詢功能界面,能夠?qū)崿F(xiàn)輸入地點(diǎn)和公交路線,查詢沿途所有公交站點(diǎn)的功能,如圖8所示。
圖8 公交路線查詢功能
6) POI搜索功能界面,能夠?qū)崿F(xiàn)對某一城市查找學(xué)校、餐廳等關(guān)鍵字的全局搜索,以在阜新市內(nèi)找學(xué)校為例,點(diǎn)選遼寧工程技術(shù)大學(xué)如圖9所示。
圖9 POI搜索功能
7) OpenGLmin3d場景可視化界面,需要首先通過3D max實(shí)現(xiàn)三維場景模型的搭建,再轉(zhuǎn)換成可導(dǎo)入移動設(shè)備的格式。采用min3D引擎,封裝一些OpenGL基本的繪圖操作以及繪圖管理和渲染操作;提供一個活動類RenderActivity,使用者只需調(diào)用其中的initScene()和updateScene()方法就可在initScene中添加所要顯示的3D物體,在updateScene函數(shù)中處理3D動畫。另一種方法是直接使用OpenGL ES接口加載模型,三維場景模型最終效果如圖10所示。
圖10 三維場景
點(diǎn)擊OpenGLmin3d場景可視化按鈕進(jìn)入功能界面,資源已經(jīng)封裝應(yīng)用中不需要導(dǎo)入sd卡。加載成功后,可看到一個虛擬地圖場景的鳥瞰圖(如圖11所示)。
圖11 三維場景測試
通過加入天空盒效果、模型自動繞y軸旋轉(zhuǎn),同時添加對加速傳感器的支持。晃動移動端可看到不同模型效果。底部四個按鈕分別實(shí)現(xiàn)圖像左右移和放大縮小功能。
基于OpenGL ES的Andorid移動終端三維地圖繪制方法研究是未來移動定位可視化的研究熱點(diǎn),也是個人真實(shí)場景導(dǎo)航定位應(yīng)用的關(guān)鍵技術(shù)。伴隨數(shù)字城市和智慧城市建設(shè)的不斷推進(jìn),對數(shù)據(jù)獲取和顯示提出更高要求,移動終端三維實(shí)景模型的快速建立與良好的人機(jī)交互對于推動數(shù)字化進(jìn)程具有明顯優(yōu)勢,相關(guān)技術(shù)的發(fā)展具有良好應(yīng)用前景。
[1] 呂東方,張正華,劉平,等.智能交通多接口智能終端研究與實(shí)現(xiàn)[J].無線電工程,2015,45(8):87-90.
[2] Haseloff S.Designing adaptive mobile applications[C]//Pros of the 9th Euro micro Workshop on Parallel and Distributed Processing,2001:131-138.
[3] 王躍.我國移動智能終端操作系統(tǒng)平臺發(fā)展研究[J].信息通信技術(shù),2012(4):30-34.
[4] 曾錫山,范冰冰.基于Android移動終端的車輛導(dǎo)航地圖匹配算法研究[J].華南師范大學(xué)學(xué)報(自然科學(xué)版),2015,47(4):160-164.
[5] 張國平,王建璽,董桂林.基于Android平臺的手機(jī)地圖服務(wù)設(shè)計(jì)[J].計(jì)算技術(shù)與自動化,2015,34(1):111-115.
[6] 于連慶.基于觸控操作方式的大氣科學(xué)數(shù)據(jù)可視化系統(tǒng)技術(shù)研究與實(shí)現(xiàn)[J].南京信息工程大學(xué)學(xué)報(自然科學(xué)版),2014,6(6):530-538.
[7] 王柯,張文詩,馬宏斌.基于Android平臺的移動GIS地圖服務(wù)模式研究[J].地理信息世界,2014,21(5):84-90.
[8] Liu Feng,Janssens Davy,Wets Geert,et al.Annotating mobile phone location data with activity purposes using machine learning algorithms[J].Expert System with Applications,2012,40(8):3299-3311.
[9] Perea-Ortega Jose M,Lloret Elena,Alfonso Urena-Lopez L,et al.Application of Text mmarization techniques to the Geographical Information Retrieval task[J].Expert System with Applications,2012,40(8):2966-2974.
[10] Rodes William,Gugerty Leo.Effects of Electronic Map Displays and Individual Differences in Ability on Navigation Performance[J].Human Factors,2012,54(4):589-599.
[11] 李金貴,翁敬農(nóng).數(shù)字地球環(huán)境下矢量數(shù)據(jù)可視化方法研究與應(yīng)用[J].測繪通報,2015(6):112-115.
[12] 許林然.基于Android的校園三維導(dǎo)覽系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].哈爾濱師范大學(xué)自然科學(xué)學(xué)報,2015,31(2):77-80,115.
[13] 張?zhí)烨?基于機(jī)載傾斜攝影數(shù)據(jù)的自動貼紋理方法研究[J].測繪通報,2015(6):69-71.
[14] 王柯,馬宏斌,王一圣.基于Android平臺的軟件開發(fā)若干關(guān)鍵技術(shù)研究[J].測繪與空間地理信息,2014,37(9):14-16,24.
[15] 汪峙峰,薛源.安卓Android與蘋果ios優(yōu)劣與發(fā)展前景[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2011(16):34-34.
[16] 梁彩虹,劉爽.基于Android平臺實(shí)現(xiàn)實(shí)時地點(diǎn)通訊及導(dǎo)航[J].電子設(shè)計(jì)工程,2013,21(22):40-42.
3D MAP VISUALIZATION ON MOBILE TERMINAL BASED ON OPENGL ES
Sun Wei Li Ruibao Ding Wei Yan Huifang
(SchoolofGeomatics,LiaoningTechnicalUniversity,Fuxin123000,Liaoning,China)
Mobile intelligent devices are now becoming a value-added platform of map service at an exceeding speed, which makes moving map service based on Android platform a research hotspot. A 3D map visualization client system was designed to realize the function of basic map operation, navigation, path planning, bus route query and POI search by calling the Android Baidu map API. Moreover, using OpenGL ES to load OBJ files to the mobile device to realize 3D map model functions such as zoom in, zoom out and rotation angle. The feasibility of the designed scheme was verified by developing the campus map of 3D visualization application software.
Mobile terminal 3D visualization OpenGL ES
2015-11-21。國家自然科學(xué)
41304032);高等學(xué)校博士學(xué)科點(diǎn)專項(xiàng)科研
基金項(xiàng)目(新教師類)(20132121120005);第8批中國博士后科學(xué)基金特別項(xiàng)目(2015T80265);第58批中國博士后科學(xué)基金面上項(xiàng)目(2015M581360);遼寧省高等學(xué)校杰出青年學(xué)者成長計(jì)劃項(xiàng)目(LJQ2015044);遼寧省自然科學(xué)
TP3
A
10.3969/j.issn.1000-386x.2017.03.028
2015020078);遼寧省“百千萬人才工程”培養(yǎng)經(jīng)費(fèi)資助項(xiàng)目(遼百千萬立項(xiàng)【2015】76號);精密工程與工業(yè)測量國家測繪地理信息局重點(diǎn)實(shí)驗(yàn)室開放