Функции для работы с Geohash
Geohash
Geohash — это система геокодирования, которая разбивает поверхность Земли на ячейки в форме сетки и кодирует каждую ячейку в короткую строку букв и цифр. Это иерархическая структура данных, поэтому чем длиннее строка geohash, тем точнее будет географическое местоположение.
Если вам нужно вручную преобразовать географические координаты в строки geohash, вы можете использовать geohash.org.
geohashEncode
Кодирует широту и долготу в строку geohash.
Синтаксис
Входные значения
longitude
— Долгота части координаты, которую вы хотите закодировать. Значение с плавающей точкой в диапазоне[-180°, 180°]
. Float.latitude
— Широта части координаты, которую вы хотите закодировать. Значение с плавающей точкой в диапазоне[-90°, 90°]
. Float.precision
(опционально) — Длина полученной закодированной строки. По умолчанию12
. Целое число в диапазоне[1, 12]
. Int8.
- Все параметры координат должны быть одного типа: либо
Float32
, либоFloat64
. - Для параметра
precision
любое значение меньше1
или больше12
будет беззвучно преобразовано в12
.
Возвращаемые значения
- Алфавитно-цифровая строка закодированной координаты (используется модифицированная версия алфавита для кодирования base32). String.
Пример
Запрос:
Результат:
geohashDecode
Декодирует любую строку, закодированную в geohash, в долготу и широту.
Синтаксис
Входные значения
hash_str
— Закодированная строка geohash.
Возвращаемые значения
Пример
geohashesInBox
Возвращает массив строк, закодированных в geohash с заданной точностью, которые попадают внутрь и пересекают границы данного прямоугольника, в основном 2D-решетка, плоская в массиве.
Синтаксис
Аргументы
longitude_min
— Минимальная долгота. Диапазон:[-180°, 180°]
. Float.latitude_min
— Минимальная широта. Диапазон:[-90°, 90°]
. Float.longitude_max
— Максимальная долгота. Диапазон:[-180°, 180°]
. Float.latitude_max
— Максимальная широта. Диапазон:[-90°, 90°]
. Float.precision
— Точность geohash. Диапазон:[1, 12]
. UInt8.
Все параметры координат должны быть одного типа: либо Float32
, либо Float64
.
Возвращаемые значения
- Массив строк длины точности, представляющих geohash-ячейки, покрывающие указанную область, не следует полагаться на порядок элементов. Array(String).
[]
- Пустой массив, если минимальные значения широты и долготы не меньше соответствующих максимальных значений.
Функция вызывает исключение, если полученный массив превышает 10'000'000 элементов.
Пример
Запрос:
Результат: