日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

深入浅出空间索引:2

發布時間:2023/12/20 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深入浅出空间索引:2 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

深入淺出空間索引2

  第一篇講到了傳統的索引如B樹不能很好的支持空間數據,比如點(POI等)、線(道路、河流等)、面(行政邊界、住宅區等)。本篇將對空間索引進行簡單分類,然后介紹網格索引。(深入淺出空間索引1:http://www.cnblogs.com/LBSer/p/3392491.html)

一、空間索引有哪幾種?

  傳統索引使用哈希和樹這兩類最基本的數據結構。空間索引雖然更為復雜,但仍然發展于這兩種數據結構。因此可以將空間索引劃分為兩大類:1)基于哈希思想,如網格索引等;2)基于樹思想,有四叉樹、R樹等。

?

二、網格索引

  哈希是通過一個哈希函數將關鍵字映射到內存或外存的數據結構,如何擴展到空間數據呢?

2.1. 網格索引原理

  擴展方法:對地理空間進行網格劃分,劃分成大小相同的網格,每個網格對應著一塊存儲空間,索引項登記上落入該網格的空間對象。

  舉個例子,我們將地理空間進行網格劃分,并進行編號。該空間范圍內有三個空間對象,分別是id=5的街道,23的河流和11的商圈。這時候我們可以按照哈希的數據結構存儲,每個網格對應著一個存儲桶,而桶里放著空間對象,比如對2號網格,里面存儲著id=5的空間對象,對35號網格,桶里放著id=5和id=23的空間對象。

?

  假如我們要查詢某一空間范圍內有哪些空間對象,比如下面的紅框就表示空間范圍,我們可以很快根據紅框的空間范圍算出它與35號和36號網格相交,然后分別到35號和36號網格中查找空間對象,最終找出id=5和id=23的空間對象。

?

2.2. 網格索引缺點

1)索引數據冗余

  網格與對象之間多對多關系在空間對象數量多、大小不均時造成索引數據冗余。比如11號商圈這個空間對象在68,69,100,101這4個網格都有存儲,浪費了大量空間。

2)網格的大小難以確定

  網格的劃分大小難以確定。網格劃分得越密,需要的存儲空間越多,網格劃分的越粗,查找效率可能會降低。對于圖a,這個查詢需要查詢4個網格,由于4個網格覆蓋了整個空間,因此這個查找其實是將空間范圍內所有的點數據都遍歷一遍,失去了索引的意義。

?

3)很多網格沒有數據

  空間數據具有明顯的聚集性,比如POI只在幾個熱點商貿區聚集,在郊區等地方很稀疏,這將導致很多網格內沒有任何空間數據。

?

?

?

下一節將介紹四叉樹。

總結

以上是生活随笔為你收集整理的深入浅出空间索引:2的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。