Кодирование/декодирование Geohash

Кодирование/декодирование Geohash

Геошеш — это удобный способ выражения местоположение (в любой точке мира) с использованием короткой буквенно-цифровой строки с большей точностью получается с более длинными строками.

А geohash фактически идентифицирует прямоугольную ячейку: на каждом уровне каждый дополнительный символ идентифицирует одна из 32 подъячеек.

Размеры ячеек геохэшей разной длины следующие; обратите внимание, что ширина ячейки уменьшается удаляясь от экватора (до 0 у полюсов):

Длина геохеша Ширина ячейки Высота ячейки
1 ≤ 5000 км × 5000 км
2 ≤ 1250 км × 625км
3 ≤ 156 км × 156км
4 ≤ 39,1 км × 19,5км
5 ≤ 4,89 км × 4,89 км
6 ≤ 1,22 км × 0,61 км
7 ≤ 153 м × 153 м
8 ≤ 38,2 м× 19,1 м
9 ≤ 4,77 м × 4,77 м
10 ≤ 1,19 м ×
0,596 м
11 ≤ 149 мм × 149 мм
12 ≤ 37,2 мм × 18,6 мм

Близлежащие местоположения обычно имеют похожие префиксы, хотя и не всегда: есть крайние случаи крупноклеточные границы; во Франции La Roche-Chalais (u000) находится всего в 30 км от Pomerol (ezzz). Надежный поиск префиксов для ближайших местоположений также будет искать префиксы 8 соседей ячейки. (например, запрос к базе данных результатов в пределах 30 с лишним километров от Помероля будет SELECT * FROM MyTable WHERE LEFT(Geohash, 4) IN ('ezzz', 'gbpb, 'u000', 'spbp', 'spbn', 'ezzy', 'ezzw', 'ezzx', 'gbp8')

. Будет ли это предлагать значительный (или какой-либо) прирост производительности по широте/долготе поиск по ограничительной рамке, который я еще не проверил.

Приложения для работы с базами данных могут быть ограничены, но геохэши, безусловно, могут быть проще для передачи, чем значения широты и долготы: хотя «dr5.ru6.j6v» не совсем запоминается, его может быть легче прочитать кому-то, чем эквивалентное «40.74879,-73.98547». .

Какие еще приложения есть у людей для геохешей?

Забавные геохеши: «солнечный» — в Саудовской Аравии, «мех» — в Гренландии, «риф» — в Коралловом море, «гик» — в Исландии. (к сожалению, «eu» находится в Магрибе, а не в Европе, а «королева» [Присцилла?] затерялась в австралийской пустыне).


См. ниже исходный код JavaScript, также доступен на GitHub. Эти функции должны быть простыми для перевода на другие языки, если это необходимо. Это также доступно из CDN jsDelivr или как пакет npm для Node.js.

Я предлагаю эти скрипты для бесплатного использования и адаптации, чтобы сбалансировать свой долг перед инфо-стих с открытым исходным кодом. Вы можете повторно использовать эти скрипты [по лицензии MIT, без любая гарантия, явная или подразумеваемая] при условии, что вы сохраните мое уведомление об авторских правах и ссылку на эту страницу.

Если вы хотите выразить свою признательность и поддержать дальнейшую разработку этих скриптов, Я бы с благодарностью принял пожертвования.

Если у вас есть какие-либо вопросы или вы обнаружите какие-либо проблемы, свяжитесь со мной по адресу ku.oc.epyt-elbavom@oeg-stpircs.

© 2014–2019 Крис Венесс


 

Создание хэша SHA3 — Калькулятор SHA3 — Онлайн

Самый простой в мире калькулятор контрольной суммы SHA-3 для веб-разработчиков и программистов.