与树形哈希相比,R树的优势


Answers:


11

Geohash是索引空间要素(尤其是点要素)的非常简单有效的方法。线和面要素很难索引,但是可以做到。Geohash是一个静态的分层固定大小网格,覆盖在地球表面的顶部。相同层次级别的网格单元不重叠。R-Tree是一个动态网格,其单元位置和大小根据它们所索引的功能而变化。R-Tree索引功能的边界框和单元在每次插入和更新数据时都会更改。Geohash主要用于索引点要素,并且单元不会随着数据的每次插入和更新而改变。Geohash单元不采用R树那样的功能。

geohash的一些优点(与r-tree相比)可能是:

  • 易于实施
  • 随着功能数量的增加,性能不会降低
  • 邻近搜索(部分正确)

geohash的一些缺点(与r-tree相比)可能是:

  • 网格的任意精度
  • 难以索引(和查询)线和面要素
  • 使用某些线和面索引方法,索引的大小可能会很大
  • 根据规格,它只能用于经度/纬度坐标系,尽管相同的方法也可以应用于其他坐标系

您提到的那些产品(数据库)使用geohash,因为geohash主要用于索引点,并且许多应用程序都需要这种功能。线和多边形并不常用(当然,除了GIS应用程序之外),所以为什么要麻烦它。其他原因当然是易于实施。Geohash将二维坐标转换为一维值。这称为降维。一维值易于通过标准b树进行索引,而标准b树通常在这些产品中使用。

我必须提到,有与geohash类似的算法,但其中大多数是专有算法,需要许可。Geohash在公共领域。这也可能是近年来使用量如此之大的原因。

可能还有其他优点和缺点,但首先想到的是这些优点和缺点。我希望我的解释能有所帮助。


我不了解为何为什么地杂波会给网格带来任意精度。你能举个例子解释一下。我将同样感谢你。
Jannat Arora 2014年

1
Geohash将经度和纬度坐标转换为一维字符串。该字符串的长度直接与坐标的转换精度相关。请查看此unterbahn.com/2009/11/…。您可以看到geohash字符串的长度与精度之间的关系。基本上,geohash将点转换为多边形区域(一个geohash网格)。该多边形区域的大小取决于geohash字符串的长度以及您计算geohash的纬度。
Mario Miler
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.