国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種基于服務(wù)的地面三維景觀模型網(wǎng)頁顯示系統(tǒng)

2023-03-06 02:56佘向飛
科技創(chuàng)新與應(yīng)用 2023年5期
關(guān)鍵詞:控件調(diào)用網(wǎng)頁

潘 欣,佘向飛

(長春工程學(xué)院 計算機(jī)技術(shù)與工程學(xué)院,長春 130012)

隨著無人機(jī)和激光雷達(dá)技術(shù)的普及,人們可以很容易地收集一個區(qū)域景觀的三維數(shù)據(jù);這些三維景觀可以作為旅游宣傳和虛擬交互的重要展示平臺,具有很高的應(yīng)用價值[1]。當(dāng)前,很多基于網(wǎng)頁和移動端的應(yīng)用均有較強(qiáng)的嵌入地面三維景觀交互顯示功能的需求,然而,傳統(tǒng)三維模型數(shù)據(jù)的顯示需要完成數(shù)據(jù)上傳、權(quán)限管理、控件與后臺數(shù)據(jù)傳輸內(nèi)等多種內(nèi)容,需要付出大量管理與代碼編寫代價,這嚴(yán)重限制了三維景觀的使用與推廣[2-3]。

通過將關(guān)鍵功能封裝構(gòu)造網(wǎng)頁控件可以降低程序編碼的復(fù)雜性提高工作效率[4]。為了解決上述問題,本研究提出了一種基于服務(wù)的地面三維景觀模型網(wǎng)頁顯示系統(tǒng)(A service-based web display system for ground 3D landscape models,(S3D-landscape)。

1 系統(tǒng)設(shè)計

1.1 系統(tǒng)總體結(jié)構(gòu)

基于服務(wù)的地面三維景觀模型網(wǎng)頁顯示系統(tǒng)總體包含4個組成部分,其結(jié)構(gòu)如圖1所示。

圖1 S3D-landscape的總體組成結(jié)構(gòu)

S3D-landscape共包含了以下4個組成部分。

1.1.1 基礎(chǔ)數(shù)據(jù)存儲部分

基礎(chǔ)數(shù)據(jù)存儲部分以服務(wù)器文件的形式存儲三維景觀數(shù)據(jù),對于一個地區(qū)的三維景觀其數(shù)據(jù)包含:基于Mesh結(jié)構(gòu)的三維模型數(shù)據(jù),用于三維顯示和交互;基于三維點(diǎn)云的數(shù)據(jù),該數(shù)據(jù)來自于數(shù)據(jù)生成的第一個階段(如利用無人機(jī)照片生成三維點(diǎn)云),這一數(shù)據(jù)是構(gòu)建Mesh和進(jìn)行一些典型空間計算的基礎(chǔ);地理區(qū)域信息,以Polygon格式存儲的景觀所對應(yīng)的區(qū)域。基礎(chǔ)數(shù)據(jù)存儲部分主要負(fù)責(zé)以“工程”的粒度管理在文件系統(tǒng)中的數(shù)據(jù),并可以將文件轉(zhuǎn)換為網(wǎng)絡(luò)數(shù)據(jù)流、利用三維模型形成快照圖像。

1.1.2 數(shù)據(jù)管理與空間范圍查詢部分

數(shù)據(jù)管理與空間范圍查詢部分的主要功能是對基礎(chǔ)數(shù)據(jù)存儲部分的內(nèi)容進(jìn)行增、刪、改、查的操作;對于Mesh和三維點(diǎn)云,該部分可以對模型的組成部分進(jìn)行調(diào)整和優(yōu)化,對于三維點(diǎn)云可視化刪除冗余數(shù)據(jù);對于空間位置信息,可以將其作為索引,進(jìn)行基于位置的空間范圍查詢。利用該部分,系統(tǒng)實現(xiàn)對所有基礎(chǔ)數(shù)據(jù)的一般數(shù)據(jù)管理操作。

1.1.3 三維展現(xiàn)部分

三維展現(xiàn)部分包含2個功能,一個是數(shù)據(jù)展現(xiàn),為每個景觀模型建立局部的坐標(biāo)系統(tǒng),將景觀模型放置在三維展現(xiàn)視角的中心位置;并通過調(diào)整攝像機(jī)位置和參數(shù),展現(xiàn)景觀的不同效果;二是優(yōu)化傳輸功能,根據(jù)應(yīng)用和帶寬的需求傳輸部分、全部和可見視角的數(shù)據(jù)。

1.1.4 網(wǎng)頁顯示服務(wù)部分

整合數(shù)據(jù)管理與空間范圍查詢部分與三維展現(xiàn)部分的功能,建立網(wǎng)頁顯示服務(wù)。該部分服務(wù)可以嵌入到HTML的<DIV>標(biāo)簽之中,以一個獨(dú)立的網(wǎng)頁控件實現(xiàn)三維景觀數(shù)據(jù)的顯示。該服務(wù)僅需要輸入景觀數(shù)據(jù)的編號、視角的參數(shù)就可以在網(wǎng)頁加載過程中傳輸三維模型數(shù)據(jù),并將對應(yīng)的內(nèi)容顯示出來,用戶可以和網(wǎng)頁控件交互來顯示三維景觀的不同內(nèi)容。

以上4個部分互相支撐,基礎(chǔ)數(shù)據(jù)存儲部分支持?jǐn)?shù)據(jù)管理與空間范圍查詢部分和三維展現(xiàn)部分;網(wǎng)頁顯示服務(wù)不直接和基礎(chǔ)數(shù)據(jù)交互,而是通過空間范圍查詢部分與三維展現(xiàn)部分交互部分的功能間接地獲取三維內(nèi)容;這樣的結(jié)構(gòu)一方面保證數(shù)據(jù)安全性,獲取服務(wù)方不能直接獲得數(shù)據(jù)真正的全部存儲路徑和內(nèi)容,另一方面保證靈活性,使得網(wǎng)頁顯示服務(wù)可以適應(yīng)更廣泛的場景和內(nèi)容。

1.2 系統(tǒng)靜態(tài)結(jié)構(gòu)設(shè)計

本系統(tǒng)以文件管理、三維顯示作為設(shè)計的核心,系統(tǒng)靜態(tài)的類結(jié)構(gòu)如圖2所示。

圖2 系統(tǒng)的類圖

系統(tǒng)的類結(jié)構(gòu)如下。

用于服務(wù)器文件管理的類:主要包含抽象的Server-File類,該類封裝了在服務(wù)器上文件管理的所有必要操作;該類的子類包含用于Mesh文件的MeshFile,用于三維點(diǎn)云的CloudFile和用于地理位置選定的ShapeFile;多組ServerFile共同組成FileGroup,每個FileGroup實例對應(yīng)一個地面景觀。

用于FileGroup管理的類:本系統(tǒng)使用Group類來管理FileGroup的增刪改查操作和基于空間范圍的檢索;該操作調(diào)用Modify和SpatialSearch來實現(xiàn)具體的操作。Group還開放了ManagerAPI接口,通過該接口可以調(diào)用Group類的所有功能。

用于三維顯示的類:本系統(tǒng)使用Display類來實現(xiàn)所有三維顯示功能,該類還開放了DisplayAPI作為調(diào)用接口。Display類通過調(diào)用ViewPoint類和Transmission類來實現(xiàn)具體的功能。對于Display所需的數(shù)據(jù)內(nèi)容,通過調(diào)用ManagerAPI接口間接獲得所有數(shù)據(jù)。

網(wǎng)頁服務(wù)功能類:系統(tǒng)通過WebDisplayServices類來對ManagerAPI接口和DisplayAPI接口進(jìn)行封裝,該類調(diào)用RESTFul實現(xiàn)網(wǎng)絡(luò)服務(wù)功能并利用Jason-Pararmeter類來封裝所有的參數(shù),進(jìn)而實現(xiàn)所有網(wǎng)頁服務(wù)功能。

在以上類的支持下,在網(wǎng)頁中嵌入地面三維景觀顯示控件并展現(xiàn)三維內(nèi)容的過程如下。

1)在網(wǎng)頁的<DIV>標(biāo)簽中嵌入控件,根據(jù)頁面加載事件觸發(fā)異步的三維數(shù)據(jù)加載顯示功能。

2)指定需要獲取的數(shù)據(jù)文件的編號參數(shù),指定顯示細(xì)節(jié)內(nèi)容參數(shù),利用JasonParameter進(jìn)行封裝。

3)將封裝參數(shù)傳輸給ManagerAPI接口和Dis playAPI接口調(diào)用對應(yīng)功能,通過RESTfulFunction讀取數(shù)據(jù)內(nèi)容,讀取完成后結(jié)束異步操作。

4)在<DIV>標(biāo)簽中調(diào)用畫板功能,繪制三維內(nèi)容。

5)依據(jù)用戶視角操作調(diào)整顯示細(xì)節(jié)參數(shù)并轉(zhuǎn)到步驟3)形成交互顯示的功能。

6)網(wǎng)頁顯示結(jié)束整個控件生命周期結(jié)束。

通過以上6個步驟,可以異步的、可交互的實現(xiàn)地面三維景觀的顯示功能。在S3D-landscape系統(tǒng)中,一次三維地面景觀顯示的協(xié)作過程如下。

一次三維地面景觀顯示的協(xié)作過程首先由系統(tǒng)使用者SystemUser發(fā)起(可以是使用系統(tǒng)的人也可以是外部調(diào)用服務(wù)的系統(tǒng)),SystemUser將視角的變化發(fā)送給Display類,Display類會綜合分析當(dāng)前所見內(nèi)容的地理位置和三維視覺中攝像機(jī)的位置朝向,經(jīng)過計算獲得空間范圍坐標(biāo)發(fā)送給SpatialSearch類,獲得的觀察者視角發(fā)送給ViewPoint類;ViewPoint類會在一個三維區(qū)域內(nèi)計算哪些地物可見或不可見,并建立可見內(nèi)容列表發(fā)送給SpatialSearch類。SpatialSearch類綜合空間位置和可見內(nèi)容進(jìn)行空間范圍查找,獲得在SystemUser可視范圍內(nèi)的三維景觀列表,并基于該列表選擇模型對照的文件組FileGroup。FileGroup依據(jù)內(nèi)部數(shù)據(jù)記錄找到服務(wù)器上的三維模型文件,之后啟動ServerFile類的實例關(guān)聯(lián)該文件;ServerFile負(fù)責(zé)分塊地傳輸文件中的所有內(nèi)容,其初始化之后首先建立Transmission的實例;Transmission類建立與Display的網(wǎng)絡(luò)鏈接,并逐步地將ServerFile關(guān)聯(lián)文件的內(nèi)容傳輸給Display;在傳輸結(jié)束之后Display觸發(fā)重繪事件,重新繪制所有數(shù)據(jù)內(nèi)容,將三維景觀的內(nèi)容顯示給SystemUser。在該協(xié)作過程的幫助下,系統(tǒng)綜合利用系統(tǒng)內(nèi)部的6個類對視角變化到數(shù)據(jù)顯示的過程進(jìn)行了封裝;這一過程屏蔽了三維數(shù)據(jù)范圍查詢、服務(wù)器文件傳輸和三維內(nèi)容刷新顯示的復(fù)雜性,對于SystemUser,僅僅將視角變化的內(nèi)容發(fā)送給系統(tǒng),就可以獲得對應(yīng)三維景觀數(shù)據(jù)內(nèi)容的顯示。通過這一協(xié)作過程,系統(tǒng)完成了控件化、服務(wù)化的地面三維景觀模型顯示功能,如圖3所示。

圖3 一次三維地面景觀顯示的協(xié)作過程

2 實驗

本研究使用Python 3.8實現(xiàn)所有功能,系統(tǒng)可以部署在服務(wù)器上,客戶可以通過瀏覽器訪問對應(yīng)的功能。本系統(tǒng)也可以對外部系統(tǒng)提供網(wǎng)絡(luò)服務(wù)功能,相關(guān)的服務(wù)功能可以通過Web Service模式提供地面景觀三維模型各種管理功能。

由于設(shè)計為基于服務(wù)的模式,系統(tǒng)的三維模型增、刪、改、查操作及交互和可視化功能均可以被其他系統(tǒng)調(diào)用。為了測試系統(tǒng)在簡化調(diào)用方面的價值,本研究將傳統(tǒng)直接編寫代碼模式和使用S3D-landscape嵌入模式進(jìn)行對比,對在網(wǎng)頁中嵌入地面三維景觀顯示的編碼工作量進(jìn)行分析;對比實驗引入長春地區(qū)某軟件企業(yè)5名有經(jīng)驗的程序員的工作數(shù)據(jù),數(shù)據(jù)中包含三維景觀模型各個階段開發(fā)工作的工作量記錄,對比使用傳統(tǒng)模式與S3Dlandscape之后的工作量變化,每一階段編程工作均取5名程序員工作量的均值計算。具體對比結(jié)果見表1。

表1 實現(xiàn)地面三維景觀顯示的工作量對比

由表1可知,對于不同的程序設(shè)計階段S3D-landscape均可以有效地降低程序員的工作量。

