Перейти к основному содержимому
Перейти к основному содержимому

Функции для работы с 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.

Возвращаемые значения

  • Кортеж (longitude, latitude) значений Float64 долготы и широты. Tuple(Float64)

Пример

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 элементов.

Пример

Запрос:

Результат: