欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種移動地理信息空間索引方法

文檔序號:6431196閱讀:305來源:國知局
專利名稱:一種移動地理信息空間索引方法
技術(shù)領(lǐng)域
本發(fā)明屬于電信增值業(yè)務(wù)和計算機(jī)應(yīng)用技術(shù)領(lǐng)域,具體涉及一種移動地理信息空間索引方法。
背景技術(shù)
傳統(tǒng)的空間索引理論的背景是在以資源豐富的PC機(jī)或服務(wù)器這樣的硬件條件, 存儲量、CPU計算速度、屏幕顯示、有線電源等都和移動設(shè)備具有很大的不同。如果直接將這些空間索引技術(shù)應(yīng)用到移動GIS中,往往性能達(dá)不到原來設(shè)計的要求?,F(xiàn)有的技術(shù)缺點(1)現(xiàn)有的技術(shù)方法較多依賴于預(yù)先知道空間索引區(qū)域;(2)現(xiàn)有的技術(shù)方法具有固定的空間區(qū)域劃分,缺乏靈活性;(3)現(xiàn)有的技術(shù)方法在空間數(shù)據(jù)量發(fā)生變化后需要重新建立整個空間索引結(jié)構(gòu), 浪費(fèi)了大量計算時間;(4)現(xiàn)有的技術(shù)方法主要以硬件性能較好的臺式機(jī)為平臺,在移動設(shè)備上則缺乏適應(yīng)性;(5)現(xiàn)有的技術(shù)方法因以臺式機(jī)為平臺考慮,允許空間對象具有不同程度的重復(fù)存儲,浪費(fèi)了一定的存儲量。

發(fā)明內(nèi)容
為了解決現(xiàn)有技術(shù)存在的不足,本發(fā)明解決的技術(shù)問題是提供一種使用簡便、存儲效率高的移動地理信息空間索引方法。其技術(shù)方案如下一種移動地理信息空間索引方法,所述的方法主要分三個步驟(1)移動地理信息空間數(shù)據(jù)的存儲主要包括圖形數(shù)據(jù)和屬性數(shù)據(jù)的存儲,圖形數(shù)據(jù)采用本地文件的方式進(jìn)行存儲,采用用戶系統(tǒng)定制的序列化二進(jìn)制文件,所述序列化二進(jìn)制文件在進(jìn)行讀存時的必須按照相同的步驟,存入的數(shù)據(jù)的類型、順序必須與讀取的該數(shù)據(jù)的數(shù)據(jù)類型、順序相同,屬性數(shù)據(jù)采用嵌入式數(shù)據(jù)系統(tǒng)存儲,本地文件中的圖形數(shù)據(jù)通過唯一標(biāo)識ID與嵌入式數(shù)據(jù)庫中的圖形文件對應(yīng)的屬性表ID進(jìn)行管理;(2)移動地理信息空間索引結(jié)構(gòu)的建立D0QR索引樹核心利用空間對象的外接矩形MBR代表空間對象的本身所占區(qū)域范圍,按照空間區(qū)域和空間區(qū)域存儲空間對象的個數(shù)進(jìn)行組織存儲,利用空間區(qū)域的索引,可以在進(jìn)行空間信息查詢、顯示、分析時,從大量空間分布不均勻的空間對象中檢索出某一特定區(qū)域的空間對象;(3)移動地理信息空間索引方法的設(shè)計在一張建有空間索引的表中,若進(jìn)行空間數(shù)據(jù)插入、刪除、或修改,那么在索引中也要插入,刪除、或修改相應(yīng)的索引記錄項。進(jìn)一步優(yōu)選,在步驟O)中DOQR核心包括四個步驟A、在沒有工作范圍邊界限定的全開放空間范圍(簡稱開放空間)上,將空間對象聚集到一個開放的空間區(qū)域中,整個開放空間的根節(jié)點對應(yīng)1個葉節(jié)點LNode (LeafNode),并且將空間對象的索引記錄(0ID,MBR)存放到該葉節(jié)點的存儲桶里即存放索引記錄(0ID,MBR)集合的地方;B、當(dāng)空間對象聚集到一定數(shù)量時,當(dāng)再增加1個空間對象,假定四分節(jié)點閾值QM =4,總空間對象個數(shù)增加到5個時,以包含當(dāng)前空間對象集的MBR中心為分割點,將空間區(qū)域劃分為四個子空間,整個空間的根節(jié)點變?yōu)橐粋€中間節(jié)點,或稱四分節(jié)點,四個子空間對應(yīng)四個子節(jié)點,且四個子空間也是動態(tài)開放的;C、然后將步驟A存儲桶中空間對象集中的空間對象重新進(jìn)行分配,分配規(guī)則是 利用每一個空間對象的MBR,判斷每一個空間對象是否與中心分割線相交;如相交,則將空間對象索引記錄(0ID,MBR)保存到屬于中間節(jié)點的R樹結(jié)構(gòu)中存儲桶中;如不相交,先判斷每一個空間對象位于四個子空間的哪一個空間區(qū)域中,然后把每一個空間對象索引記錄保存到該子空間區(qū)域?qū)?yīng)的子節(jié)點存儲桶中,以此類推,分配所有的空間對象;D、根據(jù)空間對象分配規(guī)則,當(dāng)四個子節(jié)點的任何一節(jié)點中的空間對象聚集到一定數(shù)量時,把子節(jié)點空間區(qū)域再劃分為四個子空間,按照B、C、D步驟以此類推。進(jìn)一步優(yōu)選,在步驟(3)中包括以下算法插入算法當(dāng)把一個新增的空間實體加入到建有空間索引的實體集時,需要把該實體生成的索引記錄項加入到相應(yīng)的空間索引DOQR樹中,如果開放空間節(jié)點未“滿”,則直接將新索引記錄項添加到節(jié)點相應(yīng)數(shù)組中;如果已“滿”,則需四分開放節(jié)點,并將數(shù)組中的索引記錄項同新增條目一起依次添加到新的子開放節(jié)點和R樹中;刪除算法當(dāng)從空間實體集中刪除了一個空間實體時,需要將相應(yīng)的DOQR樹中指向該實體的索引記錄項也一同刪除,即刪除對象前先獲取其索引記錄項,然后利用索引記錄的MBR來判斷其所在的開放節(jié)點,最后進(jìn)行OID匹配,匹配成功,則刪除該索引項,同樣地,在刪除后為了維護(hù)DOQR樹的性質(zhì),需要對DOQR樹進(jìn)行調(diào)整;查詢算法空間查詢又稱空間檢索、空間查找,是指從空間數(shù)據(jù)庫或空間數(shù)據(jù)集合中查找出滿足某一條件的空間目標(biāo)的過程。根據(jù)查找的條件的不同,一般空間查詢可以分為點查詢和區(qū)域查詢兩種,點查詢與區(qū)域查詢過程基本相同,不同點在于,點查詢結(jié)果為0 或1條記錄,而區(qū)域查詢結(jié)果則是多條記錄,在DOQR樹中,空間查詢是先通過查詢條件篩選出候選集合,再對候選集合進(jìn)行精確幾何判斷,從而得到查詢結(jié)果;更新策略算法當(dāng)空間實體的形狀發(fā)生改變時,如果這種改變沒有影響其MBRJP 么對于空間索引來說,這個實體在索引中的位置不變,如果空間實體的形狀變化導(dǎo)致其MBR 的變化,那么該實體的索引記錄在空間索引的位置也需要做相應(yīng)的調(diào)整,一般空間索引更新方法都采用先刪除舊的索引記錄項,然后插入更新后的索引記錄項,DOQR樹刪除操作是局部定位調(diào)整更新,不會影響整個索引結(jié)構(gòu)的穩(wěn)定性。本發(fā)明的有益效果(1)本發(fā)明移動地理信息空間索引方法具有不受空間索引區(qū)域限制的特點,可以不預(yù)先知道需要索引的地理信息的區(qū)域邊界,適合移動GIS采集數(shù)據(jù)動態(tài)變化的需要;(2)本發(fā)明移動地理信息空間索引方法具有動態(tài)開放性,空間索引的外接矩形區(qū)域邊界隨著空間數(shù)據(jù)的變化而動態(tài)變化,符合移動GIS采集數(shù)據(jù)動態(tài)變化的需要;(3)本發(fā)明移動地理信息空間索引方法具有相對的穩(wěn)定性,空間數(shù)據(jù)發(fā)生了變化, 空間索引結(jié)構(gòu)不需要重新構(gòu)建,對移動設(shè)備而言,減少了索引結(jié)構(gòu)頻繁操作的時間;
(4)本發(fā)明移動地理信息空間索引方法具有較好的邏輯結(jié)構(gòu)組織效率,具有較快的空間數(shù)據(jù)索引結(jié)構(gòu)構(gòu)建、查詢、插入、刪除算法速度,適合移動設(shè)備的硬件特性;(5)本發(fā)明移動地理信息空間索引方法具有非冗余的空間索引存儲結(jié)構(gòu),適應(yīng)不同類型的空間對象(點狀、線狀、面狀),同一空間對象在空間索引結(jié)構(gòu)中不重復(fù)存儲,適合移動設(shè)備存儲量小的特點。


