Jaka jest precyzja Geohash


20

Chciałbym poznać dokładność geohashu o danej długości. Jeśli istnieje „prosta” formuła, której można użyć do jej obliczenia, byłoby to wyjątkowo fajne.

Wikipedia podaje dokładność do 8 znaków:

#   km
1   ±2500
2   ±630
3   ±78
4   ±20
5   ±2.4
6   ±0.61
7   ±0.076
8   ±0.019

1
Co chcesz wiedzieć?
Vince

Precyzja w przypadku geohashów zawierających 9, 10, 11 .. znaków
Gundon

1
Jeśli chodzi o to, nie tyle chodzi o to, ile macie dziesiętne, ile ile to jest istotne. Tutaj znajdziesz odpowiedź na swoje pytanie: gis.stackexchange.com/questions/8650/... , ale zwróć uwagę na różnicę między dokładnością a precyzją .
Martin

Artykuł Wikipedii na temat Geohash stwierdza również, że „każdy kolejny bit zmniejsza błąd o połowę. To nie jest błąd km (ani nawet błąd dziesiętny), ale raczej okno / zakres możliwych lokalizacji.
Erica

Dzięki, że wspomniałaś o tym, że Erica. Zrozumiałem to, ale może nie wyraziłem się wystarczająco jasno. @Martin Geohashy to nie to samo co współrzędne łacińskie / długie, chociaż pochodzą one od tego ... Nie sądzę, że to pytanie jest duplikatem drugiego. Jeśli tak: Czy możesz mi powiedzieć okno km geohash z 9 znakami?
Gundon

Odpowiedzi:


33

więc jeden symbol (litery lub cyfry) to podstawa 32 (8 bitów) Każdy pierwszy bit jest używany dla wysokiego lub niskiego okna, a następnie kolejne bity dzielą precyzję przez 2. (w najlepszym przypadku dzielimy przez 8), ale istnieje alternatywa pomiędzy precyzją lat i długą, więc kończy się dzieleniem przez 4 i 8 na przemian.

#   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

Zauważ, że jak wspomniano na stronie Wiki, wartości te pochodzą z lokalizacji w pobliżu równika, gdzie stopień ma prawie taką samą długość w X i Y. Aby uzyskać dokładniejsze informacje, należy zacząć od błędów szerokości i długości oraz obliczyć dokładność km wzdłuż osi X na podstawie szerokości geograficznej pozycji.


Jestem pomiędzy pisaniem kolejnej odpowiedzi lub komentarza, ale proszę bardzo. Odpowiedź jest logicznie poprawna, ale liczby są błędne. Jedna litera nie jest 32-bitowa, ale znajduje się w bazie 32, czyli zaledwie 5 bitów. Jedna litera może być 8-bitowa, zakładając znak ascii, ale nie ma 256 widocznych znaków, co przeczy celowi czytelności geohash. Kiedy masz base32, możesz użyć ograniczonego alfabetu do reprezentowania 5 bitów. Ponieważ jest to liczba nieparzysta, z każdą literą możesz dostać 3lat, 2lon lub 2lat, 3long, to, co robi geohash, jest również na przemian, więc jest to 3lat, 2lon, a następnie 2lat, 3lon, aby uzyskać równomierny rozkład.
auselen

Dzięki za komentarz. Sprawdzę i zaktualizuję swoją odpowiedź zgodnie z Twoim komentarzem.
radouxju,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.