Vantagens das árvores R em comparação com as geohashes

18

As geohashes estão sendo amplamente utilizadas em produtos como: Lucene, mongodb, etc. e se tornaram uma das tecnologias mais importantes dos dias atuais.

As geohashes substituíram as boas e velhas árvores R ou as árvores R têm alguma vantagem em comparação com as geohashes?

Jannat Arora
fonte

Respostas:

11

As geohash são uma maneira muito simples e eficaz de indexar recursos espaciais, particularmente recursos de pontos. Os recursos de linha e polígono são um pouco mais difíceis de indexar, mas podem ser feitos. Geohash é uma grade estática hierárquica de tamanho fixo, sobreposta na parte superior da superfície terrestre. As células de grade do mesmo nível hierárquico não se sobrepõem. O R-Tree é uma grade dinâmica cuja localização e tamanho da célula mudam dependendo dos recursos que estão sendo indexados. Os índices R-Tree apresentam caixas e células delimitadoras, sempre que você insere e atualiza dados. O Geohash é usado principalmente para recursos de ponto de indexação e as células não mudam a cada inserção e atualização de dados. As células de geohash não adotam os recursos como na R-tree.

Algumas das vantagens do geohash (em comparação ao r-tree) podem ser:

  • implementação fácil
  • sem degradação de desempenho com um número crescente de recursos
  • pesquisas de proximidade (parcialmente verdadeiras)

Algumas das desvantagens do geohash (em comparação ao r-tree) podem ser:

  • precisão arbitrária da grade
  • mais difícil de indexar (e consultar) recursos de linha e polígono
  • O tamanho do índice pode ser grande com alguns métodos de indexação de linhas e polígonos
  • pelas especificações, ele pode ser usado apenas com o sistema de coordenadas de longitude / latitude, embora o mesmo método possa ser aplicado a outros sistemas de coordenadas também

Os produtos (bancos de dados) que você mencionou usam geohash porque o geohash é usado principalmente para pontos de indexação e há muitos aplicativos que precisam desse recurso. Linhas e polígonos não são usados ​​com tanta frequência (exceto para os aplicativos GIS, é claro), então por que se preocupar com isso? Outra razão, é claro, é a facilidade de implementação. O Geohash converte coordenadas bidimensionais em valor unidimensional. Isso é chamado de redução dimensional. O valor unidimensional é fácil de ser indexado pelo b-tree padrão, que é usado principalmente nesses produtos.

Devo mencionar que existem algoritmos semelhantes ao geohash, mas a maioria deles é proprietária e requer licenciamento. Geohash é de domínio público. Esse também pode ser o motivo de um uso tão grande nos últimos anos.

Provavelmente existem outras vantagens e desvantagens, mas essas são as primeiras que me vêm à cabeça. Espero que minha explicação ajude um pouco.

Mario Miler
fonte
não entendi por que as geohashes fornecem precisão arbitrária da grade. Você pode explicar com um exemplo? Serei grato a você pelo mesmo.
Jannat Arora
1
O Geohash converte as coordenadas de longitude e latitude na cadeia unidimensional. O comprimento dessa sequência está diretamente vinculado à precisão convertida da coordenada. Por favor, veja este unterbahn.com/2009/11/… . Você pode ver como o comprimento de uma sequência de geohash está vinculado à precisão. Basicamente, a conversão de geohash converte pontos em uma área de polígono (uma grade de geohash). O tamanho dessa área de polígono depende do comprimento da sequência de geohash e da latitude que você está calculando.
Mario Miler