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.