Analytics Toolbox for BigQuery

Analytics Toolbox for BigQuery

s2

Our S2 module is based on a port of the official s2 geometry library created by Google. For more information about S2 check the library’s website or the Overview section of this documentation.

HILBERTQUADKEY_FROMID

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

1
2
SELECT carto-os.s2.HILBERTQUADKEY_FROMID(1735346007979327488);
-- 0/30002221

ID_FROMHILBERTQUADKEY

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

1
2
SELECT carto-os.s2.ID_FROMHILBERTQUADKEY('0/30002221');
-- 1735346007979327488

ID_FROMTOKEN

Description

Returns the conversion of a token into a S2 cell ID.

  • token: STRING S2 cell hexified ID.

Return type

INT64

Example

1
2
SELECT carto-os.s2.ID_FROMTOKEN('89c25a3000000000');
-- -8520148382826627072

ID_FROMUINT64REPR

Description

Returns the cell ID from a UINT64 representation.

  • uid: STRING UINT64 representation of a S2 cell ID.

Return type

INT64

Example

1
2
SELECT carto-os.s2.ID_FROMUINT64REPR('9926595690882924544');
-- -8520148382826627072

LONGLAT_ASID

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

1
2
SELECT carto-os.s2.LONGLAT_ASID(-3.7038, 40.4168, 8);
-- 955378847514099712

ST_ASID

Description

Returns the S2 cell ID of a given point at a given level of detail.

  • point: GEOGRAPHY point to get the ID from.
  • resolution: INT64 level of detail or zoom.

Return type

INT64

Example

1
2
SELECT carto-os.s2.ST_ASID(ST_GEOGPOINT(40.4168, -3.7038), 8);
-- 1735346007979327488

ST_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

1
2
SELECT carto-os.s2.ST_BOUNDARY(1735346007979327488);
-- POLYGON((40.6346851320784 -3.8440544113597, 40.6346851320784 ...

TOKEN_FROMID

Description

Returns the conversion of a S2 cell ID into a token (S2 cell hexified ID).

  • id: INT64 S2 cell ID.

Return type

STRING

Example

1
2
SELECT carto-os.s2.TOKEN_FROMID(-8520148382826627072);
-- 89c25a3000000000

UINT64REPR_FROMID

Description

Returns the UINT64 representation of a cell ID.

  • id: INT64 S2 cell ID.

Return type

STRING

Example

1
2
SELECT carto-os.s2.UINT64REPR_FROMID(-8520148382826627072);
-- 9926595690882924544

VERSION

Description

Returns the current version of the S2 module.

Return type

STRING

Example

1
2
SELECT carto-os.s2.VERSION();
-- 1.0.0