Qual é a precisão de um Geohash

20

Gostaria de saber a precisão de uma geohash com um determinado comprimento. Se houver uma fórmula 'simples' que você possa usar para calculá-la, isso seria muito legal.

A Wikipedia lista a precisão de até 8 caracteres:

#   km
1   ±2500
2   ±630
3   ±78
4   ±20
5   ±2.4
6   ±0.61
7   ±0.076
8   ±0.019
Gundon
fonte
1
O que é isto que você quer saber?
Vince
A precisão quando tendo geohashes com 9, 10, 11 .. caracteres
Gundon
1
Quando se trata disso, não se trata tanto de números decimais, mas de quantos são relevantes. Veja aqui uma resposta para sua pergunta: gis.stackexchange.com/questions/8650/… , mas preste atenção à diferença entre precisão e precisão .
Martin Martin
O artigo da Wikipedia sobre Geohash também afirma que "cada bit subsequente reduz pela metade o erro". Este não é o erro do km (ou mesmo o erro do grau decimal), mas a janela / intervalo de locais possíveis.
Erica
Obrigado por mencionar que Erica. Eu entendi isso, mas talvez não tenha me deixado claro o suficiente. @ Martin Geohashes não são a mesma coisa que coordenadas lat / long, embora sejam derivadas disso. Eu não acho que essa pergunta seja uma duplicata da outra. Se fosse: Você pode me dizer a janela km de uma geohash com 9 caracteres?
Gundon 26/09/14

Respostas:

33

portanto, um símbolo (letras ou dígitos) é a base 32 (8 bits). Cada primeiro bit é usado para janela alta ou baixa; os bits subsequentes dividem a precisão por 2. (portanto, divida por 8 no melhor caso), mas há uma alternância. entre precisão lat e long, então acaba dividindo por 4 e 8 como alternativa.

#   km      
1   ± 2500
2   ± 630
3   ± 78
4   ± 20
5   ± 2.4
6   ± 0.61
7   ± 0.076
8   ± 0.019
9   ± 0.0024
10  ± 0.00060
11  ± 0.000074

Observe que, conforme mencionado na página Wiki, esses valores vêm de um local próximo ao equador, onde um grau tem quase o mesmo comprimento em X e Y. Para obter informações mais precisas, você deve começar pelos erros de latência e por erros longos, e calcule a precisão do km ao longo do eixo X com base na latitude da sua posição.

radouxju
fonte
Estou entre escrever outra resposta ou um comentário, mas aqui vai. A resposta está logicamente correta, mas os números estão completamente errados. Uma letra não tem 32 bits, mas está na base 32, que é de apenas 5 bits. Uma letra pode ter 8 bits, assumindo um caractere ascii, mas que não possui 256 caracteres visíveis, o que desafia a finalidade de legibilidade do geohash. Quando você tem base32, pode usar um alfabeto limitado para representar 5 bits. Como esse é um número ímpar, em cada letra você pode obter 3lat, 2lon ou 2lat, 3long, o que a geohash faz também é alternativo, por isso é 3lat, 2lon e 2lat, 3lon para obter distribuição uniforme.
auselen
Obrigado por seu comentário. Vou verificar e atualizar minha resposta de acordo com o seu comentário.
precisa saber é o seguinte