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

一種基于二維點的空間索引構建查詢方法及系統(tǒng)與流程

文檔序號:40439086發(fā)布日期:2024-12-24 15:13閱讀:14來源:國知局
一種基于二維點的空間索引構建查詢方法及系統(tǒng)與流程

本發(fā)明涉及空間索引,具體而言,涉及一種基于二維點的空間索引構建查詢方法及系統(tǒng)。


背景技術:

1、空間索引是一種用于高效查詢空間數(shù)據(jù)的數(shù)據(jù)結構,廣泛應用于地理信息系統(tǒng)(gis)、計算機圖形學、計算機輔助設計(cad)等領域??臻g索引解決的問題是如何在海量的點中,快速的找到指定范圍內(nèi)的點。

2、傳統(tǒng)的空間索引技術包括四叉樹、r樹、kd樹等,它們各有優(yōu)勢和局限性。四叉樹是一種將二維空間劃分為四個象限的樹形結構,適用于均勻分布的空間數(shù)據(jù),但在數(shù)據(jù)分布不均勻時性能下降。r樹是一種平衡樹結構,能夠動態(tài)地調(diào)整樹的深度和節(jié)點的分裂,適用于高維空間數(shù)據(jù)的索引,但在處理大規(guī)模數(shù)據(jù)集時可能會遇到性能瓶頸。kd樹(k-dimensional?tree)是一種將空間劃分為k維的樹形結構,適用于快速檢索k維空間中的點,但構建和維護成本較高。

3、目前空間索引的存在方式為基于數(shù)據(jù)庫的索引和基于內(nèi)存的索引。基于數(shù)據(jù)庫的空間索引依托于數(shù)據(jù)庫的能力支撐,這是一把雙刃劍,一方面可以利用數(shù)據(jù)庫的能力和資源配套為應用提供便利和可行性;另一方面,無法獨立運行,一些輕量級的、實時性較高的場景難以滿足要求。而基于內(nèi)存的空間索引雖然具備了快速查詢的能力,但是在數(shù)據(jù)量、內(nèi)存和計算資源優(yōu)化、索引資源復用上存在不足。針對現(xiàn)有的空間索引技術存在的不足,本發(fā)明提出了一種基于二維點的空間索引構建查詢方法及系統(tǒng)。


技術實現(xiàn)思路

1、本發(fā)明提供一種基于二維點的空間索引構建查詢方法及系統(tǒng),用以克服現(xiàn)有技術中存在的至少一個技術問題。

2、一方面,本發(fā)明提供一種基于二維點的空間索引構建查詢方法,包括:

3、構建索引容器,輸入所述索引容器的容量;

4、判斷所述索引容器的容量是否滿足第一預定要求,若不滿足第一預定要求,程序結束;若滿足第一預定要求,根據(jù)所述索引容器的容量初始化消息頭空間、索引空間和坐標空間;

5、依次輸入需要索引的要素信息,所述要素信息包括坐標的id、經(jīng)度和緯度;每次輸入要素信息時,判斷當前狀態(tài)是否滿足第二預定要求,若不滿足第二預定要求,程序結束;若滿足第二預定要求,在所述索引空間記錄坐標的id,并在所述坐標空間記錄坐標的經(jīng)度和緯度;

6、判斷要素數(shù)量是否符合第三預定要求,若不符合,程序結束;若符合,判斷所述索引容器中的要素數(shù)量是否大于閾值,若不大于,排序完成,生成索引樹,并更改狀態(tài);若大于,選擇一個坐標軸作為劃分方向;

7、以當前坐標軸上第k小的要素作為基準數(shù),基于所述基準數(shù)將要素劃分為兩部分,分別為左邊部分和右邊部分;

8、判斷劃分后的要素數(shù)量是否大于閾值,若不大于,劃分完成,生成索引樹,并更改狀態(tài);若大于,選擇另一個坐標軸作為劃分方向,針對左邊部分的要素和右邊部分的要素,分別返回以當前坐標軸上第k小的要素作為基準數(shù)步驟;

9、利用所述索引樹,進行數(shù)據(jù)查詢。

10、可選地,判斷所述索引容器的容量是否滿足第一預定要求,具體為:

11、判斷所述索引容器的容量是否為整數(shù),若不是整數(shù),則表示所述索引容器的容量不滿足第一預定要求;若是整數(shù),判斷所述索引容器的容量是否大于0,若不大于0,則表示所述索引容器的容量不滿足第一預定要求,若大于0,則表示所述索引容器的容量滿足第一預定要求。

12、可選地,判斷當前狀態(tài)是否滿足第二預定要求,具體為:

13、判斷索引容器中當前的要素數(shù)量是否超過所述索引容器的容量,若超過,則表示不滿足第二預定要求;若未超過,則判斷所述索引空間中是否包含當前輸入坐標的id,若包含,則表示不滿足第二預定要求,若不包含,則表示滿足第二預定要求。

14、可選地,所述消息頭空間包括開始位和葉子節(jié)點數(shù)量,將葉子節(jié)點數(shù)量作為所述閾值。

15、可選地,基于所述基準數(shù)將要素劃分為兩部分,分別為左邊部分和右邊部分,具體為:

16、基于當前坐標,使小于所述基準數(shù)的要素位于所述基準數(shù)的左邊,作為左邊部分;大于所述基準數(shù)的要素位于所述基準數(shù)的右邊,作為右邊部分。

