Our S2 module is based on a port of the official S2 geometry library created by Google. For more information about S2 check the or the of this documentation.
S2_BOUNDARY
Description
Returns the boundary for a given S2 cell ID. We extract the boundary by getting the corner longitudes and latitudes, then enclose it in a GeoJSON and finally transform it into geography.
id
: INT64
S2 cell ID to get the boundary geography from.
Return type
GEOGRAPHY
Example
carto-un carto-un-eu manual
Copy SELECT `carto-un`.carto.S2_BOUNDARY(955378847514099712);
-- POLYGON((-3.41955272426037 40.25850071217, -3.41955272426037 ...
Copy SELECT `carto-un-eu`.carto.S2_BOUNDARY(955378847514099712);
-- POLYGON((-3.41955272426037 40.25850071217, -3.41955272426037 ...
Copy SELECT carto.S2_BOUNDARY(955378847514099712);
-- POLYGON((-3.41955272426037 40.25850071217, -3.41955272426037 ...
S2_CENTER
Description
Returns a POINT corresponding to the centroid of an S2 cell, given its ID.
id
: INT64
S2 cell ID to get the boundary geography from.
Return type
GEOGRAPHY
Example
carto-un carto-un-eu manual
Copy SELECT `carto-un`.carto.S2_CENTER(955378847514099712);
-- POINT(-3.58126923539589 40.4167087628243)
Copy SELECT `carto-un-eu`.carto.S2_CENTER(955378847514099712);
-- POINT(-3.58126923539589 40.4167087628243)
Copy SELECT carto.S2_CENTER(955378847514099712);
-- POINT(-3.58126923539589 40.4167087628243)
S2_FROMGEOGPOINT
Copy S2_FROMGEOGPOINT(point, resolution)
Description
Returns the S2 cell ID of a given point at a requested resolution.
point
: GEOGRAPHY
point to get the ID from.
resolution
: INT64
level of detail or zoom.
Return type
INT64
Example
carto-un carto-un-eu manual
Copy SELECT `carto-un`.carto.S2_FROMGEOGPOINT(ST_GEOGPOINT(-3.7038, 40.4168), 8);
-- 955378847514099712
Copy SELECT `carto-un-eu`.carto.S2_FROMGEOGPOINT(ST_GEOGPOINT(-3.7038, 40.4168), 8);
-- 955378847514099712
Copy SELECT carto.S2_FROMGEOGPOINT(ST_GEOGPOINT(-3.7038, 40.4168), 8);
-- 955378847514099712
S2_FROMHILBERTQUADKEY
Copy S2_FROMHILBERTQUADKEY(hquadkey)
Description
Returns the conversion of a Hilbert quadkey (a.k.a Hilbert curve quadtree ID) into a S2 cell ID.
hquadkey
: STRING
Hilbert quadkey to be converted.
Return type
INT64
Example
carto-un carto-un-eu manual
Copy SELECT `carto-un`.carto.S2_FROMHILBERTQUADKEY('0/12220101');
-- 955378847514099712
Copy SELECT `carto-un-eu`.carto.S2_FROMHILBERTQUADKEY('0/12220101');
-- 955378847514099712
Copy SELECT carto.S2_FROMHILBERTQUADKEY('0/12220101');
-- 955378847514099712
S2_FROMLONGLAT
Copy S2_FROMLONGLAT(longitude, latitude, resolution)
Description
Returns the S2 cell ID for a given longitude, latitude and zoom resolution.
longitude
: FLOAT64
horizontal coordinate on the map.
latitude
: FLOAT64
vertical coordinate on the map.
resolution
: INT64
level of detail or zoom.
Return type
INT64
Example
carto-un carto-un-eu manual
Copy SELECT `carto-un`.carto.S2_FROMLONGLAT(-3.7038, 40.4168, 8);
-- 955378847514099712
Copy SELECT `carto-un-eu`.carto.S2_FROMLONGLAT(-3.7038, 40.4168, 8);
-- 955378847514099712
Copy SELECT carto.S2_FROMLONGLAT(-3.7038, 40.4168, 8);
-- 955378847514099712
S2_FROMTOKEN
Description
Returns the conversion of a token into a S2 cell ID.
token
: STRING
S2 cell hexified ID.
Return type
INT64
Example
carto-un carto-un-eu manual
Copy SELECT `carto-un`.carto.S2_FROMTOKEN('0d42300000000000');
-- 955378847514099712
Copy SELECT `carto-un-eu`.carto.S2_FROMTOKEN('0d42300000000000');
-- 955378847514099712
Copy SELECT carto.S2_FROMTOKEN('0d42300000000000');
-- 955378847514099712
S2_FROMUINT64REPR
Copy S2_FROMUINT64REPR(uid)
Description
Returns the cell ID from a UINT64 representation.
uid
: STRING
UINT64 representation of a S2 cell ID.
Return type
INT64
Example
carto-un carto-un-eu manual
Copy SELECT `carto-un`.carto.S2_FROMUINT64REPR('9926595690882924544');
-- -8520148382826627072
Copy SELECT `carto-un-eu`.carto.S2_FROMUINT64REPR('9926595690882924544');
-- -8520148382826627072
Copy SELECT carto.S2_FROMUINT64REPR('9926595690882924544');
-- -8520148382826627072
S2_RESOLUTION
Description
Returns the S2 cell resolution as an integer.
index
: STRING
The S2 cell index.
Return type
INT64
Example
carto-un carto-un-eu manual
Copy SELECT `carto-un`.carto.S2_RESOLUTION(955378847514099712);
-- 9
Copy SELECT `carto-un-eu`.carto.S2_RESOLUTION(955378847514099712);
-- 9
Copy SELECT carto.S2_RESOLUTION(955378847514099712);
-- 9
S2_TOCHILDREN
Copy S2_TOCHILDREN(index, resolution)
Description
Returns an array with the S2 indexes of the children/descendents of the given hexagon at the given resolution.
index
: STRING
The S2 cell index.
Return type
ARRAY<STRING>
Example
carto-un carto-un-eu manual
Copy SELECT `carto-un`.carto.S2_TOCHILDREN(955378847514099712, 10);
-- 955365653374566400
-- 955374449467588608
-- 955383245560610816
-- 955392041653633024
Copy SELECT `carto-un-eu`.carto.S2_TOCHILDREN(955378847514099712, 10);
-- 955365653374566400
-- 955374449467588608
-- 955383245560610816
-- 955392041653633024
Copy SELECT carto.S2_TOCHILDREN(955378847514099712, 10);
-- 955365653374566400
-- 955374449467588608
-- 955383245560610816
-- 955392041653633024
S2_TOHILBERTQUADKEY
Copy S2_TOHILBERTQUADKEY(id)
Description
Returns the conversion of a S2 cell ID into a Hilbert quadkey (a.k.a Hilbert curve quadtree ID).
id
: INT64
S2 cell ID to be converted.
Return type
STRING
Example
carto-un carto-un-eu manual
Copy SELECT `carto-un`.carto.S2_TOHILBERTQUADKEY(955378847514099712);
-- 0/12220101
Copy SELECT `carto-un-eu`.carto.S2_TOHILBERTQUADKEY(955378847514099712);
-- 0/12220101
Copy SELECT carto.S2_TOHILBERTQUADKEY(955378847514099712);
-- 0/12220101
S2_TOTOKEN
Description
Returns the conversion of a S2 cell ID into a token (S2 cell hexified ID).
Return type
STRING
Example
carto-un carto-un-eu manual
Copy SELECT `carto-un`.carto.S2_TOTOKEN(955378847514099712);
-- 0d42300000000000
Copy SELECT `carto-un-eu`.carto.S2_TOTOKEN(955378847514099712);
-- 0d42300000000000
Copy SELECT carto.S2_TOTOKEN(955378847514099712);
-- 0d42300000000000
S2_TOUINT64REPR
Description
Returns the UINT64 representation of a cell ID.
Return type
STRING
Example
carto-un carto-un-eu manual
Copy SELECT `carto-un`.carto.S2_TOUINT64REPR(-8520148382826627072);
-- 9926595690882924544
Copy SELECT `carto-un-eu`.carto.S2_TOUINT64REPR(-8520148382826627072);
-- 9926595690882924544
Copy SELECT carto.S2_TOUINT64REPR(-8520148382826627072);
-- 9926595690882924544