Геохэш-36
Эта статья нуждается в дополнительных цитатах для проверки . ( июнь 2012 г. ) |
Геокод Geohash-36 алгоритм — это сжатия с открытым исходным кодом для данных мировых координат. Он был разработан как вариант формата OpenPostcode , разработанного в качестве потенциального почтового индекса геолокации для Ирландской Республики . [1] Он рассчитывается по-другому и использует более краткое представление по базе 36, чем другие геокоды , использующие базу 32 . [2]
Несмотря на название, нет никакой алгоритмической (не использовать кривую Z-порядка ) или типологической связи с Geohash . Это рекламная стратегия, связанная с популярным геокодированием в базе 32. Функции кодирования/декодирования математически не похожи на функции Geohash.
Метод кодирования
[ редактировать ]Разработанный для URL-адресов , электронного хранения и связи, а не для человеческой памяти и разговоров, он чувствителен к регистру и использует 36-значный алфавит: «23456789bBCdDFgGhHjJKlLMnNPqQrRtTVWX».
Преобразование символов:
Десятичный | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Геохэш-36 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | б | Б | С | д | Д | Ф | г | Г | час | ЧАС |
Десятичный | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 |
Геохэш-36 | дж | Дж | К | л | л | М | н | Н | П | д | вопрос | р | Р | т | Т | V | В | Х |
Символы выбираются так, чтобы избежать гласных , чисел, подобных гласным, путаницы символов и использовать символы нижнего регистра, которые обычно отличаются от их эквивалентов в верхнем регистре в стандартных шрифтах.
Код может иметь различную длину и, следовательно, точность. Каждый символ представляет собой дальнейшее подразделение в сетке 6 на 6 — начиная с координаты северо-запад (верхний левый) и продолжая, ряд за рядом, к юго-востоку (справа внизу). Соседние координаты имеют во многом схожую кодировку и обычно различаются только по самым правым символам; однако существуют крайние крайние случаи , когда соседние координаты находятся на противоположных сторонах разделения сетки. Коды сортируются логически, но не в обычном порядке координат.
Без гласных избегаются непреднамеренные англоязычные слова, которые могут появиться в исходном коде Geohash. Поскольку гласные не используются, компонент высоты в закодированных метрах не является обязательным с префиксом символа «А» (ниже уровня моря с префиксом строчной буквы «а»).
Необязательная контрольная сумма обозначается строчными буквами английского алфавита. Он подтверждает код как Geohash-36 и обеспечивает проверку на наличие неправильных или транспонированных символов. Он рассчитывается как модуль 26 суммы значений каждого символа (разделители высоты «A» или «a» равны нулю), умноженной на его положение, считываемое слева направо.
Эффективность
[ редактировать ]По сравнению с хранением координат GPS с использованием типа данных Decimal в SQL, Geohash-36 не позволяет значительно сэкономить на байтах базы данных. Для использования DECIMAL(8,5) и DECIMAL(7,5) требуется 10 байт. [3] и имеет точность около 1,1 квадратного метра (или лучше дальше от экватора). Эквивалентные 10 байт кода Geohash-36 имеют точность примерно до 6 квадратных метров. [4]
Статуя Свободы с координатами 40.689167, −74.044444 закодирована как 9LVB4BH89g-m. Обратное декодирование соответствует 40,68916 8 , -74,044445.
Здание Шард в Лондоне с координатами 51.504444, -0.086667 кодируется как bdrdC26BqH-m (декодируется до 51.504444, -0.08666 6 ) или может быть успешно сокращено до bdrdC26B. [5]
Реализации
[ редактировать ]С
[ редактировать ]- «libgeohash36» — реализация алгоритма Geohash-36 на чистом языке C.
Руби
[ редактировать ]- «Geohash36» — реализация алгоритма Geohash-36 на Ruby.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Почтовые индексы DCENR» . Проверено 26 июня 2012 г.
- ^ «Советы и рекомендации по геохешу» . Проверено 26 июня 2012 г.
- ^ "MSDN "десятичные и числовые (Transact-SQL)" " . Проверено 26 июня 2012 г.
- ^ «Геохаш-36» . Архивировано из оригинала 27 декабря 2012 года . Проверено 26 июня 2012 г.
- ^ «Geo36.org» . Проверено 26 июня 2012 г.
6.^ «Геохеши» [1] . Проверено 5 июня 2024 г.