Passer au contenu principal

S2Index

S2 est un système d’indexation géographique dans lequel toutes les données géographiques sont représentées sur une sphère (semblable à un globe). Dans la bibliothèque S2, les points sont représentés sous la forme d’un indice S2 — un nombre spécifique qui encode en interne un point sur la surface d’une sphère unitaire, contrairement aux paires traditionnelles (latitude, longitude). Pour obtenir l’indice de point S2 d’un point donné spécifié au format (latitude, longitude), utilisez la fonction geoToS2. Vous pouvez également utiliser la fonction s2ToGeo pour obtenir les coordonnées géographiques correspondant à l’indice de point S2 indiqué.

geoToS2

Renvoie l’index S2 du point correspondant aux coordonnées fournies (longitude, latitude). Syntaxe
geoToS2(lon, lat)
Arguments Valeurs de retour Exemple
Query
SELECT geoToS2(37.79506683, 55.71290588) AS s2Index;
Response
┌─────────────s2Index─┐
│ 4704772434919038107 │
└─────────────────────┘

s2ToGeo

Renvoie les coordonnées Geo (longitude, latitude) correspondant à l’indice du point S2 fourni. Syntaxe
s2ToGeo(s2index)
Arguments
  • s2index — indice S2. UInt64.
Valeurs de retour Exemple
Query
SELECT s2ToGeo(4704772434919038107) AS s2Coodrinates;
Response
┌─s2Coodrinates────────────────────────┐
│ (37.79506681471008,55.7129059052841) │
└──────────────────────────────────────┘

s2GetNeighbors

Renvoie les index S2 voisins correspondant à l’index S2 fourni. Chaque cellule du système S2 est un quadrilatère délimité par quatre géodésiques. Ainsi, chaque cellule a 4 voisins. Syntaxe
s2GetNeighbors(s2index)
Arguments
  • s2index — indice S2. UInt64.
Valeur de retour
  • Un tableau composé de 4 indices voisins : array[s2index1, s2index3, s2index2, s2index4]. Array(UInt64).
Exemple
Query
SELECT s2GetNeighbors(5074766849661468672) AS s2Neighbors;
Response
┌─s2Neighbors───────────────────────────────────────────────────────────────────────┐
│ [5074766987100422144,5074766712222515200,5074767536856236032,5074767261978329088] │
└───────────────────────────────────────────────────────────────────────────────────┘

s2CellsIntersect

Détermine si les deux cellules S2 fournies s’intersectent ou non. Syntaxe
s2CellsIntersect(s2index1, s2index2)
Arguments
  • siIndex1, s2index2 — indice S2. UInt64.
Valeur renvoyée
  • 1 — Si les cellules s’intersectent. UInt8.
  • 0 — Si les cellules ne s’intersectent pas. UInt8.
Exemple
Query
SELECT s2CellsIntersect(9926595209846587392, 9926594385212866560) AS intersect;
Response
┌─intersect─┐
│         1 │
└───────────┘

s2CapContains

Détermine si une calotte sphérique contient un point S2. Une calotte sphérique représente une partie de la sphère délimitée par un plan. Elle est définie par un point sur la sphère et un rayon en degrés. Syntaxe
s2CapContains(center, degrees, point)
Arguments
  • center — Indice de point S2 correspondant à la calotte. UInt64.
  • degrees — Rayon de la calotte, en degrés. Float64.
  • point — Indice de point S2. UInt64.
Valeur renvoyée
  • 1 — Si la calotte contient l’indice de point S2. UInt8.
  • 0 — Si la calotte ne contient pas l’indice de point S2. UInt8.
Exemple
Query
SELECT s2CapContains(1157339245694594829, 1.0, 1157347770437378819) AS capContains;
Response
┌─capContains─┐
│           1 │
└─────────────┘

s2CapUnion

Détermine la plus petite calotte sphérique contenant les deux calottes sphériques d’entrée données. Une calotte sphérique représente une portion de la sphère délimitée par un plan. Elle est définie par un point sur la sphère et un rayon en degrés. Syntaxe
s2CapUnion(center1, radius1, center2, radius2)
Arguments
  • center1, center2 — indices de point S2 correspondant aux deux calottes d’entrée. UInt64.
  • radius1, radius2 — rayon des deux calottes d’entrée, en degrés. Float64.
Valeurs renvoyées
  • center — indice de point S2 correspondant au centre de la plus petite calotte contenant les deux calottes d’entrée. UInt64.
  • radius — rayon de la plus petite calotte contenant les deux calottes d’entrée. Float64.
Exemple
Query
SELECT s2CapUnion(3814912406305146967, 1.0, 1157347770437378819, 1.0) AS capUnion;
Response
┌─capUnion───────────────────────────────┐
│ (4534655147792050737,60.2088283994957) │
└────────────────────────────────────────┘

