Функции для работы с 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 ячейки или нет.
Синтаксис
Аргументы
siIndex1
,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.
Пример
Запрос:
Результат: