




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
我,本及其研究工作是由本人在導(dǎo)師指導(dǎo)下獨(dú)立完成的,在完成時(shí)所利用的一切資料均已在參考文獻(xiàn)中列出。作者:時(shí)間:20146DesignandImplementationofDynamicSituationDisplaySystemBasedonSkylineTutor:ShenXu-Withtheimprovementinthelevelofsocialinformation,modelingandsimulationofsituationhasbeenwidelyusedinvariousindustries.ThispaperaimstodevelopadynamicsituationdisplaysystembasedontheB/Sstructuretoachieveacquisition,optimizationanddisplayofdynamicsituation.Thesystemincludesthefollowingmainfeatures:two-andthree-dimensionaldisplayandseamlesshandoverutility;abilitytoobtaindynamicsituationinastreamingwayviaWebSocketandpushthedatatotheclientinrealtime.Thisarticlediscusseswhatthesystemneedstoachieve,thendesignsthemainframeworkofthesystembasedonthemodel-vie ttern,andresearchestheimplementationofkeyalgorithmsinthesystem.Thus,thestructureandimplementationoftheentiresystemarepresentedfromthesediscussions.:Skyline,DynamicSituation 緒 課題來(lái) 研究背景與意 地理信息系統(tǒng)簡(jiǎn) 態(tài)勢(shì)的定義和介 態(tài)勢(shì)顯示系統(tǒng)的組成和職 國(guó)內(nèi)外研究現(xiàn) Skyline簡(jiǎn)介以及在態(tài)勢(shì)顯示中的應(yīng) OpenLayers簡(jiǎn)介以及二維地圖顯示中的應(yīng) 研究目標(biāo)與內(nèi) 研究目 研究?jī)?nèi) 組織結(jié) 相關(guān)背景知 B/S架構(gòu)簡(jiǎn) JavaScript和AJAX技 Skyline二次開(kāi)發(fā)系 系統(tǒng)需求分 態(tài)勢(shì)數(shù)據(jù)源的簡(jiǎn)介和特 功能需 地圖顯示的基礎(chǔ)功 態(tài)勢(shì)數(shù)據(jù)處理部 動(dòng)態(tài)態(tài)勢(shì)顯示部 性能需 運(yùn)行環(huán)境需 JSON中間結(jié)構(gòu)的設(shè) JSON中間結(jié)構(gòu)的簡(jiǎn)介和意 基本結(jié)構(gòu)的設(shè) 具體定 實(shí)體樹(shù)結(jié)構(gòu)的定 事件結(jié)構(gòu)的定 系統(tǒng)整體架構(gòu)的分析與設(shè) 整個(gè)態(tài)勢(shì)仿真系統(tǒng)的前后端職責(zé)分 服務(wù)端系統(tǒng)的基本架 構(gòu)架前端系統(tǒng)的兩種方 直接操作地圖的模 模型-視圖模 前端系統(tǒng)整體架構(gòu)的設(shè) 事件源和全局事件管理 的事件 5.結(jié)構(gòu)的設(shè) 事件結(jié)構(gòu)概 更新事件的構(gòu)成方 Diffed事 Event事件結(jié) TreeSelected事 關(guān)鍵系統(tǒng)和算法的研究與實(shí) 森林結(jié)構(gòu)比較方法的研究與實(shí) 算法需要解決的問(wèn) 算法的偽代碼實(shí) 時(shí)間點(diǎn)離散插值算法的研究........................................................................算法的提出背 插值算法的設(shè)計(jì)思想和要 插值算法的偽代碼實(shí) 基于插值算法的實(shí)體數(shù)據(jù)擴(kuò)展算 關(guān)鍵幀搜索歸并算法的研究與實(shí) 算法的提出背 算法的設(shè)計(jì)目標(biāo)和要 算法的設(shè)計(jì)思 系統(tǒng)中組件系統(tǒng)的設(shè)計(jì)與實(shí) 組件系統(tǒng)概 組件系統(tǒng)的設(shè)計(jì)目 組件系統(tǒng)的整體思路和API設(shè) 實(shí)時(shí)推送系統(tǒng)的研究與實(shí) 瀏覽器推送技術(shù)概 推送技術(shù)在態(tài)勢(shì)顯示系統(tǒng)中應(yīng) 實(shí)時(shí)推送系統(tǒng)的設(shè)計(jì)目 實(shí)時(shí)推送系統(tǒng)的實(shí)現(xiàn)思 總 致 參考文 (WebMapService,網(wǎng)絡(luò)地圖服務(wù)WMS協(xié)議獲取地圖,1.2.2節(jié)中,介紹到態(tài)勢(shì)包含靜態(tài)態(tài)勢(shì)和動(dòng)態(tài)動(dòng)態(tài)態(tài)勢(shì),需要顯示運(yùn)動(dòng)中的車(chē)輛、飛行器的和相應(yīng)的三維模型Skyline、Skyline是優(yōu)秀的三維虛擬地球平臺(tái)軟件,能夠利用航空影像數(shù)據(jù)、高程數(shù)據(jù)和2D或3D圖像、模型等,創(chuàng)建一個(gè)交互式的虛擬地球環(huán)境。Skyline支持C++、C#和JavaScriptC/SB/S架構(gòu)的開(kāi)發(fā)。、現(xiàn)在Skyline已經(jīng)是一套比較成GIS應(yīng)用軟件解決方案,在各行各業(yè)都有使用Skyline進(jìn)行開(kāi)發(fā)的成功案例,如智慧三維地理信息系統(tǒng)“神七問(wèn)天”三維顯示系統(tǒng)“數(shù)字武夷山”綜合信息服務(wù)系統(tǒng)、512抗震救災(zāi)應(yīng)急服務(wù)系統(tǒng)等。OpenLayers,OpenLayers以其強(qiáng)大的功能,方便的API,在各個(gè)領(lǐng)域的WebGIS系統(tǒng)中均有較多圖方案的研究[2]。設(shè)計(jì)并實(shí)現(xiàn)一個(gè)基于Skyline和OpenLayers的,運(yùn)行于瀏覽器上的動(dòng)態(tài)態(tài)勢(shì)顯示系(一地圖顯示模塊的研究地圖顯示模塊主要研究Skyline和OpenLayers的無(wú)縫切換和聯(lián)合。這個(gè)態(tài)勢(shì)顯示系統(tǒng)包括二維顯示和三維顯示因此本態(tài)勢(shì)顯示系統(tǒng)的GIS地圖顯示部分需要使用SkylineOpenLayers兩個(gè)插件,分別用于支持三維地圖和二維地圖的顯示。在態(tài)勢(shì)顯示過(guò)程(二態(tài)勢(shì)數(shù)據(jù)處理模塊的研究第二步,研究如何從數(shù)據(jù)源全部數(shù)據(jù),轉(zhuǎn)換到中間數(shù)據(jù)結(jié)構(gòu);由于涉及到從數(shù)據(jù)源直接,因此這部分主要通過(guò)服務(wù)端完成。(三態(tài)勢(shì)數(shù)據(jù)顯示模塊的研究SkylineOpenLayersAPI研究組件,使得地圖中能夠顯示動(dòng)態(tài)態(tài)勢(shì)本課題主要設(shè)計(jì)并實(shí)現(xiàn)一個(gè)基于Skyline和OpenLayers的動(dòng)態(tài)態(tài)勢(shì)顯示系統(tǒng)。本文GISSkyline當(dāng)前的應(yīng)用現(xiàn)狀,分析了當(dāng)前存在JSON中間數(shù)據(jù)結(jié)構(gòu)進(jìn)行詳細(xì)定義和解釋。B/SB/S(Browser/Server,瀏覽器/服務(wù)器)架構(gòu)是一種新興的軟件組織結(jié)構(gòu)。它借助了現(xiàn)系統(tǒng)的邏輯放在服務(wù)端的組織結(jié)構(gòu)與B/S架構(gòu)相對(duì)應(yīng)的是C/S(Client/Server,客戶B/SHTMLJavaScriptV8高性能B/S架構(gòu)開(kāi)發(fā)。B/S軟件的和升級(jí)簡(jiǎn)單而靈活。和升級(jí)時(shí)無(wú)需考慮客戶端軟件的升級(jí),只JavaScriptAJAXB/SJavaScript語(yǔ)言進(jìn)行前JavaScriptAJAX技術(shù)。JavaScript最初是設(shè)計(jì)為一個(gè)運(yùn)行于網(wǎng)頁(yè)瀏覽器端的編程語(yǔ)言,通常用于給靜HTML頁(yè)面添加動(dòng)態(tài)的功能。最初,JavaScript只是希望用于在當(dāng)時(shí)較慢的網(wǎng)速下AJAX(AsynchronousJavaScriptAndXML,JavaScriptXML),是一種不用刷Web交互方式是通過(guò)表單進(jìn)行交互。當(dāng)用戶提交表單時(shí)就能夠?qū)?nèi)容上傳對(duì)于動(dòng)態(tài)態(tài)勢(shì)顯示系統(tǒng)這樣一個(gè)WebSkyline作為一個(gè)成Skyline三維數(shù)字平臺(tái)軟件,Skyline提供了豐富的API以支持二次開(kāi)發(fā)。Skyline底層使用C++實(shí)現(xiàn),因此具有較高的性能。Skyline的二次開(kāi)發(fā)API也用C++類和函數(shù)的方式提供,并提供了C#和JavaScript的綁定。在本系統(tǒng)中,使用Skyline嵌入瀏覽器的方式來(lái)提供三維顯示的功能,并使用SkylineAPI的JavaScript綁定完成三維態(tài)勢(shì)顯示部分的實(shí)現(xiàn)。Skyline提供的API功能豐富,包含對(duì)虛擬地球的定 JSON間。該仿真引擎能夠?qū)?dòng)態(tài)態(tài)勢(shì)數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)中。在數(shù)據(jù)庫(kù)中,一個(gè)數(shù)據(jù)表代表了一類實(shí)體的動(dòng)態(tài)態(tài)勢(shì),多個(gè)數(shù)據(jù)表結(jié)合起來(lái)就表示了所有種類實(shí)體的動(dòng)態(tài)態(tài)勢(shì)。動(dòng)態(tài)態(tài)勢(shì)數(shù)據(jù)需要從這些數(shù)據(jù)庫(kù)中獲取。然而,對(duì)于在某個(gè)數(shù)據(jù)表A內(nèi)存在的一個(gè)時(shí)間點(diǎn)t來(lái)說(shuō),另一個(gè)數(shù)據(jù)表B中可能會(huì)不存在該時(shí)間點(diǎn)。這就代表,數(shù)據(jù)表B中包含的所有實(shí)體在時(shí)間點(diǎn)t上靜止不動(dòng)。3.1態(tài)勢(shì)仿真引擎寫(xiě)入的數(shù)據(jù)表另外,該仿真引擎還支持?jǐn)?shù)據(jù)的實(shí)時(shí)傳遞功能,可以使用Socket將數(shù)據(jù)傳送到Socket6.5Socket傳遞功Skyline標(biāo)號(hào)圖。在地圖的任意位置上安置一張任意,并能夠在下方顯示出該模型。模型在二維地圖上以的形式展現(xiàn),而到了三維地圖上,則以三維模路徑和多邊形。給定一組坐標(biāo),能夠在地圖上顯示出路徑和多邊形來(lái)表圓形。給定一個(gè)中心和半徑,能夠在地圖上繪制出一個(gè)圓形二維地圖和三維地圖顯示出相同的靜態(tài)態(tài)勢(shì);在動(dòng)態(tài)態(tài)勢(shì)的過(guò)程中,也能Socket接口獲取數(shù)據(jù),再實(shí)時(shí)地傳送到各個(gè)客戶端中。上,并能夠顯示出來(lái);對(duì)于動(dòng)態(tài)態(tài)勢(shì),需要有一個(gè)方便的控制器,能夠控制動(dòng)態(tài)態(tài)勢(shì)的、暫 B/SJavaScript作為前端語(yǔ)言,因此需要額外能問(wèn)題。具體需求如下:動(dòng)態(tài)態(tài)勢(shì)時(shí),在同屏50個(gè)動(dòng)態(tài)實(shí)體的情況下,需要能夠以至少20幀/秒的速度進(jìn)行;無(wú)論數(shù)據(jù)接收是使用數(shù)據(jù)庫(kù)還是Socket傳輸?shù)姆绞?,都需要能夠支持多個(gè)瀏覽器客戶端的。SkylineSkylineInternetExplorerSkyline插件的InternetExplorer10及以上版本的瀏覽器。IESkylineIE瀏覽器,也能夠JSONJSON語(yǔ)言的一個(gè)子集因此可以很容易地轉(zhuǎn)化成為JavaScript結(jié)構(gòu)JSON也是JavaScriptJSONJSON可以作為態(tài)勢(shì)數(shù)據(jù)處理部分和態(tài)勢(shì)顯示部分之間相互傳遞的數(shù)據(jù);在態(tài)勢(shì)顯示部分轉(zhuǎn)換為JavaScript對(duì)象JSON數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)以動(dòng)態(tài)態(tài)勢(shì)顯示作為主要目標(biāo),主要用于所有實(shí)體在各時(shí)間點(diǎn)的方案,轉(zhuǎn)而使用JavaScript對(duì)象進(jìn)行。因此設(shè)計(jì)動(dòng)態(tài)態(tài)勢(shì)數(shù)據(jù)結(jié)構(gòu)如下4.1動(dòng)態(tài)態(tài)勢(shì)數(shù)據(jù)結(jié){<時(shí)間戳對(duì)應(yīng)時(shí)間戳內(nèi)的所有實(shí)體4.2[<12>3>{children:null>,其他鍵值對(duì)在數(shù)據(jù)源中,實(shí)體的事件被單獨(dú)拉出來(lái)成為一個(gè)新的數(shù)據(jù)表。從這個(gè)表中到的4.3事件數(shù)據(jù)結(jié){<時(shí)間戳對(duì)應(yīng)時(shí)間戳內(nèi)發(fā)生的事件集合[1,2,4.4JSON中間結(jié)JSON{data:實(shí)體數(shù)據(jù)部分events:事件數(shù)據(jù)部分整個(gè)結(jié)構(gòu)的示意圖如圖4.1…JSON…JSON…………4.5實(shí)體樹(shù)結(jié)ID,在所有實(shí)體中唯一。IDJSON實(shí)體的類型。根據(jù)這個(gè)屬性決定是用什么和模型代表這個(gè)如果實(shí)體類型是標(biāo)號(hào)或者模型,需要指定此屬性作為如果實(shí)體類型是多邊形或路徑,指定所有頂點(diǎn)的其中,position是一個(gè)和方向等信息的集合,具體定義如下4.6位置信息結(jié)xy0實(shí)體的俯仰角,以度為單位,取值范圍是-9090件中,加油車(chē)是發(fā)生源,飛機(jī)是目標(biāo)對(duì)象,“加油”本身為事件類型。據(jù)此可以設(shè)計(jì)出事件結(jié)構(gòu)的定義如下:4.7實(shí)體事件結(jié)JavaScript完成。為了靈活性和數(shù)據(jù)的動(dòng)態(tài)加載的要求,系統(tǒng)設(shè)計(jì)為讓網(wǎng)頁(yè)JavaScriptJSONJSONJSON中間結(jié)構(gòu)。因此,服務(wù)器端除了需要托管靜態(tài)網(wǎng)頁(yè),數(shù)據(jù)結(jié)構(gòu)的轉(zhuǎn)換和普通網(wǎng)頁(yè)一樣,通過(guò)URL進(jìn)行。通過(guò)相應(yīng)的URL,網(wǎng)JavaScript,在客戶端直接完成。HTML靜態(tài)界面,并提供態(tài)勢(shì)數(shù)據(jù)的獲取和轉(zhuǎn)換功HTML界面中直接完成。Apache服務(wù)器經(jīng)過(guò)一番設(shè)URL來(lái)進(jìn)行轉(zhuǎn)換完成的態(tài)勢(shì)數(shù)據(jù)的獲取。糅合了樹(shù)狀結(jié)構(gòu)、動(dòng)態(tài)態(tài)勢(shì)、二維、三維地圖顯示、地圖編輯、實(shí)體事件顯示等一系列部分??梢哉f(shuō)幾乎所有的復(fù)雜性都集中端系統(tǒng)。因此需要前端系統(tǒng)有一個(gè)清晰狀圖和動(dòng)態(tài)態(tài)勢(shì)組件中,并將態(tài)勢(shì)組件和zTree一同作為地圖控制源。該方案的控制流程如圖5.1所示。5.1直接操作地圖模式的控制流4章分析的JSON中間結(jié)構(gòu)可見(jiàn),器可以很方便地取到下一幀的內(nèi)容,并且一個(gè)時(shí)zTree樹(shù)狀圖中,然后調(diào)用同樣的函數(shù)將動(dòng)態(tài)態(tài)勢(shì)顯示到地圖上。zTree上刪除一個(gè)節(jié)點(diǎn)時(shí),可以用該節(jié)點(diǎn)和所有子節(jié)點(diǎn)的地圖句柄調(diào)用地圖API,在地圖上刪除這些節(jié)點(diǎn)。控制器等地方,使得結(jié)構(gòu)更加。因此這個(gè)方案最終被放棄了模型-思路細(xì)節(jié)將在5.4節(jié)中進(jìn)行闡述。在模型-視圖模式下的系統(tǒng)控制流程如圖5.25.2事件-視圖模式下的控制流JavaScript的特性,我們并不能直接得知態(tài)勢(shì)數(shù)據(jù)結(jié)構(gòu)是否得到了修改。因此emit方法進(jìn)行相應(yīng)的事件發(fā)送。 圖5.3態(tài)勢(shì)視 圖5.4樹(shù)狀結(jié)構(gòu)視圖5.5控制組的事件態(tài)勢(shì)視圖就是包括OpenLayers和Skyline組合而成的態(tài)勢(shì)顯示系統(tǒng)。態(tài)勢(shì)視圖在注position屬性。zTree同時(shí)還支持對(duì)樹(shù)形結(jié)構(gòu)中的節(jié)點(diǎn)進(jìn)行改名、移動(dòng)位置、刪除的功能。通過(guò)設(shè)zTreezTree的同時(shí)修改當(dāng)前態(tài)勢(shì)的森林結(jié)構(gòu),以便達(dá)樹(shù)狀結(jié)構(gòu)視圖需要向全局事件管理器更新事件,以便在當(dāng)前態(tài)勢(shì)被修改后zTree的“Event”事件,這個(gè)事件由控制組件觸發(fā)。關(guān)于該事件的具體事件內(nèi)容見(jiàn)5.5.4要達(dá)到這一要求實(shí)體屬性視圖需要兩個(gè)事件一個(gè)是事件管理器的更新事件,zTree中選擇節(jié)點(diǎn)的“TreeSelected”5.5.5小節(jié)。5.結(jié)構(gòu)的設(shè)所謂事件結(jié)構(gòu),就是觸發(fā)事件之后,事件能夠收到的一個(gè)數(shù)據(jù)結(jié)構(gòu)。這個(gè)據(jù)結(jié)構(gòu)中一般包含這個(gè)事件的進(jìn)一步信息。有些事件比較簡(jiǎn)單,因此可以沒(méi)有事件結(jié)構(gòu)??梢垣@得所有實(shí)體的信息,從而自行決定如何更新。完全更新方式的優(yōu)點(diǎn)是信息比較全面,各個(gè)視圖有更大的自由度決定如何顯示。缺點(diǎn)是視圖不能得知具體是哪些實(shí)體被更新了,于是只能把所有的實(shí)體都更新一遍,這樣在態(tài)勢(shì)包含的實(shí)體比較多的時(shí)候效率很低。結(jié)構(gòu)中封裝的不是所有的態(tài)勢(shì)信息,而是表明了這次態(tài)勢(shì)相對(duì)更新之前的態(tài)勢(shì)具體更新的內(nèi)容。增量更新的優(yōu)點(diǎn)是各個(gè)視圖能夠得知具體需要修改什么,能夠精確對(duì)準(zhǔn)一個(gè)點(diǎn)進(jìn)行更新,效率高;缺點(diǎn)是每個(gè)組件在修改之后,都要明確指明具體修改了什么地方,稍顯繁瑣。由于客戶端的態(tài)勢(shì)顯示系統(tǒng)使用HTML和JavaScript進(jìn)行顯示,因此效率問(wèn)題相比5.5.3小節(jié)所Diffed事件。DiffedDiffed{added{added增加的節(jié)點(diǎn)changed:<修改的節(jié)點(diǎn)數(shù)據(jù)removed:刪除的節(jié)點(diǎn)ID這一特點(diǎn),{<{<ID>:樹(shù)節(jié)點(diǎn){<ID>:樹(shù)節(jié)點(diǎn)修改的節(jié)點(diǎn)數(shù)據(jù)需要深入節(jié)點(diǎn),具體到哪個(gè)屬性被修改了。結(jié)構(gòu)如下{<{<ID>:被修改的屬性修改之后該屬性的值ID1{added{addedchanged:{1{position:新位置removed6.1節(jié)中詳細(xì)闡述。Event高亮顯示出來(lái)。Event4.3.2小節(jié)中定義的事件結(jié)構(gòu)完全一致。zTreeTreeSelected事件。該事件{tree:{tree:操作的樹(shù)形結(jié)構(gòu)node選擇的樹(shù)節(jié)點(diǎn)treenodeDiffed事件這一數(shù)據(jù)結(jié)構(gòu)提供增量JSON再進(jìn)行動(dòng)態(tài)態(tài)勢(shì)的顯示時(shí),控制器獲取到的每個(gè)時(shí)間點(diǎn)的數(shù)據(jù)就是一個(gè)森林結(jié)構(gòu)。Diffed數(shù)據(jù)結(jié)構(gòu)。經(jīng)過(guò)研究,提出46.1森林結(jié)構(gòu)和樹(shù)節(jié)[<12>3>{children:null>,其他屬性值Diffed如果兩個(gè)森林中出現(xiàn)了相同ID的樹(shù)節(jié)點(diǎn)并且屬性有所修改則將其歸類Diffedchanged屬性中,代表這些節(jié)點(diǎn)被修改了。如果發(fā)現(xiàn)新的森林增加了新的樹(shù)節(jié)點(diǎn)(ID不存在于舊的森林中Diffedadded屬性中,代表這些節(jié)點(diǎn)被新增DiffedremovedA輸出:Diffedfunctionfunctiondiff(A,B)D←Diffed結(jié)構(gòu)R,S←{}T←forANR[N.id]←}forBNS[N.id]←}forR∪SifN.idRS中都存在Ddiff(R[N.id].children,S[N.id].children)forNchildrenfieldifNfieldRSD.changed[N.id][field]←elseif(NRS中不存在D.removed[N.id]←elseif(NSR中不存在D.added[N.id]←return時(shí)間點(diǎn)離散插值算法的研究在動(dòng)態(tài)態(tài)勢(shì)的最簡(jiǎn)單情況下可以認(rèn)為數(shù)據(jù)源中的一個(gè)時(shí)間點(diǎn)對(duì)應(yīng)態(tài)勢(shì)一幀即態(tài)勢(shì)中拿到的每一幀都存在于N中間結(jié)構(gòu)中然而這種簡(jiǎn)單的做法可能會(huì)造成數(shù)據(jù)源中時(shí)間點(diǎn)和不同步的問(wèn)題在數(shù)據(jù)源中時(shí)間點(diǎn)之間間隔的最單位是1秒,而為了達(dá)到流暢的效果,一般設(shè)置器為20幀秒。如果讓時(shí)間和幀一一對(duì)應(yīng),則相當(dāng)于以20速率快進(jìn)。因此,需要設(shè)計(jì)一個(gè)插值算法,通前后兩幀將中間的幀補(bǔ)上。計(jì)算出相鄰兩個(gè)時(shí)間點(diǎn)之間新的實(shí)體狀態(tài),從而讓變得流暢。圖6.1說(shuō)明了插值前插值時(shí)間點(diǎn) 時(shí)間點(diǎn) 時(shí)間點(diǎn)插值時(shí)間點(diǎn) 位6.1插值前后的車(chē)輛位置關(guān)A、BCBACBACBAIDCID的實(shí)體的這個(gè)屬A、BAx,Byp為插值系數(shù),取值范圍在[0,1],代表靠近新值的程度。則有??=??+??(?????=這是因?yàn)閷?duì)于非數(shù)字來(lái)說(shuō),不存在“中間狀態(tài)”yaw6.2(三)所示。這是期望的結(jié)(一)正常情(二)正常插(三)排除朝向之后的插6.2各種插值之間的a,bp,functionfunctioninterpolate(a,b,p,D)ifa,bNULLA←elseifa,bAap*(ba)elseifa,b均為森林Aforaifb中含有與n相同ID的樹(shù)節(jié)點(diǎn)mxinterpolate(n,m,p,D)A←A∪{x}A←elseifa,bObjectA←空對(duì)象forak,ififA[k]← A[k]←interpolate(v,b[k],p,A←areturn為平滑流暢。這也是插值算法最終目的。輸入:舊的實(shí)體數(shù)據(jù)A,相鄰兩個(gè)時(shí)間點(diǎn)內(nèi)的新時(shí)間點(diǎn)的數(shù)量n,不進(jìn)行屬性Dfunctionexpand(A,n,D)N←空對(duì)象{}forAtn1←A[t]n2A[t1]ifn2存在N[t]←for[1,n)N[t+i/n]←interpolate(n1,n2,i/n,D)returnN1234567······6.3時(shí)間11被刪除。間點(diǎn)5,則實(shí)體2所處的位置還是時(shí)間點(diǎn)6的數(shù)據(jù)。因此,不能簡(jiǎn)單地忽略掉實(shí)體的刪1234567····6.4關(guān)鍵幀搜索歸并算法示意6.46的森林結(jié)構(gòu)時(shí),從每個(gè)實(shí)體之前法需要能夠?qū)?shù)據(jù)的動(dòng)態(tài)提供支持。為了方便算法的實(shí)現(xiàn),本文設(shè)計(jì)了關(guān)鍵幀圖層數(shù)據(jù)結(jié)構(gòu)。該結(jié)構(gòu)為一個(gè)6.2關(guān)鍵幀圖層結(jié){<{<ID>:[x1x2x3template:x1x2x3樹(shù)節(jié)點(diǎn),將每個(gè)樹(shù)節(jié)點(diǎn)按照以程進(jìn)行處理:ID初始化一個(gè)空的時(shí)間戳數(shù)NANuNfunctionfunctionsearch(A,u)s←0e←A.lengthift>ureturnA[e-1]whiles<em←(s+e)/ifA[m]uuA[m1]returnA[m]elseifu<A[m]e=ms=m+D,A,functiongetData(D,A,functiongetData(D,A,templateD[search(A['template'],t]ret←template的拷貝forretmD[search(A[n.id],t)]formuifn.id=returnret6.5VisualBasic中的控irtalBasicisualC#中就包括了許多組件,有文本框、按鈕、菜單等等。用戶在設(shè)計(jì)應(yīng)用程序時(shí),甚至只需要拖動(dòng)組件到屏幕上,大大簡(jiǎn)化了開(kāi)發(fā)工作。由于HTML原本只是用于設(shè)計(jì)為網(wǎng)頁(yè)呈現(xiàn)的平臺(tái)而不是像桌面語(yǔ)言那樣的應(yīng)用程序開(kāi)發(fā)平臺(tái),因此原生不提供組件系統(tǒng)。如果要使用原生JavaScript構(gòu)造一個(gè)可以交互的界面,則需要頻繁地操作DOM,并且組件本身的邏輯和應(yīng)用邏輯相互交叉,使得代 t中都表現(xiàn)為一個(gè)實(shí)例,在這個(gè)示例中將對(duì)這個(gè)組件的操作封裝起來(lái),方便了用戶在中對(duì)于該組件的操控。另外,組件系統(tǒng)本身將組建的定義和組建的使用分離開(kāi),降低了系統(tǒng)的耦合,提高了可性。目前已經(jīng)有了許多基于HTML的組件系統(tǒng),如G4Studio、jQueryUI等。但這些組統(tǒng)。端系統(tǒng)中,除了基礎(chǔ)地圖和zTree本身,用到的其他組件都是通過(guò)組件框架編寫(xiě)的,包括控制器、實(shí)體事件視圖、實(shí)體屬性視圖等。對(duì)于組件開(kāi)發(fā)者而言,組件系統(tǒng)要對(duì)方便地編寫(xiě)組件提供支持。一個(gè)組件的可能有比較復(fù)雜的邏輯,例如動(dòng)態(tài)態(tài)勢(shì)組件就需要有暫停、、快進(jìn)等操作按鈕,還需要一個(gè)可拖動(dòng)的進(jìn)度條。組件系統(tǒng)需要提供法,讓組件開(kāi)發(fā)者將這些邏輯集HTMLCSS編寫(xiě)的。在用戶希望引入一個(gè)組件時(shí),系統(tǒng)需要能自動(dòng)獲取組件的HTML結(jié)構(gòu),到用戶指定的位置上,然后返回組件的控制句API使用AJAX技術(shù)從相應(yīng)文件中獲得組件模板,并在用戶指定的地方varvarPlayPanel=components.define(‘.playPanel’,function(root,data){return操作接口“.playPanel”jQuery的選擇器,通過(guò)此選擇器能從網(wǎng)頁(yè)模板中選擇出相應(yīng)組件‘root’代表將模板到用戶界面后的DOM對(duì)象。通過(guò)操作此DOM對(duì)象來(lái)實(shí)現(xiàn)組件的邏輯。這個(gè)組件的所有行為和邏輯都通過(guò)對(duì)“root”對(duì)象進(jìn)行操作而得以實(shí)現(xiàn)。個(gè)控制器時(shí),需要對(duì)起始時(shí)間和終止時(shí)間進(jìn)行設(shè)置。操作接口是一個(gè)JavaScript對(duì)象類型,代表給用戶的,用于操作該控制組varplayPanel=PlayPanel(‘#PlayPanel’,{end:varplayPanel=PlayPanel(‘#PlayPanel’,{end:playPanel.play();playPanel.pause();其中,PlayPanel就是上面定義的組件,其第一個(gè)參數(shù)表示將PlayPanel控制組2000。B/SHTTP協(xié)議。AJAX方式請(qǐng)求數(shù)據(jù),都需要客戶端首先進(jìn)行請(qǐng)求。HTML應(yīng)用的逐漸豐富,在某些情況下,單純的請(qǐng)求-響應(yīng)模式逐漸顯構(gòu)的桌面應(yīng)用程序來(lái)說(shuō),可以借助TCP傳輸協(xié)議的雙工特性,直接通過(guò)TCP連接來(lái)實(shí)現(xiàn)全雙工的通信然而由于Web服務(wù)器只能通過(guò)客戶端的請(qǐng)求進(jìn)行響應(yīng)不能夠很 中提到的AJAX長(zhǎng)輪詢技術(shù)是一個(gè)比較成解決方案。簡(jiǎn)單來(lái)說(shuō),AJAX長(zhǎng)輪詢是通過(guò)AJAX進(jìn)行偽實(shí)時(shí)通信的方式,瀏覽器iframe元素進(jìn)行長(zhǎng)輪詢的技術(shù)。在HTML5時(shí)代,又發(fā)展出了WebSocket技術(shù)。上文提到的AJAX技術(shù)只是通過(guò)服務(wù)器的延遲響應(yīng)來(lái)實(shí)現(xiàn)偽實(shí)時(shí)通信,而WebSocket一種讓瀏覽器與服務(wù)器間直接建立TCP連接,從而進(jìn)行全雙工通訊的網(wǎng)絡(luò)技術(shù)。目前所有的主流瀏覽器都已經(jīng)支持WebSocket協(xié)議。在將來(lái),WebSocketAJAX長(zhǎng)輪詢成為主要的實(shí)時(shí)通信技術(shù)。圖6.6獲取完整數(shù)據(jù)的流6.7實(shí)時(shí)獲取態(tài)勢(shì)數(shù)據(jù)的流6.7
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 供應(yīng)商采購(gòu)合同協(xié)議
- 現(xiàn)代農(nóng)業(yè)種植技術(shù)操作手冊(cè)
- 建材供應(yīng)居間協(xié)議合同
- 互聯(lián)網(wǎng)企業(yè)員工培訓(xùn)服務(wù)合同
- 總工程師聘用合同
- 短期個(gè)人借款合同范本與短期臨時(shí)工合同7篇
- 2023年高考全國(guó)乙卷數(shù)學(xué)(文)真題(原卷版)
- XX學(xué)校民主生活會(huì)個(gè)人剖析材料模板2
- 裝修提升工程合同范本
- 原水供水協(xié)議合同范本
- 餐飲藥膳培訓(xùn)課件模板
- 防火門(mén)安全生產(chǎn)管理制度
- 跨部門(mén)溝通中的財(cái)務(wù)管理
- 血液透析并發(fā)糖尿病足護(hù)理查房課件
- 當(dāng)代藝術(shù)博覽會(huì)的學(xué)術(shù)性建構(gòu)歷程與問(wèn)題
- 寺廟線上運(yùn)營(yíng)策劃方案
- 七年級(jí)上冊(cè)生物期末測(cè)試卷(含答案)
- 路基分層-表格-
- 離婚協(xié)議書(shū)電子版下載
- 中醫(yī)藥膳學(xué)124張課件
- 汽車(chē)法規(guī)第一章
評(píng)論
0/150
提交評(píng)論