s2RectAdd

Agrandit le rectangle englobant afin d’inclure le point S2 donné. Dans le système S2, un rectangle est représenté par un type de S2Region appelé S2LatLngRect, qui correspond à un rectangle dans l’espace latitude-longitude. Syntaxe
s2RectAdd(s2pointLow, s2pointHigh, s2Point)
Arguments
  • s2PointLow — Index de point S2 inférieur correspondant au rectangle. UInt64.
  • s2PointHigh — Index de point S2 supérieur correspondant au rectangle. UInt64.
  • s2Point — Index de point S2 cible que le rectangle délimiteur doit être étendu pour inclure. UInt64.
Returned values
  • s2PointLow — ID de cellule S2 inférieur correspondant au rectangle étendu. UInt64.
  • s2PointHigh — ID de cellule S2 supérieur correspondant au rectangle étendu. UInt64.
Example
Query
SELECT s2RectAdd(5178914411069187297, 5177056748191934217, 5179056748191934217) AS rectAdd;
Response
┌─rectAdd───────────────────────────────────┐
│ (5179062030687166815,5177056748191934217) │
└───────────────────────────────────────────┘

s2RectContains

Détermine si un rectangle donné contient un point S2. Dans le système S2, un rectangle est représenté par un type de S2Region appelé S2LatLngRect, qui correspond à un rectangle dans l’espace latitude-longitude. Syntaxe
s2RectContains(s2PointLow, s2PointHi, s2Point)
Arguments
  • s2PointLow — Indice de point S2 inférieur correspondant au rectangle. UInt64.
  • s2PointHigh — Indice de point S2 supérieur correspondant au rectangle. UInt64.
  • s2Point — Indice de point S2 cible. UInt64.
Valeur renvoyée
  • 1 — Si le rectangle contient l’indice de point S2 donné.
  • 0 — Si le rectangle ne contient pas l’indice de point S2 donné.
Exemple
Query
SELECT s2RectContains(5179062030687166815, 5177056748191934217, 5177914411069187297) AS rectContains;
Response
┌─rectContains─┐
│            0 │
└──────────────┘

s2RectUnion

Renvoie le plus petit rectangle contenant l’union de ce rectangle et du rectangle spécifié. Dans le système S2, un rectangle est représenté par un type de S2Region appelé S2LatLngRect, qui correspond à un rectangle dans l’espace latitude-longitude. Syntaxe
s2RectUnion(s2Rect1PointLow, s2Rect1PointHi, s2Rect2PointLow, s2Rect2PointHi)
Arguments
  • s2Rect1PointLow, s2Rect1PointHi — indices de point S2 inférieur et supérieur correspondant au premier rectangle. UInt64.
  • s2Rect2PointLow, s2Rect2PointHi — indices de point S2 inférieur et supérieur correspondant au deuxième rectangle. UInt64.
Valeurs renvoyées
  • s2UnionRect2PointLow — ID de cellule S2 inférieur correspondant au rectangle union. UInt64.
  • s2UnionRect2PointHi — ID de cellule S2 supérieur correspondant au rectangle union. UInt64.
Exemple
Query
SELECT s2RectUnion(5178914411069187297, 5177056748191934217, 5179062030687166815, 5177056748191934217) AS rectUnion;
Response
┌─rectUnion─────────────────────────────────┐
│ (5179062030687166815,5177056748191934217) │
└───────────────────────────────────────────┘

s2RectIntersection

Renvoie le plus petit rectangle contenant l’intersection entre ce rectangle et le rectangle donné. Dans le système S2, un rectangle est représenté par un type de S2Region appelé S2LatLngRect, qui représente un rectangle dans l’espace des latitudes et longitudes. Syntaxe
s2RectIntersection(s2Rect1PointLow, s2Rect1PointHi, s2Rect2PointLow, s2Rect2PointHi)
Arguments
  • s2Rect1PointLow, s2Rect1PointHi — indices de point S2 inférieur et supérieur correspondant au premier rectangle. UInt64.
  • s2Rect2PointLow, s2Rect2PointHi — indices de point S2 inférieur et supérieur correspondant au deuxième rectangle. UInt64.
Valeurs renvoyées
  • s2UnionRect2PointLow — ID de cellule S2 inférieur correspondant au rectangle contenant l’intersection des rectangles donnés. UInt64.
  • s2UnionRect2PointHi — ID de cellule S2 supérieur correspondant au rectangle contenant l’intersection des rectangles donnés. UInt64.
Exemple
Query
SELECT s2RectIntersection(5178914411069187297, 5177056748191934217, 5179062030687166815, 5177056748191934217) AS rectIntersection;
Response
┌─rectIntersection──────────────────────────┐
│ (5178914411069187297,5177056748191934217) │
└───────────────────────────────────────────┘
Dernière modification le 29 juin 2026