17、可選地,采用矩形查詢方法進行數(shù)據(jù)查詢,具體為:

18、輸入矩形框坐標;

19、判斷所述矩形框坐標是否符合矩形規(guī)則,若不符合,程序結束;若符合,根據(jù)更改后的狀態(tài)判斷索引樹是否生成;

20、若索引樹未生成,程序結束;若索引樹生成,從根節(jié)點開始向下遍歷所述索引樹,判斷當前節(jié)點對應的矩形區(qū)域與矩形框是否存在包含關系;

21、如果不存在包含關系,則程序結束;如果存在包含關系,則遞歸查詢當前節(jié)點的左右子樹對應的矩形區(qū)域與矩形框是否存在包含關系;

22、到達葉子節(jié)點后,如果當前葉子節(jié)點位于所述矩形框內(nèi),則將當前葉子節(jié)點加入選擇集合;

23、查找到所有落在矩形框內(nèi)的點后形成的選擇集合,為查詢結果數(shù)據(jù)。

24、可選地,采用周邊查詢方法進行數(shù)據(jù)查詢,具體為:

25、輸入查詢點和查詢范圍;

26、判斷輸入的所述查詢點和查詢范圍是否合法,若不合法,程序結束;若合法,根據(jù)更改后的狀態(tài)判斷索引樹是否生成;

27、若索引樹未生成,程序結束;若索引樹生成,根據(jù)所述查詢點和所述查詢范圍,生成一個圓形;

28、從根節(jié)點開始向下遍歷所述索引樹,判斷當前節(jié)點對應的矩形區(qū)域與所述圓形是否存在包含關系;

29、如果不存在包含關系,則程序結束;如果存在包含關系,則遞歸查詢當前節(jié)點的左右子樹對應的矩形區(qū)域與所述圓形是否存在包含關系;

30、到達葉子節(jié)點后,如果當前葉子節(jié)點位于所述圓形內(nèi),則將當前葉子節(jié)點加入選擇集合;

31、查找到所有落在所述圓形內(nèi)的點后形成的選擇集合,為查詢結果數(shù)據(jù)。

32、可選地,生成索引樹后,還包括:利用所述索引樹生成索引文件。

33、可選地,采用導出索引文件的方法進行數(shù)據(jù)查詢。

34、另一方面,本發(fā)明還提供一種基于二維點的空間索引構建查詢系統(tǒng),包括:

35、構建模塊,用于構建索引容器,輸入所述索引容器的容量;

36、第一判斷模塊,用于判斷所述索引容器的容量是否滿足第一預定要求,若不滿足第一預定要求,程序結束;若滿足第一預定要求,根據(jù)所述索引容器的容量初始化消息頭空間、索引空間和坐標空間;

37、輸入模塊,用于依次輸入需要索引的要素信息,所述要素信息包括坐標的id、經(jīng)度和緯度;每次輸入要素信息后,判斷當前狀態(tài)是否滿足第二預定要求,若不滿足第二預定要求,程序結束;若滿足第二預定要求,在所述索引空間記錄坐標的id,并在所述坐標空間記錄坐標的經(jīng)度和緯度;

38、第二判斷模塊,用于判斷要素數(shù)量是否符合第三預定要求,若不符合,程序結束;若符合,判斷所述索引容器中的要素數(shù)量是否大于閾值,若不大于,排序完成,生成索引樹,并更改狀態(tài);若大于,選擇一個坐標作為劃分方向;

39、劃分模塊,用于以當前坐標軸上第k小的要素作為基準數(shù),基于所述基準數(shù)將要素劃分為兩部分,分別為左邊部分和右邊部分;

40、第三判斷模塊,用于判斷劃分后的要素數(shù)量是否大于閾值,若不大于,劃分完成,生成索引樹,并更改狀態(tài);若大于,選擇另一個坐標軸作為劃分方向,針對左邊部分的要素和右邊部分的要素,分別返回以當前坐標軸上第k小的要素作為基準數(shù)步驟;

41、查詢模塊,用于利用所述索引樹,進行數(shù)據(jù)查詢。

42、本發(fā)明實施例的創(chuàng)新點包括:

43、1、本實施例中,通過構建一種靜態(tài)的快速空間索引索,實現(xiàn)數(shù)據(jù)查詢,能夠在占用更小內(nèi)存資源的基礎上,提供更高的查詢效率,且能夠支持更大的點數(shù)據(jù)規(guī)模,達到百萬千萬,是本發(fā)明實施例的創(chuàng)新點之一。

44、2、本實施例中,通過制定一種能夠復制的索引保存協(xié)議,讓索引能夠快速復制,從而實現(xiàn)快速復用,是本發(fā)明實施例的創(chuàng)新點之一。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
宜城市| 雅江县| 巢湖市| 阿克| 阿拉善盟| 天台县| 安徽省| 镇巴县| 开封市| 普安县| 淮北市| 色达县| 高安市| 蓬溪县| 林芝县| 黎平县| 阳山县| 乐至县| 新丰县| 田林县| 建湖县| 肃宁县| 老河口市| 手游| 建平县| 雅安市| 云浮市| 炎陵县| 乐至县| 德州市| 灵璧县| 海淀区| 六枝特区| 乃东县| 武宣县| 库尔勒市| 马边| 三河市| 金塔县| 巴楚县| 五原县|