Функции для работы с системой Geohash
Geohash — это система геокодирования, которая делит поверхность Земли на участки в виде "решетки", и каждую ячейку решетки кодирует в виде строки из букв и цифр. Система поддерживает иерархию (вложенность) ячеек, поэтому чем точнее определена геопозиция, тем длиннее строка с кодом соответствующей ячейки.
Для ручного преобразования географических координат в строку geohash можно использовать сайт geohash.org.
geohashEncode
Кодирует широту и долготу в строку geohash.
Входные значения
- longitude — долгота. Диапазон —
[-180°, 180°]. - latitude — широта. Диапазон —
[-90°, 90°]. - precision — длина результирующей строки, по умолчанию
12. Опционально. Целое число в диапазоне[1, 12]. Любое значение меньше, чем1или больше12автоматически преобразуются в12.
Возвращаемые значения
- Строка с координатой, закодированной модифицированной версией алфавита base32.
Пример
geohashDecode
Декодирует любую строку, закодированную в geohash, на долготу и широту.
Входные значения
geohash_string— строка, содержащая geohash.
Возвращаемые значения
(longitude, latitude)— широта и долгота. Кортеж из двух значений типаFloat64.
Пример
geohashesInBox
Формирует массив участков, которые находятся внутри или пересекают границу заданного участка на поверхности. Каждый участок описывается строкой geohash заданной точности.
Синтаксис
Аргументы
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. Порядок строк — произвольный.
- [] - Если переданные минимальные значения широты и долготы больше соответствующих максимальных значений, функция возвращает пустой массив.
Если возвращаемый массив содержит свыше 10 000 000 элементов, функция сгенерирует исключение.
Пример
Запрос:
Результат: