王浩翔 王春 宋宏利 趙昕
摘 要:隨著移動(dòng)設(shè)備的普及,實(shí)景三維技術(shù)在移動(dòng)端的應(yīng)用場景愈加豐富的同時(shí),也因內(nèi)存與網(wǎng)絡(luò)的限制帶來了一些問題。因此,探尋移動(dòng)端加載大規(guī)模實(shí)景數(shù)據(jù)的方法至關(guān)重要。本研究選取安徽省滁州市某一地區(qū)的實(shí)景三維模型,該區(qū)域面積為9.14 km2,使用ArcGIS Pro軟件將OSGB傾斜攝影數(shù)據(jù)轉(zhuǎn)換為SLPK格式,以適配移動(dòng)端,并構(gòu)建相關(guān)APP,在此基礎(chǔ)上采用視錐體計(jì)算、空間索引等方法,對大體量實(shí)景數(shù)據(jù)在移動(dòng)設(shè)備上的調(diào)度進(jìn)行優(yōu)化,通過監(jiān)聽攝像機(jī)在場景中的空間位置,對當(dāng)前屏幕可視域內(nèi)外的模型數(shù)據(jù)進(jìn)行動(dòng)態(tài)緩存與釋放,以此實(shí)現(xiàn)加載大規(guī)模實(shí)景數(shù)據(jù)的目的。經(jīng)試驗(yàn)測試,能夠在華為平板上流暢調(diào)度近30 GB的模型數(shù)據(jù)并顯示。
關(guān)鍵詞:實(shí)景三維;視錐體;空間索引;動(dòng)態(tài)緩存
中圖分類號:P208;TP391.41? ? 文獻(xiàn)標(biāo)志碼:A ? 文章編號:1003-5168(2022)9-0007-07
DOI:10.19968/j.cnki.hnkj.1003-5168.2022.09.001
Research on Dynamic Cache Technology for 3D Real Scene Display on Android Platform
WANG Haoxiang1? ? WANG Chun1,2? ? SONG Hongli1? ? ZHAO Xin1
(1.School of Earth Science and Engineering,Hebei University of Engineering,Handan 056038,China;
2.College of Geographic Information and Tourism,Chuzhou University,Chuzhou 239000,China)
Abstract: With the popularity of mobile devices,the application scenario of 3D Real Scene in the mobile terminal is becoming more and more abundant.At the same time, it also brings some problems due to the restriction of memory and network.Therefore,it is very important to explore the method of loading large-scale real scene data on the mobile terminal.The article selects the real scene data of a certain area in Chuzhou City,Anhui Province,the constituency covers an area of 9.14 square kilometers,uses ArcGIS Pro to convert its type to SLPK to adapt to the mobile terminal.Uses frustum calculation,spatial index,and other methods to optimize the scheduling of large-scale real scene data on mobile devices.By monitoring the spatial position of the camera in the scene,the model data inside and outside the current screen's visual field is dynamically cached and released,achieve the purpose of loading large-scale real scene data.After testing,it can smoothly schedule and display nearly 30 GB model data on the Huawei tablet.
Keywords:3D real scene;view frustum;spatial index;dynamic cache
0 引言
實(shí)景三維(3D Real Scene)是對人類生產(chǎn)、生活和生態(tài)空間進(jìn)行真實(shí)、立體、時(shí)序化反映和表達(dá)的數(shù)字化虛擬空間,為經(jīng)濟(jì)社會(huì)發(fā)展和各部門信息化建設(shè)提供統(tǒng)一的空間基底。
在移動(dòng)終端領(lǐng)域,實(shí)景三維的應(yīng)用場景越來越多[1]。國內(nèi)外GIS企業(yè)紛紛推出了適應(yīng)于不同應(yīng)用場景的移動(dòng)端應(yīng)用程序編程接口(API),如Esri公司的ArcGIS Runtime SDK for Android、北京超圖的SuperMap iMoble for Android等,使開發(fā)人員能夠在移動(dòng)終端對實(shí)景三維模型和GIS數(shù)據(jù)進(jìn)行訪問、展示、分析與管理。在應(yīng)用方面,谷歌公司于2007年在谷歌地圖的基礎(chǔ)上推出了谷歌街景,通過街景車拍攝的不同方向上的照片,為使用者提供實(shí)地景象[2],實(shí)現(xiàn)實(shí)景漫游功能,率先將“實(shí)景”這一概念通過移動(dòng)終端呈現(xiàn)給廣大用戶。
隨著移動(dòng)設(shè)備硬件性能的提升,移動(dòng)互聯(lián)時(shí)代對GIS的應(yīng)用要求越來越高[3],信息來源從單一到全信息要素結(jié)合,視角從傳統(tǒng)實(shí)景漫游的固定位置視角到基于球面場景的自由視角,對三維模型的精細(xì)程度、操作自由度、地理數(shù)據(jù)豐富度有了更高的要求。但越精細(xì)的模型對設(shè)備性能的要求就越高,而如何有效地解決移動(dòng)設(shè)備緩存大體量的實(shí)景三維數(shù)據(jù)具有重要意義。羅安平等[4]利用金字塔模型分層分塊管理影像、高程、地形數(shù)據(jù),采用OSGearth 引擎構(gòu)建出三維場景,并成功移植到Android平臺(tái),實(shí)現(xiàn)地理信息的三維顯示。路廣[5]利用金字塔模型對三維校園地圖瓦片進(jìn)行存儲(chǔ),從而提高了瓦片的渲染效率。
目前,對移動(dòng)設(shè)備的三維應(yīng)用研究存在三維模型精細(xì)程度有限,視角操作多局限于平移、旋轉(zhuǎn)、縮放基礎(chǔ)操作等問題。對此,本研究提出一種基于自由視角的實(shí)景模型緩存方法,在原有視角操作的基礎(chǔ)上增加環(huán)繞目標(biāo)點(diǎn)的選項(xiàng),根據(jù)當(dāng)前攝像機(jī)的位置,對視野內(nèi)外的實(shí)景模型瓦片動(dòng)態(tài)進(jìn)行緩存與釋放,避免內(nèi)存占用量過高,從而實(shí)現(xiàn)動(dòng)態(tài)緩存大規(guī)模實(shí)景數(shù)據(jù)的目的,并支撐基于多源數(shù)據(jù)聚合的全信息實(shí)景地理環(huán)境安卓服務(wù)平臺(tái)的建設(shè)。
1 大規(guī)模實(shí)景數(shù)據(jù)動(dòng)態(tài)緩存與釋放的設(shè)計(jì)思路
由于受內(nèi)存與網(wǎng)絡(luò)的限制,移動(dòng)端無法實(shí)現(xiàn)加載大規(guī)模實(shí)景三維數(shù)據(jù),本研究在索引法的基礎(chǔ)上,通過改進(jìn)客戶端索引法,配合移動(dòng)端進(jìn)行實(shí)時(shí)監(jiān)聽接口,監(jiān)控相機(jī)位置與屏幕可視域,只緩存可視域及緩沖區(qū)內(nèi)的實(shí)景模型數(shù)據(jù),對可視域外的實(shí)景數(shù)據(jù)進(jìn)行動(dòng)態(tài)釋放,避免一次性載入過量數(shù)據(jù)導(dǎo)致系統(tǒng)崩潰。綜上所述,本研究設(shè)計(jì)一種大規(guī)模實(shí)景數(shù)據(jù)緩存實(shí)現(xiàn)思路(見圖1),具體實(shí)現(xiàn)步驟如下所示。
①動(dòng)態(tài)獲取當(dāng)前攝像機(jī)的視線方向。
②獲取移動(dòng)設(shè)備的屏幕參數(shù)。
③根據(jù)視線方向與屏幕參數(shù)計(jì)算出視野范圍。
④計(jì)算出視野范圍的最小外接矩形(矩形邊與經(jīng)緯線平行)。
⑤計(jì)算出最小外接矩形在地圖網(wǎng)格中的位置與矩形包含的地圖瓦片集合。
⑥計(jì)算矩形瓦片集合內(nèi)每個(gè)瓦片與視野范圍的空間關(guān)系,得到視野內(nèi)瓦片的集合。
⑦將瓦片集合內(nèi)的位置編號與模型文件名進(jìn)行匹配。
⑧緩存(釋放)視野內(nèi)(外)的模型文件。
2 相關(guān)技術(shù)
2.1 ArcGIS Runtime SDK for Android
ArcGIS Runtime SDK for Android包括一個(gè)用于Android Studio的lib-project和用于eclipse等環(huán)境的jar函數(shù)庫,其提供了豐富的工具、文檔和示例,用戶能夠使用Java語言構(gòu)建移動(dòng)應(yīng)用程序,這些應(yīng)用程序可運(yùn)用ArcGIS for Server提供的制圖、地理編碼、地理處理和自定義功能,并可將其部署到基于Android系統(tǒng)的智能手機(jī)和平板上[6-7]。
在三維數(shù)據(jù)顯示上,ArcGIS Runtime SDK for Android提供場景(Scene)、場景視圖(SceneView)以三維方式顯示的地理內(nèi)容,分別負(fù)責(zé)控制邏輯與處理視圖。場景包含多個(gè)來源于在線或本地的數(shù)據(jù)圖層,可通過底圖圖層(BasemapLayer)構(gòu)建一個(gè)基礎(chǔ)地理環(huán)境。場景同時(shí)支持二維圖層與三維圖層,二維圖層按照添加順序來顯示,對于要顯示的數(shù)據(jù)類型需要?jiǎng)?chuàng)建圖層,如Feature類數(shù)據(jù)的要素圖層FeatureLayer;三維圖層則通過圖層的高程信息來顯示。ArcGIS Runtime SDK for Android還可通過Portal API訪問ArcGIS Online和Portal for ArcGIS上的資源,即可與云端建立密切的聯(lián)系,被多數(shù)用戶和開發(fā)者所關(guān)注。
2.2 ArcGIS Pro
ArcGIS Pro可將OSGB傾斜攝影模型轉(zhuǎn)換為ArcGIS Runtime SDK for Android支持的三維數(shù)據(jù)類型SLPK,可通過Create Intergrated Mesh Scene Layer Package工具對數(shù)據(jù)進(jìn)行轉(zhuǎn)換。SLPK(SceneLayer Package)是Esri發(fā)起的I3S標(biāo)準(zhǔn)規(guī)范的三維數(shù)據(jù)格式,已被OGC采納為新的國際三維標(biāo)準(zhǔn),在移動(dòng)端可通過場景圖層直接實(shí)例化SLPK三維場景文件路徑指向的對象,從而達(dá)到顯示實(shí)景三維模型的目的。
3 傾斜視角下的實(shí)景模型緩存
3.1 傾斜視角下的視野中心
在實(shí)景三維應(yīng)用中,由于相機(jī)的視角是不固定的,多數(shù)情況下為傾斜視角,傾斜視角下的參數(shù)除攝像機(jī)所在位置的經(jīng)度X、維度Y和高度Z之外,還包含攝像機(jī)朝向Heading、傾角Pitch和橫滾Roll等參數(shù)。其中,朝向Heading表示水平方向上攝像機(jī)朝向與以正北方向?yàn)槠鹗驾S的夾角,范圍為0°~360°;傾角Pitch表示垂直方向上攝像機(jī)朝向與垂直地面朝向地心的起始射線的夾角,范圍為0°~180°,0°表示朝向地心,180°表示背向地心;橫滾Roll表示模型與場景視角固定的情況下,設(shè)備視窗與水平方向的夾角,實(shí)際應(yīng)用情況下多數(shù)為0°,可暫不考慮。
在獲取X、Y、Z、Heading、Pitch以及設(shè)備屏幕大小等參數(shù)后,可獲取設(shè)備可視域內(nèi)模型信息。首先要獲取當(dāng)前攝像機(jī)視野中心在模型上的位置,即攝像機(jī)視線與地面模型相交的核心點(diǎn)。核心點(diǎn)的計(jì)算方法如下。
核心點(diǎn)與攝像機(jī)正射投影點(diǎn)之間的距離為distance。
[distance=Z×tan(Pitch)]? ? (1)
經(jīng)度圈上1°對應(yīng)長Dlang為:
[Dlang=CE/360=111 000 m]? ?(2)
則經(jīng)度變化量[ΔY]為:
[ΔY=distance×cos(Heading)/Dlang] (3)
緯度圈上1°對應(yīng)長Dla與所在的緯度圈相關(guān):
[Dla=(2π×RE×cosX)/360]? ? (4)
則經(jīng)度變化量[Δ]X:
[ΔX=distance×sin(Heading)/Dla]? (5)
得出中心點(diǎn)經(jīng)緯度坐標(biāo):
[(CenterX,CenterY)=(X+ΔX,Y+ΔY)]? (6)
其中,CenterX為核心點(diǎn)的緯度;CenterY為核心點(diǎn)的經(jīng)度;RE為地球半徑;CE為地球周長。
3.2 視錐、視野和縮放
視錐體是相機(jī)可能看到的空間體積,其形狀類似于被剪掉了尖端的金字塔(見圖2),根據(jù)中心視線向外延展出最大距離的固定視錐體,視錐體與地圖瓦片層的切面即為相機(jī)可視域,視錐大小可根據(jù)移動(dòng)設(shè)備的型號進(jìn)行動(dòng)態(tài)調(diào)整,以獲取不同方向上的視野參數(shù)。
視野(Field of View,F(xiàn)OV)是視錐體的截取角度。由于視錐體是由6個(gè)面組成的三維體,故所需的視野參數(shù)由垂直視野和水平視野組成,分別對應(yīng)水平與垂直方向上的視錐體橫截面。
縮放(Zoom)測量的是對象的表現(xiàn)相對于90°視野的比率,即縮放值為α?xí)r,對象在屏幕上顯示的大小是90°視野下的α倍。
視野與縮放的幾何解釋如圖3所示,通過三角函數(shù)換算得到視野fov和縮放zoom之間的關(guān)系為式(7)。
[zoom=1tan(fov2)]? ? ? (7)
從式(7)可以看出縮放與視野呈反比關(guān)系,與視野有水平垂直之分類似,縮放也有垂直水平之分。對于不同型號的移動(dòng)設(shè)備,受分辨率、屏幕大小、窗口占比等因素的影響,水平與垂直方向上的縮放也有不同,其比值為式(8)。
[zoomyzoomx=winPhysxwinPhysy=winResxwinResy×devPhysxdevPhysy×devResydevResx]
(8)
式中,winPhys指應(yīng)用窗口的物理大小;winRes指應(yīng)用窗口的分辨率;devPhys指輸出設(shè)備的物理尺寸;devRes指輸出設(shè)備的分辨率。在應(yīng)用窗口占據(jù)整個(gè)設(shè)備屏幕的情況下,窗口分辨率與設(shè)備分辨率比例相同,則縮放比例等同于設(shè)備物理尺寸比例,在公式(7)的基礎(chǔ)上可得到橫向視野[fovx]、縱向視野[fovy]及其關(guān)系為式(9)。
[fovx=2arctan(tanfovy2×devPhysxdevPhysy)]? ?(9)
由于本研究只需要橫縱方向上視野的比例,可設(shè)[fovy]為[π2],結(jié)合公式(9),得到視野比例[fov_scale]為式(10)。
[fov_scale=fovyfovx=π4arctandevPhysxdevPhysy] (10)
在獲取到視野比例后,可通過SceneView.getFieldOfView()方法來獲取設(shè)備當(dāng)前視角下視錐的水平視野,并通過式(10)計(jì)算出視錐的垂直視野,同時(shí)可通過設(shè)置maxDistance來確定視錐的最遠(yuǎn)范圍,即遠(yuǎn)截面至相機(jī)的距離,避免因視線趨向水平時(shí)視野太大導(dǎo)致緩存過量。
經(jīng)此即可獲得基于不同型號移動(dòng)設(shè)備的自適應(yīng)性視野范圍。圖4為兩種不同設(shè)備型號移動(dòng)設(shè)備(智能手機(jī)和平板電腦)在同一位置朝向正北方向,且與地心射線夾角為30°狀態(tài)下的視野。該圖中視錐體與地面截面覆蓋部分即為設(shè)備屏幕可見區(qū)域,相關(guān)比例參數(shù)見表1。
3.3 視野包圍
經(jīng)過前文的計(jì)算,可以得到當(dāng)前設(shè)備的視野中心在地圖上的坐標(biāo)(CenterX,CenterY)(視線方向)、視錐傾角(視野),根據(jù)這些參數(shù)計(jì)算出可視域,即視錐與地面的截面,獲取該截面四個(gè)角的坐標(biāo)信息,以確定被包含在視野內(nèi)的模型瓦片情況。
視錐與地面的截面可視作由四個(gè)點(diǎn)組成的凸四邊形,模型瓦片所在的位置可由瓦片中心點(diǎn)的坐標(biāo)來表示,即判斷某個(gè)點(diǎn)與多邊形的拓?fù)潢P(guān)系,可用的方法有矢量叉積法、射線交點(diǎn)法、面積判斷法等[8-9]。其中,矢量叉積法的原理為:凸多邊形內(nèi)任一點(diǎn)都在邊向量的同一側(cè)(邊向量同為順時(shí)針或逆時(shí)針),則連接各角與內(nèi)部點(diǎn)的矢量均處在與其具有相同起點(diǎn)的邊矢量的同一側(cè)。對于矢量與位置的關(guān)系,若有矢量P和Q,且P×Q>0,則P在Q的順時(shí)針方向,反之則在逆時(shí)針方向。以圖5為例,若點(diǎn)M在多邊形ABCD內(nèi)部,則有如下關(guān)系。
[AB×AM>0],[BC][×BM>0],[DA×DM>0]
其中,[AB×AM=x-x1? ?y-y1x2-x1? ?y2-y1=(x-x1)(y2-y1)-(x2-x1)(y-y1)] 。同理可得到其余的矢量叉積,若以下叉積同號,則表達(dá)如下。
[(x-x1)(y2-y1)-(x2-x1)(y-y1)(x-x2)(y3-y2)-(x3-x2)(y-y2)(x-x3)(y4-y3)-(x4-x3)(y-y3)(x-x4)(y1-y4)-(x1-x4)(y-y4)]
則說明點(diǎn)M(x,y)在凸四邊形ABCD內(nèi)部,將此算法封裝至isPointInPolygon(List<Point> pointList,Point targetPoint)方法內(nèi),傳入?yún)?shù)即可返回得到目標(biāo)點(diǎn)targetPoint與pointList四個(gè)點(diǎn)組成的凸四邊形的包含關(guān)系。
3.4 空間索引
空間索引是指根據(jù)空間對象的位置和形狀或空間對象之間的某種空間關(guān)系按一定的順序排列的一種數(shù)據(jù)結(jié)構(gòu)[10],其中包含空間對象的概要信息,如對象的標(biāo)識(shí)、外接矩形及指向空間對象實(shí)體的指針。目前,國內(nèi)外對空間數(shù)據(jù)庫的索引結(jié)構(gòu)大多采用網(wǎng)格空間索引、四叉樹空間索引、R樹系列空間索引。
在確定好視野范圍后(圖6所示的視錐體與地面截面覆蓋部分),需要通過空間索引來確定被包含在視野范圍內(nèi)的地圖瓦片,從而實(shí)現(xiàn)動(dòng)態(tài)緩存。試驗(yàn)用的三維實(shí)景模型為OSGB格式的數(shù)據(jù),處理后分為283塊模型瓦片,由于各瓦片之間權(quán)重值一致,適用于網(wǎng)格空間索引。
在直接計(jì)算視野內(nèi)包含的瓦片數(shù)量前,先通過計(jì)算視野中最小外接矩形來縮小檢索范圍,避免計(jì)算量過大,空間索引網(wǎng)格如圖7所示。
圖7中每個(gè)小正方形代表一個(gè)模型瓦片,其長、寬分別為Tile_X與Tile_Y。圖7中梯形表示視野范圍,梯形外的矩形rangleLT-rangleRT-rangleRB-rangleLB表示視野最小的外接矩形。在獲取到外接矩形四角坐標(biāo)的情況下,即可得到被該外接矩形包含的完整瓦片集,該瓦片集在網(wǎng)格空間中的相對位置可根據(jù)其主對角線兩端的瓦片位置來確定,即target LT、target RT、target RB與target LB,其計(jì)算關(guān)系如下所示。
targetL=
Math.ceil[(rangleLT.getX-gridLT.getX)/Tile_X]
targetR=
Math.floor[(rangleRT.getX-gridLT.getX)/Tile_X]
targetT=
Math.ceil[(rangleLT.getY-gridLT.getY)/Tile_Y]
targetB=
Math.floor[(rangleLB.getY-gridLT.getY)/Tile_Y]
(11)
其中,Math.ceil與Math.floor分別表示向上取整與向下取整,通過取得targetL與targetR、targetT與targetB之間的整數(shù)集,并對其進(jìn)行排列組合,即可檢索得到外接矩形內(nèi)所有瓦片的位置與文件名,將這些瓦片位置通過isPointInPolygon方法與視野范圍對包含關(guān)系進(jìn)行判斷,即可得到視野內(nèi)的所有模型瓦片。
4 動(dòng)態(tài)監(jiān)聽
要想實(shí)現(xiàn)實(shí)時(shí)獲取用戶操作對實(shí)景三維模型進(jìn)行動(dòng)態(tài)釋放與緩存的目的,須通過ArcGIS Runtime SDK的SceneView.setOnTouchListener()方法對用戶在移動(dòng)設(shè)備屏幕上的觸摸操作進(jìn)行監(jiān)聽,Android.view.MotionEvent定義了用戶手指在屏幕上滑動(dòng)時(shí)產(chǎn)生的一系列事件。其中,ACTION_DOWN、ACTION_MOVE、ACTION_UP分別代表手指在屏幕上按下、按住滑動(dòng)、抬起動(dòng)作,當(dāng)用戶在屏幕上做出相應(yīng)動(dòng)作時(shí),系統(tǒng)會(huì)調(diào)用為該動(dòng)作設(shè)置的方法,從而實(shí)現(xiàn)通過監(jiān)聽用戶手勢來達(dá)到動(dòng)態(tài)緩存與釋放模型的目的,相關(guān)代碼如下。
ACTION_DOWN:
this.lastInVisionPoint = inVisionPoint;
/*獲取上一次抬起手勢時(shí)緩存的模型列表*/
ACTION_MOVE:
SceneView.getCurrentViewpointCamera();
/*實(shí)時(shí)獲取當(dāng)前攝像機(jī)的位置*/
List<Point> targetPoint =getTargetModelCenterPoint(getTargetRange(pointList));
/*實(shí)時(shí)獲取視野外接矩形內(nèi)所有模型瓦片的中心點(diǎn)位置*/
ACTION_UP:
for (Point point : targetPoint){
Boolean isInVision? = ToolUtils.isPointInPolygon(pointList, point) ;
If(isInVision) inVisionPoint.add(point);}
/*循環(huán)遍歷瓦片中心點(diǎn)列表,判斷中心點(diǎn)是否在視野內(nèi),是則使其加入緩存列表*/
clearModelNumber = ModelUtils.getClearModel(lastInVisionPoint, inVisionPoint);
for(Integer i: clearModelNumber)
scene.getOperationalLayers().get(i).cancelLoad();
inVisionPoint = ModelUtils.getNonExistentModel(lastInVisionPoint, inVisionPoint);
/*與上一次緩存的模型列表進(jìn)行對比,刪除不在視野內(nèi)的模型,在此次緩存列表中只保留上一次緩存列表未緩存過的模型*/
for(Point point : inVisionPoint){
String name = FileUtils.getModelFileName();
ArcGISSceneLayer sceneLayer = new ArcGISSceneLayer
(FileUtils.getMobileFilePath(this,“slpks”+File.separator + name));
scene.getOperationalLayers().add(sceneLayer);}
/*循環(huán)遍歷緩存列表,緩存列表中的模型*/
5 系統(tǒng)界面
本研究設(shè)計(jì)的APP是基于華為Matepad Pro安卓平板開發(fā)設(shè)計(jì)的,且運(yùn)行流暢。圖8為基于三維實(shí)景動(dòng)態(tài)緩存技術(shù)開發(fā)的全信息實(shí)景地理平臺(tái)界面,在三維實(shí)景的基礎(chǔ)上,結(jié)合多源數(shù)據(jù)在移動(dòng)端進(jìn)行豐富的地理信息表達(dá)。
圖9為APP在運(yùn)行過程中,由Android Studio提供的監(jiān)控工具Android Profiler顯示的內(nèi)存占用情況,上方圓點(diǎn)與圓點(diǎn)的滯留線分別表示用戶在屏幕上進(jìn)行單點(diǎn)與持續(xù)觸碰的手勢操作,其下為APP各模塊占用內(nèi)存情況。平板設(shè)備總內(nèi)存為8 GB,APP占用總內(nèi)存為600~700 MB,多數(shù)用于處理圖形,程序運(yùn)行情況流暢穩(wěn)定。
6 結(jié)語
實(shí)景三維的應(yīng)用建設(shè)對地理信息表達(dá)能力的提升具有重要意義。本研究提出了一種在移動(dòng)端對實(shí)景模型瓦片進(jìn)行優(yōu)化調(diào)度的方法,實(shí)現(xiàn)了在移動(dòng)設(shè)備上動(dòng)態(tài)緩存并可顯示大規(guī)模的實(shí)景數(shù)據(jù),解決了大體量精細(xì)模型在移動(dòng)端應(yīng)用時(shí)由內(nèi)存等條件限制帶來的一系列問題,將程序占用內(nèi)存帶來的問題限制在一定范圍內(nèi),保障程序運(yùn)行流暢穩(wěn)定?;谌S實(shí)景動(dòng)態(tài)緩存技術(shù),能夠以實(shí)景三維為基礎(chǔ),結(jié)合遙感影像、土地利用、房地一體等多源數(shù)據(jù),完善全信息實(shí)景地理環(huán)境服務(wù)平臺(tái)建設(shè),為實(shí)景三維在移動(dòng)端上的應(yīng)用提供有力的技術(shù)支持。
參考文獻(xiàn):
[1] 周烽松,敖敏思,楚彬,等.融合CORS的自然資源移動(dòng)調(diào)繪系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].測繪地理信息,2021(6):142-145.
[2] 孟慶巖,汪雪淼,孫云曉,等.基于街景數(shù)據(jù)的綠視率模型構(gòu)建及其影響因子研究[J].生態(tài)科學(xué),2020(1):146-155.
[3] 劉先林.移動(dòng)互聯(lián)時(shí)代的GIS[J].遙感信息,2017(1):1-4.
[4] 羅安平,魏斌,楊春成,等.Android平臺(tái)的多尺度地理信息三維顯示技術(shù)[J].測繪科學(xué)技術(shù)學(xué)報(bào),2014(1):107-110.
[5] 路廣.基于移動(dòng)端的三維虛擬校園系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].廊坊:北華航天工業(yè)學(xué)院,2018.
[6] 楊陽,曲平,楊愛玲,等.基于Android平臺(tái)的基礎(chǔ)測繪外業(yè)調(diào)繪核查系統(tǒng)的研究與開發(fā)[J].測繪與空間地理信息,2016(12):122-123,126.
[7] 任思思,張禹,鄭磊,等.基于ArcGIS Runtime SDK for Android離線編輯關(guān)鍵技術(shù)應(yīng)用研究[J].測繪與空間地理信息,2017(7):123-125.
[8] 王燕平,劉永和.射線法判斷平面中的點(diǎn)在多邊形內(nèi)外的算法[J].山西建筑,2007(33):364-365.
[9] 王群,王恒升.平面內(nèi)判斷點(diǎn)與封閉區(qū)域關(guān)系的快速算法[J].數(shù)學(xué)的實(shí)踐與認(rèn)識(shí),2021(6):137-143.
[10] 孫卓成.GIS中幾種空間數(shù)據(jù)索引方法探究[J].科協(xié)論壇(下半月),2008(2):97-98.