Geohash — відкрита система геокодування винайдена Gustavo Niemeyer у 2008 році,
де географічні координати кодуються короткою строкою цифр та символів. Кожен наступний символ в строці покращує точність задання. Також чим довший спільний префікс у двох строк, тим ближче знаходяться об'єкти.
Кодування
Координати Майдану Незалежності дають коротку строку символів u8vxn85j4.
Geohash використовує систему числення з основою 32, де цифрами є 0—9, b—z. Не використовуються літери "a", "i", "l", "o". Таким чином кожен символ кодує 5 біт. Всі біти нумеруються починаючи від нуля зліва направо. Парні біти кодують довготу (інтервал від −180 до +180), а непарні — широту (інтервал від −90 до +90). Декодування довготи та широти здійснюється незалежно. При декодуванні кожного біту, значення 0 означає ліву частину інтервалу, а 1 — праву. Так здійснюємо поділ інтервалу навпіл до вичерпання всіх бітів. Далі за координату об'єкту вважають середину останнього інтервалу, а за похибку — половину його величини.
Geohash довжиною у 8 символів дає точність у 19 м. Кожна додаткова пара символів покращує обидві координати у 32 рази.
Сітка Перший символ коду (5 біт), містить 3 біти довготи та 2 біти широти, тобто визначає сітку 360/2³ x 180/2² = 45° x 45°.
Другий символ коду, навпаки містить 2 біти довготи та 3 біти широти, тобто визначає сітку 360/25 x 180/25 = 11.25° x 5.625°.
Третій символ коду, знову 3 біти довготи та 2 біти широти, тобто визначає сітку 360/28 x 180/27 ≈ 1.4° x 1.4°.
Geohash, к-ть символів Широта, к-ть біт Довгота, к-ть біт Широта, сітка Довгота, сітка Сітка на широті України (48°), зменшення по довготі ≈ 2/3 1 2 3 45° 45° 2 5 5 5.625° 11.25° 3 7 8 ≈ 1.4° ≈ 1.4° 156 x 104 км 4 10 10 ≈ 0.176° ≈ 0.35° 20 x 26 км 5 12 13 ≈ 0.044° ≈ 0.044° 4.9 x 3.3 км 6 15 15 ≈ 0.0055° ≈ 0.011° 610 x 810 м 7 17 18 ≈ 152 м ≈ 152 м 152 x 100 м 8 20 20 ≈ 19 м ≈ 38 м 19 x 25 м 9 22 23 ≈ 4.75 м ≈ 4.75 м 4.75 x 3.15 м 10 25 25 ≈ 0.6 м ≈ 1.2 м 0.6 x 0.8 м
Приклади Карта розміром 156 x 104 км Ізюм — Донецьк — Велика Новосілка має код ubd.
Використання Geohash використовується у індексах просторових баз даних, оскільки сусідні значення в індексі означають просторово близькі об'єкти. Короткий запис дозволяє використовувати Geohash для візуального геотегування та в онлайн GIS для передачі координат через URL.
Примітки
Посилання Перерахунок координат Сітка geohash