對于軟件產(chǎn)品的開發(fā):在三維景觀數(shù)據(jù)存儲階段,由于程序員需要考慮數(shù)據(jù)存儲位置、數(shù)據(jù)存儲權(quán)限及文件編號等問題,所以出傳統(tǒng)模式需要48.25 h;而在本系統(tǒng)輔助下僅需1.50 h。在三維景觀數(shù)據(jù)傳輸階段,該階段的關(guān)鍵問題是如何將三維模型文件序列化為網(wǎng)絡(luò)流,此時需要進(jìn)行大量的傳輸狀態(tài)、流狀態(tài)、斷點(diǎn)續(xù)傳和多線程協(xié)同操作;此階段需要程序員工作77.5 h,以每天10 h計算,需要1名程序員超過一周的時間才可完成;對于此階段內(nèi)容利用本系統(tǒng)僅需要2.25 h,工作量和工作難度大大降低。對于網(wǎng)頁嵌入階段,該軟件企業(yè)原有的模式是調(diào)用成型的三維顯示控件,該控件本身具備較多的輔助功能,但是這些輔助功能不是專門為地面景觀三維顯示服務(wù)的,程序員需要在眾多參數(shù)中篩選并同時閱讀開發(fā)文檔,所以開發(fā)時間為34.75 h;而本系統(tǒng)由于功能相對較少,調(diào)用容易,所以僅需1.75 h。在交互實現(xiàn)部分,需要實現(xiàn)用戶鼠標(biāo)與顯示界面的交互,同時計算視角、方向坐標(biāo)的變化并進(jìn)一步顯示內(nèi)容,該部分在使用其他第三方控件的時候仍然會遇到原始控件功能過多,程序員調(diào)用和調(diào)試較為耗費(fèi)時間的問題,開發(fā)時間需要48.00 h;而利用本系統(tǒng),由于專門面向地面三維景觀交互,典型的交互手段已經(jīng)進(jìn)行了封裝,所以程序員僅需要1.25 h便可實現(xiàn)對應(yīng)功能。可以看出S3D-landscape可以極大地簡化需要使用地面三維景觀的軟件開發(fā)階段的工作量,S3D-landscape更加簡化且更易于調(diào)用。

對于軟件產(chǎn)品的迭代與優(yōu)化:對于整個產(chǎn)品的功能優(yōu)化傳統(tǒng)方法需要16.25 h,而由于本系統(tǒng)提供的功能已經(jīng)進(jìn)行了較多專門針對性的優(yōu)化,所以僅需要1.50 h。在產(chǎn)品需求迭代階段,可能根據(jù)新的需求對產(chǎn)品的內(nèi)容邏輯進(jìn)行修改,此時代碼的封裝性十分重要;如果直接編寫代碼勢必會導(dǎo)致地面三維景觀模型顯示的功能與軟件產(chǎn)品的業(yè)務(wù)邏輯緊耦合,增加功能修改難度;本系統(tǒng)將所有三維顯示功能進(jìn)行了封裝,使得軟件產(chǎn)品各個模塊直接耦合度降低,從而提高產(chǎn)品需求迭代的效率。在數(shù)據(jù)維護(hù)階段,系統(tǒng)已經(jīng)將相關(guān)操作原子化,所以相比傳統(tǒng)方法的8.00 h,利用本系統(tǒng)僅需要1.25 h。

由表1中可以看出,在開發(fā)軟件產(chǎn)品時,實現(xiàn)地面三維景觀顯示這一功能的各個階段均需要大量的編程工作,而利用S3D-landscape可以顯著降低工作量。從總體上看,直接編寫代碼模式總計需要243.50 h,即便對于一個有經(jīng)驗的開發(fā)團(tuán)隊也是較難在短時間內(nèi)完成的。而利用S3D-landscape總計僅需要12.15 h,僅需要一名有經(jīng)驗的程序員2 d便可完成。以上實驗結(jié)果表明,說明本系統(tǒng)能夠顯著降低網(wǎng)頁應(yīng)用中展現(xiàn)三維數(shù)據(jù)的工作量,可以有效提高相關(guān)軟件產(chǎn)品研發(fā)的效率。

3 結(jié)論

在很多宣傳和旅游的應(yīng)用與網(wǎng)頁程序中均需要顯示地面三維景觀數(shù)據(jù)以提高訪問者的體驗,然而實現(xiàn)這一功能需要大量的開發(fā)工作來支撐。本研究提出了一種基于服務(wù)的地面三維景觀模型網(wǎng)頁顯示系統(tǒng),通過對數(shù)據(jù)訪問、存儲、顯示及網(wǎng)絡(luò)交互功能的封裝,該系統(tǒng)將復(fù)雜的編程工作轉(zhuǎn)變?yōu)楹唵蔚腁PI調(diào)用工作;實驗表明,利用本系統(tǒng)可以大大地降低開發(fā)人員的工作量,使相關(guān)團(tuán)隊可以用較小的成本開發(fā)相關(guān)產(chǎn)品,且具有較高的使用價值。

猜你喜歡
控件調(diào)用網(wǎng)頁
基于HTML5與CSS3的網(wǎng)頁設(shè)計技術(shù)研究
基于.net的用戶定義驗證控件的應(yīng)用分析
核電項目物項調(diào)用管理的應(yīng)用研究
LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
關(guān)于.net控件數(shù)組的探討
基于CSS的網(wǎng)頁導(dǎo)航欄的設(shè)計
基于HTML5靜態(tài)網(wǎng)頁設(shè)計
基于URL和網(wǎng)頁類型的網(wǎng)頁信息采集研究
基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
利用RFC技術(shù)實現(xiàn)SAP系統(tǒng)接口通信