Ventajas de los R-trees en comparación con los geohashes

15

Los geohashes se utilizan ampliamente en productos como: Lucene, mongodb, etc. y se han convertido en una de las tecnologías más importantes de la actualidad.

¿Los Geohashes han reemplazado a los viejos viejos R-trees o tienen los R-trees alguna ventaja en comparación con los Geohashes?

    
pregunta Jannat Arora 27.07.2014 - 22:17

1 respuesta

10

Geohash es una forma muy simple y efectiva de indexar características espaciales, particularmente características de puntos. Las características de línea y polígono son un poco más difíciles de indexar, pero se pueden hacer. Geohash es una cuadrícula de tamaño fijo jerárquico estático, superpuesta sobre la superficie de la tierra. Las celdas de cuadrícula del mismo nivel jerárquico no se superponen. R-Tree es una cuadrícula dinámica cuya ubicación y tamaño de celda cambian según las características que están indexando. Las características de los índices de R-Tree que encajan en celdas y celdas cambian cada vez que inserta y actualiza datos. Geohash se utiliza principalmente para indexar características de puntos y las celdas no cambian con cada inserción y actualización de datos. Las celdas de Geohash no adoptan las características como con R-tree.

Algunas de las ventajas de geohash (en comparación con r-tree) podrían ser:

  • implementación fácil
  • sin degradación del rendimiento con un número creciente de funciones
  • búsquedas de proximidad (parcialmente verdaderas)

Algunas de las desventajas de geohash (en comparación con r-tree) podrían ser:

  • precisión arbitraria de la cuadrícula
  • características de línea y polígono más difíciles de indexar (y consultar)
  • el tamaño del índice podría ser grande con algunos métodos de línea y indexación de polígonos
  • según las especificaciones, solo se puede usar con longitud / latitud sistema de coordenadas, aunque el mismo método podría aplicarse a otros sistemas de coordenadas también

Esos productos (bases de datos) que mencionó usan geohash porque geohash se usa principalmente para indexar puntos y hay muchas aplicaciones que necesitan tal característica. Las líneas y los polígonos no se usan con tanta frecuencia (a excepción de las aplicaciones GIS, por supuesto), así que, ¿para qué molestarse? Otra razón, por supuesto, es la facilidad de implementación. Geohash convierte la coordenada bidimensional en un valor unidimensional. Esto se llama reducción dimensional. El valor unidimensional es fácil de indexar por el árbol b estándar que se utiliza principalmente en esos productos.

Tengo que mencionar que hay algoritmos similares a geohash pero la mayoría de ellos son propietarios y requieren licencias. Geohash está en dominio público. Esta podría ser también la razón de un uso tan grande en los últimos años.

Probablemente hay otras ventajas y desventajas, pero estas son las primeras que me vienen a la mente. Espero que mi explicación ayude un poco.

    
respondido por el Mario Miler 29.07.2014 - 08:36

Lea otras preguntas en las etiquetas