法流程圖;
[0035]圖2為本發(fā)明一個(gè)實(shí)施例的多級(jí)空間索引建立與分布式數(shù)據(jù)存儲(chǔ)流程圖;
[0036]圖3為本發(fā)明一個(gè)實(shí)施例的接受用戶(hù)對(duì)存儲(chǔ)的空間矢量數(shù)據(jù)進(jìn)行查詢(xún)、刪除和/或插入操作的流程圖;
[0037]圖4為本發(fā)明一個(gè)實(shí)施例的基于多級(jí)空間索引技術(shù)的分布式空間矢量數(shù)據(jù)管理系統(tǒng)示意圖。
【具體實(shí)施方式】
[0038]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有付出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0039]圖1為本發(fā)明一個(gè)實(shí)施例的基于多級(jí)空間索引技術(shù)的分布式空間矢量數(shù)據(jù)管理方法流程圖;圖4為本發(fā)明一個(gè)實(shí)施例的基于多級(jí)空間索引技術(shù)的分布式空間矢量數(shù)據(jù)管理系統(tǒng)示意圖。如圖所示,基于多級(jí)空間索引技術(shù)的分布式空間矢量數(shù)據(jù)管理方法包括以下步驟:
[0040]S10,根據(jù)所確定的空間數(shù)據(jù)管理范圍,為地理空間矢量數(shù)據(jù)建立多級(jí)四叉樹(shù)空間索引;
[0041]在具體實(shí)施時(shí),可以根據(jù)統(tǒng)計(jì)的全部地理空間矢量數(shù)據(jù),確定數(shù)據(jù)管理范圍;對(duì)地理空間范圍建立多級(jí)四叉樹(shù)索引時(shí),最高級(jí)別四叉樹(shù)的劃分可以依據(jù)該地理空間數(shù)據(jù)管理的精度而定,對(duì)數(shù)據(jù)的管理精度越高,四叉樹(shù)的迭代次數(shù)越多。
[0042]其中,上述空間數(shù)據(jù)局限為矢量數(shù)據(jù),對(duì)空間柵格數(shù)據(jù)的管理不在本發(fā)明的技術(shù)方案內(nèi)。
[0043]其中,該空間索引屬于樹(shù)狀索引結(jié)構(gòu),該樹(shù)狀索引的每一層代表每一級(jí)迭代的四叉樹(shù),而四叉樹(shù)中的每一個(gè)節(jié)點(diǎn)都用于存儲(chǔ)其對(duì)應(yīng)的圖元數(shù)據(jù)和圖元的索引數(shù)據(jù)。
[0044]S20,計(jì)算包含矢量圖元的最小網(wǎng)格矩形,根據(jù)該矢量圖元的最小網(wǎng)格矩形與多級(jí)四叉樹(shù)空間索引中每一級(jí)四叉樹(shù)中的矩形之間的拓?fù)潢P(guān)系,確定該矢量圖元所在的索引級(jí)另U,并建立相應(yīng)的圖元索引;
[0045]在具體實(shí)施時(shí),為上述地理空間范圍中的圖元對(duì)象建立四叉樹(shù)索引,通過(guò)圖元數(shù)據(jù)的MBR能否被最小的四叉樹(shù)子空間完全包含確定其索引級(jí)別及相應(yīng)的索引編號(hào)。
[0046]建立圖元空間索引時(shí),可以將該圖元從最低級(jí)四叉樹(shù)至最高級(jí)四叉樹(shù)中遍歷以進(jìn)行拓?fù)渑袛?,確定能夠完全包含該圖元MBR的最小四叉樹(shù)子空間所在的級(jí)別,其中最低級(jí)四叉樹(shù)為整個(gè)地理空間范圍,在四叉樹(shù)的索引結(jié)構(gòu)上表現(xiàn)為最高根節(jié)點(diǎn),最高級(jí)四叉樹(shù)為最大迭代次數(shù)后的子空間區(qū)域,表現(xiàn)為最低葉子節(jié)點(diǎn),這種方式產(chǎn)生的四叉樹(shù)是一種不平衡的樹(shù),其葉子節(jié)點(diǎn)不在同一層級(jí)上,任何中間節(jié)點(diǎn)都可以成為葉子節(jié)點(diǎn)。
[0047]S30,將多級(jí)四叉樹(shù)中同一節(jié)點(diǎn)內(nèi)圖元數(shù)據(jù)和其對(duì)應(yīng)的索引數(shù)據(jù)作為整體存儲(chǔ)至同一服務(wù)器設(shè)備,該索引數(shù)據(jù)包括空間對(duì)象的標(biāo)識(shí)號(hào)(主鍵)和其最小外包矩形的范圍坐標(biāo);將不同節(jié)點(diǎn)內(nèi)圖元數(shù)據(jù)和其對(duì)應(yīng)的索引數(shù)據(jù)按照存儲(chǔ)量大小采取分布式系統(tǒng)管理方式存儲(chǔ)至若干個(gè)服務(wù)器設(shè)備。
[0048]在具體實(shí)施中,依據(jù)多級(jí)四叉樹(shù)空間索引對(duì)空間數(shù)據(jù)進(jìn)行存儲(chǔ),在四叉樹(shù)根節(jié)點(diǎn)到最底層葉子結(jié)點(diǎn)所有索引級(jí)別內(nèi),首先按照數(shù)據(jù)存儲(chǔ)量從上至下對(duì)不同級(jí)別進(jìn)行分割存儲(chǔ),由分割得到的若干級(jí)別內(nèi)按同一級(jí)別從左至右、不同級(jí)別從上至下的順序?qū)⑾噜彽墓?jié)點(diǎn)依次存儲(chǔ)在同一服務(wù)器設(shè)備上,常規(guī)的每個(gè)服務(wù)器設(shè)備都設(shè)有存儲(chǔ)上限,若達(dá)到該存儲(chǔ)上限,系統(tǒng)會(huì)自動(dòng)將該分割內(nèi)若干級(jí)別中余下的節(jié)點(diǎn)存儲(chǔ)至下一個(gè)服務(wù)器設(shè)備,直到將該分割級(jí)別內(nèi)全部節(jié)點(diǎn)數(shù)據(jù)均存儲(chǔ)完成,再進(jìn)行下一個(gè)分割級(jí)內(nèi)節(jié)點(diǎn)數(shù)據(jù)的存儲(chǔ)。采取該方式可以按照四叉樹(shù)的層級(jí)關(guān)系實(shí)現(xiàn)海量空間數(shù)據(jù)的彈性分布式存儲(chǔ)。在對(duì)空間矢量數(shù)據(jù)進(jìn)行操作時(shí),可以通過(guò)多級(jí)空間索引技術(shù)在多個(gè)分布式存儲(chǔ)中的并行處理。
[0049]此外,在進(jìn)行數(shù)據(jù)的分布式部署時(shí),還可以為每一個(gè)服務(wù)器設(shè)備均設(shè)置相應(yīng)的冗余存儲(chǔ)量,當(dāng)某個(gè)服務(wù)器上的節(jié)點(diǎn)有數(shù)據(jù)添加而達(dá)到了該服務(wù)器設(shè)定的存儲(chǔ)上限時(shí),系統(tǒng)會(huì)自動(dòng)將該數(shù)據(jù)存儲(chǔ)至該服務(wù)器的冗余存儲(chǔ)中。
[0050]進(jìn)一步的,在進(jìn)行數(shù)據(jù)的分布式部署時(shí),通過(guò)文件配置中心層管理索引文件、空間矢量數(shù)據(jù),監(jiān)督服務(wù)器設(shè)備的存儲(chǔ)上限,以及當(dāng)用戶(hù)在對(duì)空間數(shù)據(jù)操作時(shí),傳遞相應(yīng)的中間參數(shù),該中間參數(shù)是指用戶(hù)獲取數(shù)據(jù)所輸入的查找條件或用戶(hù)更新數(shù)據(jù)所進(jìn)行的操作。
[0051]圖2為本發(fā)明一個(gè)實(shí)施例的多級(jí)空間索引建立與分布式數(shù)據(jù)存儲(chǔ)流程圖;以下結(jié)合圖2和圖4進(jìn)行說(shuō)明,該實(shí)施例具體包括:
[0052]I)對(duì)地理空間矢量數(shù)據(jù)建立多級(jí)空間索引,按照如下步驟進(jìn)行:首先計(jì)算每個(gè)圖元數(shù)據(jù)的MBR,其次將空間數(shù)據(jù)按照四叉樹(shù)的方式建立索引,確定整個(gè)地理空間范圍為四叉樹(shù)零級(jí)索引,將空間范圍四等分形成四個(gè)相同的矩形區(qū)域建立一級(jí)四叉樹(shù),判斷該圖元的MBR與一級(jí)四叉樹(shù)矩形區(qū)域的拓?fù)潢P(guān)系,若MBR與該級(jí)別內(nèi)任一矩形有相交關(guān)系,則判定該圖元索引級(jí)別為上一級(jí),若MBR被其中某一矩形包含,則對(duì)該矩形建立下一級(jí)四叉樹(shù),同樣判斷該MBR與下一級(jí)四叉樹(shù)中的矩形之間的拓?fù)潢P(guān)系,依次進(jìn)行迭代以確定該圖元對(duì)象所在的索引級(jí)別。
[0053]2)對(duì)分布式空間矢量數(shù)據(jù)存儲(chǔ)時(shí),按如下方式進(jìn)行:同一節(jié)點(diǎn)的圖元數(shù)據(jù)和其對(duì)應(yīng)的索引數(shù)據(jù)存儲(chǔ)在同一服務(wù)器設(shè)備中,不同節(jié)點(diǎn)所包含的數(shù)據(jù)則可通過(guò)分布式系統(tǒng)進(jìn)行存儲(chǔ)在不同服務(wù)器設(shè)備中,各服務(wù)器通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)進(jìn)行通信。
[0054]3)在進(jìn)行數(shù)據(jù)的分布式存儲(chǔ)時(shí),涉及到兩個(gè)方面,節(jié)點(diǎn)的存儲(chǔ)分割和數(shù)據(jù)的存儲(chǔ)動(dòng)態(tài)調(diào)整。節(jié)點(diǎn)存儲(chǔ)分割按照如下方式進(jìn)行:四叉樹(shù)空間索引從根節(jié)點(diǎn)至最底層葉子節(jié)點(diǎn)范圍內(nèi),每個(gè)節(jié)點(diǎn)均存儲(chǔ)了各自所在四叉樹(shù)層級(jí)空間尺度下的數(shù)據(jù)。由于四叉樹(shù)索引上較高節(jié)點(diǎn)上存儲(chǔ)的數(shù)據(jù)一般比較低節(jié)點(diǎn)上存儲(chǔ)的數(shù)據(jù)量小,因此按照四叉樹(shù)層級(jí)對(duì)節(jié)點(diǎn)進(jìn)行分割,在同一分割級(jí)別內(nèi)將相鄰層級(jí)的四叉樹(shù)節(jié)點(diǎn)數(shù)據(jù)按照一定的存儲(chǔ)量上限存儲(chǔ)至同一服務(wù)器,以此實(shí)現(xiàn)數(shù)據(jù)靜態(tài)分割存儲(chǔ)。數(shù)據(jù)存儲(chǔ)動(dòng)態(tài)調(diào)整按照以下方式進(jìn)行:由分割得到的某個(gè)層級(jí)節(jié)點(diǎn)在存儲(chǔ)數(shù)據(jù)時(shí),若這些節(jié)點(diǎn)數(shù)據(jù)量過(guò)大,超過(guò)了服務(wù)器設(shè)定的存儲(chǔ)上限,系統(tǒng)會(huì)自動(dòng)將多出來(lái)的節(jié)點(diǎn)數(shù)據(jù)存儲(chǔ)至其他的空余服務(wù)器內(nèi),實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)時(shí)的動(dòng)態(tài)調(diào)整。
[0055]4)對(duì)空間數(shù)據(jù)進(jìn)行分布式部署時(shí),存在文件配置中心層,該層的主要作用如下:對(duì)空間數(shù)據(jù)進(jìn)行查找、刪除和插入時(shí),根據(jù)客戶(hù)端(用戶(hù))輸入的數(shù)據(jù)操作條件,分析該數(shù)據(jù)所在的四叉樹(shù)索引級(jí)別,同時(shí)確定該數(shù)據(jù)所在的服務(wù)器,進(jìn)一步的在該服務(wù)器內(nèi)找到對(duì)應(yīng)的圖元數(shù)據(jù),并返回給客戶(hù)端(用戶(hù)),或者在找到的服務(wù)器內(nèi)進(jìn)行數(shù)據(jù)插入、刪除等操作。
[0056]圖3為本發(fā)明一個(gè)實(shí)施例的接受用戶(hù)對(duì)存儲(chǔ)的空間矢量數(shù)據(jù)進(jìn)行查詢(xún)、刪除和/或插入操作的流程圖;如圖3所示,多級(jí)空間索引下的數(shù)據(jù)操作包括:
[0057]I)確定需要進(jìn)行的數(shù)據(jù)操作,一般分為數(shù)據(jù)查找、數(shù)據(jù)刪除和數(shù)據(jù)插入;
[0058]2)數(shù)據(jù)查找時(shí),用戶(hù)在客戶(hù)端上輸入查找參數(shù),根據(jù)該參數(shù)由文件配置中心層確定查找對(duì)象所在的四叉樹(shù)索引層級(jí),以此確定該數(shù)據(jù)所在的服務(wù)器存儲(chǔ)設(shè)備;
[0059]3)對(duì)2)中服務(wù)器設(shè)備下按照索引層次進(jìn)行索引遍歷,通過(guò)索引查詢(xún)并調(diào)出其在服務(wù)器存儲(chǔ)中的詳細(xì)圖元數(shù)據(jù);
[0060]4)將詳細(xì)圖元數(shù)據(jù)通過(guò)網(wǎng)絡(luò)進(jìn)行傳送并顯現(xiàn)在客戶(hù)端上;
[0061]5)數(shù)據(jù)刪除時(shí),根據(jù)數(shù)據(jù)查找步驟在分布式服務(wù)器存儲(chǔ)中查找并定位需要?jiǎng)h除的數(shù)據(jù);
[0062]6)刪除5)中圖元數(shù)據(jù)及其索引號(hào),刪除該數(shù)據(jù)不會(huì)引起空間數(shù)據(jù)存儲(chǔ)分布的調(diào)整;
[0063]7)數(shù)據(jù)插入時(shí),根據(jù)該圖元數(shù)據(jù)本身的尺度大小確定其索引應(yīng)位于的四叉樹(shù)級(jí)別;
[0064]8)配置文件中心自動(dòng)建立該級(jí)別下該圖元數(shù)據(jù)的索引號(hào),根據(jù)索引號(hào)將其存儲(chǔ)至相應(yīng)的服務(wù)器設(shè)備中,圖元數(shù)據(jù)和對(duì)象索引數(shù)據(jù)直接存儲(chǔ)至服務(wù)器內(nèi),同時(shí)系統(tǒng)會(huì)自動(dòng)更新配置文件中心上的索引表數(shù)據(jù)。
[0065]具體的,在數(shù)據(jù)查找時(shí),客戶(hù)端的輸入條件一般分為兩種:關(guān)鍵字查找和地圖