圖1是本發(fā)明移動地理信息空間索引方法中DOQR核心思想示意圖;圖2是本發(fā)明移動地理信息空間索引方法中DOOR樹二維空間劃分平面圖;圖3是本發(fā)明發(fā)明移動地理信息空間索引方法中圖2對應(yīng)的DOOR結(jié)構(gòu)圖;圖4是本發(fā)明發(fā)明移動地理信息空間索引方法中DOQR樹UML關(guān)系圖;圖5是本發(fā)明移動地理信息空間索引方法中比較DQQR樹與R樹的性能隨機(jī)數(shù)據(jù)運(yùn)行點對象隨機(jī)生成圖;圖6是本發(fā)明移動地理信息空間索引方法中比較DQQR樹與R樹的性能隨機(jī)數(shù)據(jù)運(yùn)行線對象隨機(jī)生成圖;圖7是本發(fā)明移動地理信息空間索引方法中比較DQQR樹與R樹的性能隨機(jī)數(shù)據(jù)運(yùn)行面對象隨機(jī)生成圖;圖8是本發(fā)明移動地理信息空間索引方法中比較DQQR樹與R樹的性能真實數(shù)據(jù)運(yùn)行全局真實地圖數(shù)據(jù)圖;圖9是本發(fā)明移動地理信息空間索引方法中比較DQQR樹與R樹的性能真實數(shù)據(jù)運(yùn)行放大后真實地圖;圖10是本發(fā)明移動地理信息空間索引方法中二維地圖數(shù)據(jù)插入測試結(jié)果圖;圖11是本發(fā)明移動地理信息空間索引方法中二維地圖數(shù)據(jù)查詢測試結(jié)果圖。
具體實施例方式下面結(jié)合附圖與具體實施方式
對本發(fā)明作進(jìn)一步詳細(xì)地說明。發(fā)明移動地理信息空間索引方法主要分三個步驟(1)移動地理信息空間數(shù)據(jù)的存儲;(2)移動地理信息空間索引結(jié)構(gòu)的建立;⑶ 移動地理信息空間索引方法的設(shè)計。—、移動地理信息空間數(shù)據(jù)的存儲移動地理信息空間數(shù)據(jù)的存儲主要包括圖形數(shù)據(jù)和屬性數(shù)據(jù)的存儲。(1)本地文件本索引方法圖形數(shù)據(jù)采用本地文件的方式進(jìn)行存儲。文件是由大量性質(zhì)相同的記錄組成的集合。由于文件的數(shù)據(jù)量很大,所以一般存放在外存上,因此文件可以是指存儲在外部介質(zhì)中的數(shù)據(jù)的集合。本索引方法采用用戶系統(tǒng)定制的序列化二進(jìn)制文件。該文件在讀取、存儲的效率要比普通的系統(tǒng)文件要快得多。序列的二進(jìn)制文件在進(jìn)行讀存時的必須按照相同的步驟,存入的數(shù)據(jù)的類型、順序必須與讀取的該數(shù)據(jù)的數(shù)據(jù)類型、順序相同,否則會停止讀取。(2)嵌入式數(shù)據(jù)庫
本索引方法屬性數(shù)據(jù)采用嵌入式數(shù)據(jù)系統(tǒng)存儲,本地文件中的圖形數(shù)據(jù)通過唯一標(biāo)識ID與嵌入式數(shù)據(jù)庫中的圖形文件對應(yīng)的屬性表ID進(jìn)行管理。嵌入式數(shù)據(jù)庫系統(tǒng)是指支持移動計算或某種特定計算模式的數(shù)據(jù)庫管理系統(tǒng),它通常與操作系統(tǒng)和具體應(yīng)用集成在一起,運(yùn)行在智能型嵌入式設(shè)備和移動設(shè)備上。嵌入式數(shù)據(jù)庫具有以下特點微小內(nèi)核, 占用磁盤空間小、占用系統(tǒng)資源少;具有可靠性,可管理性和安全性;互操作性,可移植性; 能與應(yīng)用軟件相結(jié)合,是程序驅(qū)動式的等。利用嵌入數(shù)據(jù)的這些特點,當(dāng)對屬性數(shù)據(jù)管理時,查詢效率相當(dāng)方便,只需sql語句。二、移動地理信息空間索引結(jié)構(gòu)的建立
(一)DOQR索引方法核心思想1)地理信息空間區(qū)域的劃分現(xiàn)有的網(wǎng)格系列索引和四叉樹系列索引時必須給定索引區(qū)域范圍,當(dāng)空間對象范圍超過整個索引空間時,這些方法都不得不重新構(gòu)造索引,可調(diào)性差。本方法按空間對象區(qū)域劃分的,DOQR索引樹的構(gòu)建無需提前給定空間區(qū)域,只與空間對象的外接矩形 MBR(minimum bounding rectangle)以及插入的順序有關(guān)。因此,任意插入空間對象不會對 DOQR樹索引結(jié)構(gòu)造成毀滅性破壞。2) DOQR基本思路DOQR索引樹核心思想是利用空間對象的外接矩形MBR代表空間對象的本身所占區(qū)域范圍,按照空間區(qū)域和空間區(qū)域存儲空間對象的個數(shù)進(jìn)行組織存儲,利用空間區(qū)域的索引,可以在進(jìn)行空間信息查詢、顯示、分析時,從大量空間分布不均勻的空間對象中檢索出某一特定區(qū)域的空間對象,從而減少空間信息查詢、顯示、分析的空間對象個數(shù),從而提
高效率。3) DOQR核心思想DOQR核心思想是A、在沒有工作范圍邊界限定的全開放空間范圍(簡稱開放空間)上,將空間對象聚集到一個開放的空間區(qū)域中,整個開放空間的根節(jié)點對應(yīng)1個葉節(jié)點LNode (Leaf Node),并且將空間對象,例如圖1中的rl,r2,r3,r4,的索引記錄(OIDjMBR)存放到該葉節(jié)點的存儲桶里即存放索引記錄(0ID,MBR)集合的地方;B、當(dāng)空間對象聚集到一定數(shù)量時,例如圖1中,原有rl,r2,r3,r4,當(dāng)再增加1個空間對象r5,總空間對象個數(shù)增加到5個時,假定四分節(jié)點閾值QM = 4,以包含當(dāng)前空間對象集的MBR中心為分割點,將空間區(qū)域劃分為四個子空間,整個空間的根節(jié)點變?yōu)橐粋€中間節(jié)點(或稱四分節(jié)點),四個子空間對應(yīng)四個子節(jié)點,西北0NW,東北O(jiān)NE,西南0SW,東南 0SE,且四個子空間也是動態(tài)開放的。C、然后將該(A步驟)中存儲桶中空間對象集中的空間對象重新進(jìn)行分配,分配規(guī)則是利用每一個空間對象的MBR,判斷每一個空間對象是否與中心分割線相交;如相交, 如圖1中的r4和r5,則將空間對象索引記錄_,MBR)保存到屬于中間節(jié)點的R樹結(jié)構(gòu)中存儲桶中;如不相交,如圖1中的rl、r2、r3,先判斷每一個空間對象位于四個子空間的哪一個空間區(qū)域中,如rl位于OSW子空間,r2位于OSE子空間,然后把每一個空間對象索引記錄保存到該子空間區(qū)域?qū)?yīng)的子節(jié)點存儲桶中,以此類推,分配所有的空間對象。D、根據(jù)空間對象分配規(guī)則,當(dāng)四個子節(jié)點的任何一節(jié)點中的空間對象聚集到一定數(shù)量時,把子節(jié)點空間區(qū)域再劃分為四個子空間,按照B、C、D步驟以此類推。4) DOQR索引樹示例圖2是以DOQR樹結(jié)構(gòu)的簡單范例,節(jié)點閾值QM = 4 (節(jié)點含空間對象最大個數(shù)), 四分節(jié)點(中間節(jié)點)包含的的R樹節(jié)點構(gòu)建閾值條件Rm = 2 (R樹節(jié)點含空間對象最小個數(shù)),RM = 3 (R樹節(jié)點含空間對象最大個數(shù))。圖2是根據(jù)空間對象增加的順序,DOQR樹二維空間劃分平面圖,圖3是與圖2對應(yīng)生成的DOQR樹結(jié)構(gòu)圖。在圖2中,rl,r2,r3. . .. rl4表示空間對象的外接矩形,也表示空間對象本身所占的空間區(qū)域,1,2,3……14表示空間對象出現(xiàn)的順序。DOQR樹的節(jié)點閾值QM = 4,表示每個四分節(jié)點所含空間對象的最大個數(shù)。如圖2所示,按照DOQR索引樹結(jié)構(gòu)的核心思想(1)如圖2所示,當(dāng)在沒有工作范圍邊界限定的全開放空間范圍內(nèi),增加空間對象 rl,r2,r3,r4時,整個開放空間的根節(jié)點對應(yīng)1個根葉節(jié)點LNode,并且將空間對象rl,r2, r3,r4的索引記錄(0ID,MBR)存放到該葉節(jié)點的存儲桶里;(2)當(dāng)增加空間對象r5后,根葉節(jié)點LNode包含的空間對象的個數(shù)超出QM = 4,需要進(jìn)行節(jié)點分裂,以包含rl, r2,r3,r4,r5空間對象集的MBR中心點PO為分割點,將空間區(qū)域劃分為四個子空間,整個空間的根節(jié)點由1個葉節(jié)點LNode變?yōu)橐粋€中間節(jié)點(或稱四分節(jié)點)0Root0,四個子空間對應(yīng)由根節(jié)點ORootO分裂出的四個子葉節(jié)點(西北O(jiān)NWl, 東北0NE2,西南0SW3,東南0SE4),如圖2、圖3所示,且四個子空間的MBR也是動態(tài)開放的;(3)然后將(1步驟)中葉節(jié)點LNode(0ROOt0轉(zhuǎn)為四分節(jié)點之前)存儲桶中空間對象集中的空間對象(rl,r2,r3,r4,r5)重新進(jìn)行分配,分配規(guī)則是利用每一個空間對象的MBR,判斷每一個空間對象是否與中心分割線相交;如相交,如圖2中的r2,r4和r5,則將r2,r4,r5空間對象的索引記錄(0ID,MBR)保存到屬于中間節(jié)點ORootO的R樹結(jié)構(gòu)RtO 的存儲桶中;如不相交,如圖3中的rl、r3,先判斷每一個空間對象位于四個子空間(0NW1, 0NE2, OSff3, 0SE4)中的哪一個空間區(qū)域中,如rl位于子空間ONWl中,r3位于0SW3子空間中,然后把rl空間對象的索引記錄保存到子空間ONWl葉節(jié)點存儲桶中,把r3空間對象的索引記錄保存到子空間0SW3葉節(jié)點存儲桶中;(4)執(zhí)行完( 步驟后,在根節(jié)點ORootO包含的R樹結(jié)構(gòu)RtO存儲桶中已存有3 個索引記錄(r2,r4,r5),在四個子空間葉節(jié)點ONWl已存1個索引記錄(rl),子葉節(jié)點0NE2 中已存O個,子葉節(jié)點0SW3中已存1個(r3),子葉節(jié)點0SE4中已存O個;(5)按照空間對象的添加順序,當(dāng)增加空間對象r6后,需要將r6的索引記錄進(jìn)行分配,按照第(3)步的分配規(guī)則,如圖2所示,r6位于子空間0NE2中,把r6的索引記錄存儲到子葉節(jié)點0NE2存儲桶中。同理,按照空間對象增加的順序,rl, r8也都位于子空間0NE2 中,因此把r7、r8的索引記錄也分別存儲到子葉節(jié)點0NE2存儲桶中;(6)繼續(xù)增加空間對象r9后,根據(jù)第(3)步的分配規(guī)則,r9與根節(jié)點ORootO的中心點PO分割線(通過PO中心點的水平與垂直線)相交,如圖3所示,把r9的索引記錄存儲到根節(jié)點ORootO所含的R數(shù)據(jù)結(jié)構(gòu)RtO存儲桶中。這時,根據(jù)R樹結(jié)構(gòu)的構(gòu)建條件(Rm =2,RM= 3),現(xiàn)在根節(jié)點ORootO所含的R數(shù)據(jù)結(jié)構(gòu)根節(jié)點RtO存儲桶中已存儲4個索引記錄(r2,r4,r5,r9),超出RM = 3閾值,需要進(jìn)行R樹的節(jié)點分裂,按照R樹結(jié)構(gòu)的節(jié)點分裂規(guī)則,R樹根節(jié)點RtO分裂為兩個子節(jié)點Rl和R2,并且把存儲在R樹根節(jié)點RtO存儲桶中的r2,r4,r5,r9索引記錄,分配到RtO根結(jié)點的兩個子節(jié)點Rl和R2中,根據(jù)R樹結(jié)構(gòu)分配規(guī)則,r2和r9存儲到R樹字節(jié)點Rl中,r4和r5存儲到R樹字節(jié)點R2中;(7)繼續(xù)增加空間對象rlO后,根據(jù)第(3)步的分配規(guī)則,如圖2所示,rlO位于子空間ONE2中,把rlO的索引記錄存儲到子葉節(jié)點0N&存儲桶中,這時,子空間0N&中已存儲 r6,r7, r8, rlO ;(8)繼續(xù)增加空間對象rll后,如圖2所示,rll位于子空間0N&中,把rll的索引記錄存儲到子葉節(jié)點0服2存儲桶中,這時,子空間葉節(jié)點0服2中已存儲5個索引記錄(r6, r7,r8,rl0,rll),子空間葉節(jié)點ONE2包含的空間對象的個數(shù)超出QM = 4,需要進(jìn)行節(jié)點分裂(原理同第2步),以包含r6,r7,r8,rl0,rll空間對象集的MBR中心點Pl為分割點,將 ONE2節(jié)點空間區(qū)域再劃分為四個子空間,ONE2節(jié)點空間的根節(jié)點由1個葉節(jié)點ONE2變?yōu)橐粋€中間節(jié)點(或稱四分節(jié)點)0NE2,四個子空間對應(yīng)由節(jié)點0服2分裂出的四個子葉節(jié)點(西北O(jiān)NW5,東北O(jiān)NE6,西南OSW7,東南OSE8),如圖2、圖3所示,且四個子空間的MBR也是動態(tài)開放的;(9)然后將四分節(jié)點ONE2原存儲桶(ONE2轉(zhuǎn)為四分節(jié)點之前為葉節(jié)點)中的索引記錄(r6,rl, r8,rlO, rll)進(jìn)行重新分配(原理同第3步),按照第3步分配規(guī)則,r6位于四分節(jié)點ONE2的再四分子葉節(jié)點ONW5空間區(qū)域中,把r6索引記錄存儲到子葉節(jié)點ONW5 存儲桶中,同理,r7位于ONE6中,把r7索引記錄存儲到子葉節(jié)點ONW6存儲桶中,r8、rl0和 rll位于OSE8中,把r8、rl0和rll索引記錄存儲到子葉節(jié)點OSE8存儲桶中;(10)繼續(xù)增加空間對象rl2后,按照第3步分配規(guī)則,rl2與四分節(jié)點0服2的中心點Pl分割線相交,如圖2所示,把rl2的索引記錄存儲到四分節(jié)點ONE2所含的R數(shù)據(jù)結(jié)構(gòu)Rt1存儲桶中;(11)繼續(xù)增加空間對象rl3后,按照第3步分配規(guī)則,rl3位于子葉節(jié)點OSE8空間區(qū)域,把rl3索引記錄存儲到子葉節(jié)點0S&存儲桶中,這時,子空間0服8中已存儲r8,rl0, rll,rl3 ;(12)繼續(xù)增加空間對象rl4后,按照第3步分配規(guī)則,rl4位于子節(jié)點0S&空間區(qū)域,把rl4索引記錄存儲到子葉節(jié)點OSE8存儲桶中,這時,子空間ONE8中已存儲5個索引記錄(r8,rlO, rll, rl3,rl4),子空間葉節(jié)點ONE8包含的空間對象的個數(shù)超出QM = 4,需要進(jìn)行節(jié)點分裂(原理同第2步),以包含r8,rl0,rll,rl3,rl4空間對象集的MBR中心點 P2為分割點,將ONE8節(jié)點空間區(qū)域再劃分為四個子空間,ONE8節(jié)點空間的根節(jié)點由1個葉節(jié)點ONE8變?yōu)橐粋€中間節(jié)點(或稱四分節(jié)點)0ΝΕ8,四個子空間對應(yīng)由節(jié)點ONE8分裂出的四個子葉節(jié)點(西北O(jiān)NW9,東北O(jiān)NE10,西南OSff11,東南OSE12),如圖2、圖3所示,且四個子空間的MBR也是動態(tài)開放的;(13)然后將四分節(jié)點(^仏原存儲桶(0N&轉(zhuǎn)為四分節(jié)點之前為葉節(jié)點)中的索引記錄(r8,rl0,rll,rl3,rl4)進(jìn)行重新分配(原理同第3步),按照第3步分配規(guī)則,r8位于四分節(jié)點ONE8的再四分子葉節(jié)點ONW9空間區(qū)域中,把r8索引記錄存儲到子葉節(jié)點ONW9 存儲桶中,同理,r 10位于ONEltl中,把rlO索引記錄存儲到子葉節(jié)點ONWltl存儲桶中,rll和 rl4都與四分節(jié)點ONE8的中心點P2分割線相交,如圖2所示,把rll和rl4的索引記錄存儲到四分節(jié)點ONE8所含的R樹結(jié)構(gòu)Rt2存儲桶中。至此,圖2、圖3所示的rl,r2,r3….rl4供14個元素的DOQR樹索引區(qū)域劃分與索引結(jié)構(gòu)的建立完成。( 二)DOQR樹的索引結(jié)構(gòu)在以上DOQR索引方法核心思想中分別用到了以下DOQR樹索引數(shù)據(jù)結(jié)構(gòu)DOQR樹是由兩類節(jié)點組成,即葉節(jié)點和四分節(jié)點(也稱中間節(jié)點)組成,其基本結(jié)構(gòu)分別如下葉節(jié)點(NUM,DMBR,E1,E2, -,En)四分節(jié)點(NUM,CENTER, DMBR, RTREE,CP0, CP1, CP2, CP3)葉節(jié)點保存一組索引記錄項E (OID, MBR), DMBR是該節(jié)點中所有索引記錄的MBR的最小外界矩,在插入更新中,是動態(tài)變化的。中間節(jié)點中,CENTER是開放空間區(qū)域的中心分割點,RTREE是與該節(jié)點相關(guān)聯(lián)的指向R樹結(jié)構(gòu)的一個指針,CPi是中間節(jié)點對應(yīng)的子節(jié)點。DMBR是包含R樹和四個子節(jié)點的動態(tài)空間。NUM表示當(dāng)前節(jié)點中已保存的索引記錄項的個數(shù)。DOQR樹內(nèi)部結(jié)構(gòu)關(guān)系可以用圖4中UML表示。三、移動地理信息空間索引方法的設(shè)計與應(yīng)用(一 )移動地理信息空間索引DOQR樹算法設(shè)計對空間索引的維護(hù)與對存儲在數(shù)據(jù)庫中的空間數(shù)據(jù)維護(hù)是一致的。在一張建有空間索引的表中,若進(jìn)行空間數(shù)據(jù)插入、刪除、或修改,那么在索引中也要插入,刪除、或修改相應(yīng)的索引記錄項。(1)插入算法當(dāng)把一個新增的空間實體加入到建有空間索引的實體集時,需要把該實體生成的索引記錄項加入到相應(yīng)的空間索引DOQR樹中。如果開放空間節(jié)點未“滿”,則直接將新索引記錄項添加到節(jié)點相應(yīng)數(shù)組中;如果已“滿”,則需四分開放節(jié)點,并將數(shù)組中的索引記錄項同新增條目一起依次添加到新的子開放節(jié)點和R樹中。具體算法如下D0QR_Insert(ORoot,E)輸入設(shè)ORoot為DOQR樹的開放節(jié)點ONodeE為索引記錄項(ID,MBR)輸出插入新索引記錄項的開放節(jié)點ONodeDI1設(shè)ORoot為DOQR樹根節(jié)點DI2 如果 ORoot 是 LNode (葉節(jié)點)如果ORoot索引記錄項數(shù)小于QM時,插入索引記錄項E ;否則,調(diào)用節(jié)點分裂算法SplitNode (見后),并重新分配E和ORoot中的所有記錄,得到四分節(jié)點ORoot = SplitNode(ORoot);DI3 如果 ORoot 是 QNode (中間節(jié)點)調(diào)用location = ChooseLocation (見后),找出放置E的適當(dāng)位置,執(zhí)行DI4 ;DI4如果location =-1,將E插入到節(jié)點R樹中;否貝lj,獲取ORoot 子節(jié)點 childNode [location]調(diào)用 D0QR_ Insert (childNode[location], Ε)。分配索引記錄項位置方法ChooseLocation (MBR, CX, CY)
輸入MBR為索引記錄項最小外界矩形CX, CY是QNode節(jié)點的中心分割點輸出MBR相對中心點的位置判斷規(guī)則以(CX,CY)為原點,建立坐標(biāo)軸,將空間劃分為四個象限;判斷MBR坐落的具體象限象限“ζ”字型標(biāo)識為0 3,當(dāng)MBR與坐標(biāo)軸相交時,返回-1 ;否則返回象限編號。當(dāng)遇到點類對象這種特殊情況,如果其MBR與中心軸完全重合,則以Z字形順序優(yōu)先取值。節(jié)點分裂算法規(guī)則如下D0QR_SpIitNode(L)輸入L為指向葉子節(jié)點LNode輸出分裂生成后的中間節(jié)點QNodeSm確定L存儲個數(shù)大于QM值;SN2新建中間節(jié)點N,將L葉節(jié)點MBR和中心點初始化N ;SN3通過ChooseLocation方法,將L中的索引記錄重新插入到新節(jié)點N中;SN4刪除L,釋放L占有內(nèi)存,返回N。⑵刪除算法當(dāng)從空間實體集中刪除了一個空間實體時,需要將相應(yīng)的DOQR樹中指向該實體的索引記錄項也一同刪除,即刪除對象前先獲取其索引記錄項,然后利用索引記錄的MBR 來判斷其所在的開放節(jié)點,最后進(jìn)行OID匹配,匹配成功,則刪除該索引項。同樣地,在刪除后為了維護(hù)DOQR樹的性質(zhì),需要對DOQR樹進(jìn)行調(diào)整。具體算法如下DOQR_Delete(ref ORoot,E)ORoot為DOQR樹的開放節(jié)點ONode,E為索引記錄項,結(jié)果返回TRUE或FALSEDDI設(shè)ORoot為根節(jié)點;DD2如果ORoot是葉節(jié)點,判斷ORoot是否記錄在E,包含則刪除記錄項E,執(zhí)行 DD7 ;DD3如果ORoot是中間節(jié)點,則通過ORoot中心分割點判斷E的位置,執(zhí)行DD4 DD7 ;DD4如果E在中間節(jié)點關(guān)聯(lián)的R樹中,則調(diào)用R樹刪除算法;刪除成功,跳到DD6節(jié)點壓縮;DD5如果E在ORoot的子節(jié)點Ni中,則調(diào)用遞歸算法DOQR_Delete (ref Ni, Ε);刪除成功,執(zhí)行DD6節(jié)點壓縮;DD6壓縮ORoot 如果ORoot內(nèi)索引記錄項個數(shù)小于等于閾值QM時,即滿足DOQR 樹葉節(jié)點要求,則將ORoot中的所有索引記錄添加到新的葉子節(jié)點L中,釋放ORoot占有的內(nèi)存,并且使ORoot指向L,最終中間節(jié)點壓縮為葉節(jié)點,更新完畢返回TRUE ;當(dāng)大于QM時, 轉(zhuǎn)到DD7進(jìn)行DOQR樹動態(tài)空間調(diào)整;DD7動態(tài)空間調(diào)整規(guī)則ORoot與E兩者的MBR有邊界共享,則重新計算ORoot的動態(tài)空間DMBR ;(3)查詢算法空間查詢又稱空間檢索、空間查找,是指從空間數(shù)據(jù)庫或空間數(shù)據(jù)集合中查找出滿足某一條件的空間目標(biāo)的過程。根據(jù)查找的條件的不同,一般空間查詢可以分為點查詢和區(qū)域查詢兩種。點查詢與區(qū)域查詢過程基本相同,不同點在于,點查詢結(jié)果為0或1條記錄,而區(qū)域查詢結(jié)果則是多條記錄。在DOQR樹中,空間查詢是先通過查詢條件篩選出候選集合,再對候選集合進(jìn)行精確幾何判斷,從而得到查詢結(jié)果。下面以矩形查詢?yōu)槔?,介紹 DOQR樹空間檢索算法。D0QR_Search(0Root, SR, ref IDS)輸入0Root為DOQR樹的開放根節(jié)點,SR為搜索矩形窗口矩形窗口輸出IDS為查詢結(jié)果集,保存索引記錄項的OIDDSl如果ORoot的DMBR與SR不相交,則返回;否則執(zhí)行DS2 ;DS2如果SR完全覆蓋ORoot的DMBR,則直接將ORoot內(nèi)所有記錄集OID存 Λ IDS ;否則執(zhí)行DS3 ;DS3如果ORoot是葉節(jié)點,則將其所有記錄集與SR進(jìn)行相交判斷,相交者存入IDS ;如果ORoot是中間節(jié)點,先查詢ORoot關(guān)聯(lián)R ;再循環(huán)對其子節(jié)點Ni調(diào)用D0QR_ Search (Ni, SR, ref IDS)。(4)更新策略算法,當(dāng)空間實體的形狀發(fā)生改變時,如果這種改變沒有影響其 MBR,那么對于空間索引來說,這個實體在索引中的位置不變。如果空間實體的形狀變化導(dǎo)致其MBR的變化,那么該實體的索引記錄在空間索引的位置也需要做相應(yīng)的調(diào)整。一般空間索引更新方法都采用先刪除舊的索引記錄項,然后插入更新后的索引記錄項。DOQR樹刪除操作是局部定位調(diào)整更新,不會影響整個索引結(jié)構(gòu)的穩(wěn)定性。( 二)移動地理信息空間索引DOQR樹算法應(yīng)用實驗1)實驗環(huán)境設(shè)計選擇合適的開發(fā)環(huán)境,不僅可以大大縮短軟件開發(fā)周期,而且方便程序的移植。表 1中詳細(xì)介紹了開發(fā)環(huán)境配置。
權(quán)利要求
1.一種移動地理信息空間索引方法,其特征在于,所述的方法主要分三個步驟(1)移動地理信息空間數(shù)據(jù)的存儲主要包括圖形數(shù)據(jù)和屬性數(shù)據(jù)的存儲,圖形數(shù)據(jù)采用本地文件的方式進(jìn)行存儲,采用用戶系統(tǒng)定制的序列化二進(jìn)制文件,所述序列化二進(jìn)制文件在進(jìn)行讀存時的必須按照相同的步驟,存入的數(shù)據(jù)的類型、順序必須與讀取的該數(shù)據(jù)的數(shù)據(jù)類型、順序相同,屬性數(shù)據(jù)采用嵌入式數(shù)據(jù)系統(tǒng)存儲,本地文件中的圖形數(shù)據(jù)通過唯一標(biāo)識ID與嵌入式數(shù)據(jù)庫中的圖形文件對應(yīng)的屬性表ID進(jìn)行管理;(2)移動地理信息空間索引結(jié)構(gòu)的建立D0QR索引樹核心利用空間對象的外接矩形 MBR代表空間對象的本身所占區(qū)域范圍,按照空間區(qū)域和空間區(qū)域存儲空間對象的個數(shù)進(jìn)行組織存儲,利用空間區(qū)域的索引,可以在進(jìn)行空間信息查詢、顯示、分析時,從大量空間分布不均勻的空間對象中檢索出某一特定區(qū)域的空間對象;(3)移動地理信息空間索引方法的設(shè)計在一張建有空間索引的表中,若進(jìn)行空間數(shù)據(jù)插入、刪除、或修改,那么在索引中也要插入,刪除、或修改相應(yīng)的索引記錄項。
2.根據(jù)權(quán)利要求1所述的移動地理信息空間索引方法,其特征在于,在步驟O)中 DOQR核心包括四個步驟A、在沒有工作范圍邊界限定的全開放空間范圍(簡稱開放空間)上,將空間對象聚集到一個開放的空間區(qū)域中,整個開放空間的根節(jié)點對應(yīng)1個葉節(jié)點LNode (Leaf Node),并且將空間對象的索引記錄(0ID,MBR)存放到該葉節(jié)點的存儲桶里即存放索引記錄(0ID, MBR)集合的地方;B、當(dāng)空間對象聚集到一定數(shù)量時,當(dāng)再增加1個空間對象,假定四分節(jié)點閾值QM= 4, 總空間對象個數(shù)增加到5個時,以包含當(dāng)前空間對象集的MBR中心為分割點,將空間區(qū)域劃分為四個子空間,整個空間的根節(jié)點變?yōu)橐粋€中間節(jié)點,或稱四分節(jié)點,四個子空間對應(yīng)四個子節(jié)點,且四個子空間也是動態(tài)開放的;C、然后將步驟A存儲桶中空間對象集中的空間對象重新進(jìn)行分配,分配規(guī)則是利用每一個空間對象的MBR,判斷每一個空間對象是否與中心分割線相交;如相交,則將空間對象索引記錄(0ID,MBR)保存到屬于中間節(jié)點的R樹結(jié)構(gòu)中存儲桶中;如不相交,先判斷每一個空間對象位于四個子空間的哪一個空間區(qū)域中,然后把每一個空間對象索引記錄保存到該子空間區(qū)域?qū)?yīng)的子節(jié)點存儲桶中,以此類推,分配所有的空間對象;D、根據(jù)空間對象分配規(guī)則,當(dāng)四個子節(jié)點的任何一節(jié)點中的空間對象聚集到一定數(shù)量時,把子節(jié)點空間區(qū)域再劃分為四個子空間,按照B、C、D步驟以此類推。
3.根據(jù)權(quán)利要求1所述的移動地理信息空間索引方法,其特征在于,在步驟(3)中包括以下算法插入算法當(dāng)把一個新增的空間實體加入到建有空間索引的實體集時,需要把該實體生成的索引記錄項加入到相應(yīng)的空間索引DOQR樹中,如果開放空間節(jié)點未“滿”,則直接將新索引記錄項添加到節(jié)點相應(yīng)數(shù)組中;如果已“滿”,則需四分開放節(jié)點,并將數(shù)組中的索引記錄項同新增條目一起依次添加到新的子開放節(jié)點和R樹中;刪除算法當(dāng)從空間實體集中刪除了一個空間實體時,需要將相應(yīng)的DOQR樹中指向該實體的索引記錄項也一同刪除,即刪除對象前先獲取其索引記錄項,然后利用索引記錄的 MBR來判斷其所在的開放節(jié)點,最后進(jìn)行OID匹配,匹配成功,則刪除該索引項,同樣地,在刪除后為了維護(hù)DOQR樹的性質(zhì),需要對DOQR樹進(jìn)行調(diào)整;查詢算法空間查詢又稱空間檢索、空間查找,是指從空間數(shù)據(jù)庫或空間數(shù)據(jù)集合中查找出滿足某一條件的空間目標(biāo)的過程。根據(jù)查找的條件的不同,一般空間查詢可以分為點查詢和區(qū)域查詢兩種,點查詢與區(qū)域查詢過程基本相同,不同點在于,點查詢結(jié)果為0或1 條記錄,而區(qū)域查詢結(jié)果則是多條記錄,在DOQR樹中,空間查詢是先通過查詢條件篩選出候選集合,再對候選集合進(jìn)行精確幾何判斷,從而得到查詢結(jié)果;更新策略算法當(dāng)空間實體的形狀發(fā)生改變時,如果這種改變沒有影響其MBR,那么對于空間索引來說,這個實體在索引中的位置不變,如果空間實體的形狀變化導(dǎo)致其MBR的變化,那么該實體的索引記錄在空間索引的位置也需要做相應(yīng)的調(diào)整,一般空間索引更新方法都采用先刪除舊的索引記錄項,然后插入更新后的索引記錄項,DOQR樹刪除操作是局部定位調(diào)整更新,不會影響整個索引結(jié)構(gòu)的穩(wěn)定性。
全文摘要
本發(fā)明公開了一種移動地理信息空間索引方法,其特征在于,所述的方法主要分三個步驟(1)移動地理信息空間數(shù)據(jù)的存儲;(2)移動地理信息空間索引結(jié)構(gòu)的建立;(3)移動地理信息空間索引方法的設(shè)計。該方法具有使用簡便、存儲效率高的特點能,廣泛適用于電信增值業(yè)務(wù)和計算機(jī)應(yīng)用技術(shù)領(lǐng)域。
文檔編號G06F17/30GK102306166SQ20111024107
公開日2012年1月4日 申請日期2011年8月22日 優(yōu)先權(quán)日2011年8月22日
發(fā)明者李二芳, 李建, 李晉芳, 王芳, 田根 申請人:河南理工大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
永德县| 大洼县| 淮北市| 金昌市| 安多县| 太保市| 和硕县| 广元市| 伊宁县| 克东县| 来安县| 获嘉县| 久治县| 贵南县| 汾西县| 敖汉旗| 聂拉木县| 广西| 临沧市| 太仆寺旗| 安陆市| 什邡市| 奉化市| 临汾市| 红原县| 容城县| 武冈市| 福贡县| 石家庄市| 来宾市| 新龙县| 西昌市| 大安市| 莱西市| 木兰县| 建平县| 广宗县| 嘉鱼县| 哈巴河县| 马山县| 青铜峡市|