Функции для работы с S2 индексом
S2Index
S2 — это система географической индексации, в которой все географические данные представлены на сфере (подобно глобусу).
В библиотеке S2 точки представлены как S2 индекс — конкретное число, которое внутренне кодирует точку на поверхности единичной сферы, в отличие от традиционных (широта, долгота) пар. Чтобы получить S2 индекс точки для данной точки, указанной в формате (широта, долгота), используйте функцию geoToS2. Также вы можете использовать функцию s2ToGeo для получения географических координат, соответствующих указанному S2 индексу точки.
geoToS2
Возвращает S2 индекс точки, соответствующий предоставленным координатам (долгота, широта)
.
Синтаксис
Аргументы
Возвращаемые значения
- S2 индекс точки. UInt64.
Пример
Запрос:
Результат:
s2ToGeo
Возвращает гео координаты (долгота, широта)
, соответствующие предоставленному S2 индексу точки.
Синтаксис
Аргументы
s2index
— S2 индекс. UInt64.
Возвращаемые значения
Пример
Запрос:
Результат:
s2GetNeighbors
Возвращает S2 соседние индексы, соответствующие предоставленному S2. Каждая ячейка в системе S2 является четырехугольником, ограниченным четырьмя геодезическими линиями. Таким образом, каждая ячейка имеет 4 соседа.
Синтаксис
Аргументы
s2index
— S2 индекс. UInt64.
Возвращаемое значение
- Массив, состоящий из 4 соседних индексов:
array[s2index1, s2index3, s2index2, s2index4]
. Array(UInt64).
Пример
Запрос:
Результат:
s2CellsIntersect
Определяет, пересекаются ли две предоставленные S2 ячейки или нет.
Синтаксис
Аргументы
s2index1
,s2index2
— S2 индекс. UInt64.
Возвращаемое значение
Пример
Запрос:
Результат:
s2CapContains
Определяет, содержит ли кап S2 точку. Кап представляет собой часть сферы, которая была отрезана плоскостью. Он определяется точкой на сфере и радиусом в градусах.
Синтаксис
Аргументы
center
— S2 индекс точки, соответствующий капу. UInt64.degrees
— Радиус капа в градусах. Float64.point
— S2 индекс точки. UInt64.
Возвращаемое значение
Пример
Запрос:
Результат:
s2CapUnion
Определяет наименьший кап, который содержит два заданных капа. Кап представляет собой часть сферы, которая была отрезана плоскостью. Он определяется точкой на сфере и радиусом в градусах.
Синтаксис
Аргументы
center1
,center2
— S2 индексы точек, соответствующие двум входным капам. UInt64.radius1
,radius2
— Радиусы двух входных капов в градусах. Float64.
Возвращаемые значения
center
— S2 индекс точки, соответствующий центру наименьшего капа, содержащего два входных капа. UInt64.radius
— Радиус наименьшего капа, содержащего два входных капа. Float64.
Пример
Запрос:
Результат:
s2RectAdd
Увеличивает размер ограничивающего прямоугольника, чтобы включить заданную S2 точку. В системе S2 прямоугольник представлен типом S2Region, называемым S2LatLngRect
, который представляет прямоугольник в пространстве широты-долготы.
Синтаксис
Аргументы
s2PointLow
— Низкий S2 индекс точки, соответствующий прямоугольнику. UInt64.s2PointHigh
— Высокий S2 индекс точки, соответствующий прямоугольнику. UInt64.s2Point
— Целевой S2 индекс точки, который следует увеличить, чтобы включить его в ограничивающий прямоугольник. UInt64.
Возвращаемые значения
s2PointLow
— Низкий S2 индекс ячейки, соответствующий расширенному прямоугольнику. UInt64.s2PointHigh
— Высокий S2 индекс ячейки, соответствующий расширенному прямоугольнику. UInt64.
Пример
Запрос:
Результат:
s2RectContains
Определяет, содержит ли данный прямоугольник S2 точку. В системе S2 прямоугольник представлен типом S2Region, называемым S2LatLngRect
, который представляет прямоугольник в пространстве широты-долготы.
Синтаксис
Аргументы
s2PointLow
— Низкий S2 индекс точки, соответствующий прямоугольнику. UInt64.s2PointHigh
— Высокий S2 индекс точки, соответствующий прямоугольнику. UInt64.s2Point
— Целевой S2 индекс точки. UInt64.
Возвращаемое значение
1
— Если прямоугольник содержит данную S2 точку.0
— Если прямоугольник не содержит данную S2 точку.
Пример
Запрос:
Результат:
s2RectUnion
Возвращает наименьший прямоугольник, содержащий объединение этого прямоугольника и заданного прямоугольника. В системе S2 прямоугольник представлен типом S2Region, называемым S2LatLngRect
, который представляет прямоугольник в пространстве широты-долготы.
Синтаксис
Аргументы
s2Rect1PointLow
,s2Rect1PointHi
— Низкие и высокие S2 индексы точек, соответствующие первому прямоугольнику. UInt64.s2Rect2PointLow
,s2Rect2PointHi
— Низкие и высокие S2 индексы точек, соответствующие второму прямоугольнику. UInt64.
Возвращаемые значения
s2UnionRect2PointLow
— Низкий S2 индекс ячейки, соответствующий объединенному прямоугольнику. UInt64.s2UnionRect2PointHi
— Высокий S2 индекс ячейки, соответствующий объединенному прямоугольнику. UInt64.
Пример
Запрос:
Результат:
s2RectIntersection
Возвращает наименьший прямоугольник, содержащий пересечение этого прямоугольника и заданного прямоугольника. В системе S2 прямоугольник представлен типом S2Region, называемым S2LatLngRect
, который представляет прямоугольник в пространстве широты-долготы.
Синтаксис
Аргументы
s2Rect1PointLow
,s2Rect1PointHi
— Низкие и высокие S2 индексы точек, соответствующие первому прямоугольнику. UInt64.s2Rect2PointLow
,s2Rect2PointHi
— Низкие и высокие S2 индексы точек, соответствующие второму прямоугольнику. UInt64.
Возвращаемые значения
s2UnionRect2PointLow
— Низкий S2 индекс ячейки, соответствующий прямоугольнику, содержащему пересечение заданных прямоугольников. UInt64.s2UnionRect2PointHi
— Высокий S2 индекс ячейки, соответствующий прямоугольнику, содержащему пересечение заданных прямоугольников. UInt64.
Пример
Запрос:
Результат: