quadbin
CORE
QUADBIN_BBOX(quadbin)
Description
Returns an array with the boundary box of a given Quadbin. This boundary box contains the minimum and maximum longitude and latitude. The output format is [West-South, East-North] or [min long, min lat, max long, max lat].
quadbin
:INT64
Quadbin to get the bbox from.
Return type
ARRAY<FLOAT64>
Example
carto-un
carto-un-eu
carto-os
manual
SELECT `carto-un`.carto.QUADBIN_BBOX(5207251884775047167);
-- -22.5
-- 21.943045533438188
-- 0.0
-- 40.979898069620127
SELECT `carto-un-eu`.carto.QUADBIN_BBOX(5207251884775047167);
-- -22.5
-- 21.943045533438188
-- 0.0
-- 40.979898069620127
SELECT `carto-os`.carto.QUADBIN_BBOX(5207251884775047167);
-- -22.5
-- 21.943045533438188
-- 0.0
-- 40.979898069620127
SELECT carto.QUADBIN_BBOX(5207251884775047167);
-- -22.5
-- 21.943045533438188
-- 0.0
-- 40.979898069620127
QUADBIN_BOUNDARY(quadbin)
Description
Returns the boundary for a given Quadbin as a polygon GEOGRAPHY with the same coordinates as given by the QUADBIN_BBOX function.
quadbin
:INT64
Quadbin to get the boundary geography from.
Return type
GEOGRAPHY
Example
carto-un
carto-un-eu
carto-os
manual
SELECT `carto-un`.carto.QUADBIN_BOUNDARY(5207251884775047167);
-- POLYGON((-22.5 40.9798980696201, -22.5 21.9430455334382, 0 21.9430455334382, 0 40.9798980696201, -22.5 40.9798980696201))
SELECT `carto-un-eu`.carto.QUADBIN_BOUNDARY(5207251884775047167);
-- POLYGON((-22.5 40.9798980696201, -22.5 21.9430455334382, 0 21.9430455334382, 0 40.9798980696201, -22.5 40.9798980696201))
SELECT `carto-os`.carto.QUADBIN_BOUNDARY(5207251884775047167);
-- POLYGON((-22.5 40.9798980696201, -22.5 21.9430455334382, 0 21.9430455334382, 0 40.9798980696201, -22.5 40.9798980696201))
SELECT carto.QUADBIN_BOUNDARY(5207251884775047167);
-- POLYGON((-22.5 40.9798980696201, -22.5 21.9430455334382, 0 21.9430455334382, 0 40.9798980696201, -22.5 40.9798980696201))
Quadbin Cell edges are spherical geodesics. The boundary edges can be interpreted as straight lines in other GIS tools, so to export the exact shape of the cells, use
ST_GEOGFROM(ST_ASGEOJSON(geog)
. In this process, BigQuery will add intermediate points to preserve the geodesic curves.QUADBIN_CENTER(quadbin)
Description
Returns the center of a given Quadbin. The center is the intersection point of the four immediate children Quadbins.
quadbin
:INT64
Quadbin to get the center from.
Return type
GEOGRAPHY
Example
carto-un
carto-un-eu
carto-os
manual
SELECT `carto-un`.carto.QUADBIN_CENTER(5207251884775047167);
-- POINT(-11.25 31.952162238025)
SELECT `carto-un-eu`.carto.QUADBIN_CENTER(5207251884775047167);
-- POINT(-11.25 31.952162238025)
SELECT `carto-os`.carto.QUADBIN_CENTER(5207251884775047167);
-- POINT(-11.25 31.952162238025)
SELECT carto.QUADBIN_CENTER(5207251884775047167);
-- POINT(-11.25 31.952162238025)
QUADBIN_FROMGEOGPOINT(point, resolution)
Description
Returns the Quadbin of a given point at a given level of detail.
point
:GEOGRAPHY
point to get the Quadbin from.resolution
:INT64
level of detail or zoom.
Return type
INT64
Example
carto-un
carto-un-eu
carto-os
manual
SELECT `carto-un`.carto.QUADBIN_FROMGEOGPOINT(ST_GEOGPOINT(-3.7038, 40.4168), 4);
-- 5207251884775047167
SELECT `carto-un-eu`.carto.QUADBIN_FROMGEOGPOINT(ST_GEOGPOINT(-3.7038, 40.4168), 4);
-- 5207251884775047167
SELECT `carto-os`.carto.QUADBIN_FROMGEOGPOINT(ST_GEOGPOINT(-3.7038, 40.4168), 4);
-- 5207251884775047167
SELECT carto.QUADBIN_FROMGEOGPOINT(ST_GEOGPOINT(-3.7038, 40.4168), 4);
-- 5207251884775047167
QUADBIN_FROMLONGLAT(longitude, latitude, resolution)
Description
Returns the Quadbin representation of a point for a given level of detail and geographic coordinates.
longitude
:FLOAT64
longitude (WGS84) of the point.latitude
:FLOAT64
latitude (WGS84) of the point.resolution
:INT64
level of detail or zoom.
Return type
INT64
Example
carto-un
carto-un-eu
carto-os
manual
SELECT `carto-un`.carto.QUADBIN_FROMLONGLAT(-3.7038, 40.4168, 4);
-- 5207251884775047167
SELECT `carto-un-eu`.carto.QUADBIN_FROMLONGLAT(-3.7038, 40.4168, 4);
-- 5207251884775047167
SELECT `carto-os`.carto.QUADBIN_FROMLONGLAT(-3.7038, 40.4168, 4);
-- 5207251884775047167
SELECT carto.QUADBIN_FROMLONGLAT(-3.7038, 40.4168, 4);
-- 5207251884775047167
QUADBIN_FROMQUADKEY(quadkey)
Description
Compute a quadbin index from a quadkey.
quadkey
:STRING
Quadkey representation of the index.
Return type
INT64
Example
carto-un
carto-un-eu
carto-os
manual
SELECT `carto-un`.carto.QUADBIN_FROMQUADKEY('0331110121');
-- 5234261499580514303
SELECT `carto-un-eu`.carto.QUADBIN_FROMQUADKEY('0331110121');
-- 5234261499580514303
SELECT `carto-os`.carto.QUADBIN_FROMQUADKEY('0331110121');
-- 5234261499580514303
SELECT carto.QUADBIN_FROMQUADKEY('0331110121');
-- 5234261499580514303
QUADBIN_FROMZXY(z, x, y)
Description
z
:INT64
zoom level.x
:INT64
horizontal position of a tile.y
:INT64
vertical position of a tile.
Constraints
Tile coordinates
x
and y
depend on the zoom level z
. For both coordinates, the minimum value is 0, and the maximum value is two to the power of z
, minus one (2^z - 1
).Note that the
y
coordinate increases from North to South, and the y
coordinate from West to East.Return type
INT64
Example
carto-un
carto-un-eu
carto-os
manual
SELECT `carto-un`.carto.QUADBIN_FROMZXY(4, 7, 6);
-- 5207251884775047167
SELECT `carto-un-eu`.carto.QUADBIN_FROMZXY(4, 7, 6);
-- 5207251884775047167
SELECT `carto-os`.carto.QUADBIN_FROMZXY(4, 7, 6);
-- 5207251884775047167
SELECT carto.QUADBIN_FROMZXY(4, 7, 6);
-- 5207251884775047167
QUADBIN_ISVALID(quadbin)
Description
Returns
true
when the given index is a valid Quadbin, false
otherwise.quadbin
:INT64
Quadbin index.
Return type
BOOLEAN
Examples
carto-un
carto-un-eu
carto-os
manual
SELECT `carto-un`.carto.QUADBIN_ISVALID(5207251884775047167);
-- true
SELECT `carto-un-eu`.carto.QUADBIN_ISVALID(5207251884775047167);
-- true
SELECT `carto-os`.carto.QUADBIN_ISVALID(5207251884775047167);
-- true
SELECT carto.QUADBIN_ISVALID(5207251884775047167);
-- true
carto-un
carto-un-eu
carto-os
manual
SELECT `carto-un`.carto.QUADBIN_ISVALID(1234);
-- false
SELECT `carto-un-eu`.carto.QUADBIN_ISVALID(1234);
-- false
SELECT `carto-os`.carto.QUADBIN_ISVALID(1234);
-- false
SELECT carto.QUADBIN_ISVALID(1234);
-- false
QUADBIN_KRING(origin, size)
Description
Returns all Quadbin cell indexes in a filled square k-ring centered at the origin in no particular order.
origin
:INT64
Quadbin index of the origin.size
:INT64
size of the ring (distance from the origin).
Return type
ARRAY<INT64>
Example
carto-un
carto-un-eu
carto-os
manual
SELECT `carto-un`.carto.QUADBIN_KRING(5207251884775047167, 1);
-- 5207128739472736255
-- 5207234292589002751
-- 5207269476961091583
-- 5207146331658780671
-- 5207251884775047167
-- 5207287069147135999
-- 5207902795658690559
-- 5208008348774957055
-- 5208043533147045887
SELECT `carto-un-eu`.carto.QUADBIN_KRING(5207251884775047167, 1);
-- 5207128739472736255
-- 5207234292589002751
-- 5207269476961091583
-- 5207146331658780671
-- 5207251884775047167
-- 5207287069147135999
-- 5207902795658690559
-- 5208008348774957055
-- 5208043533147045887
SELECT `carto-os`.carto.QUADBIN_KRING(5207251884775047167, 1);
-- 5207128739472736255
-- 5207234292589002751
-- 5207269476961091583
-- 5207146331658780671
-- 5207251884775047167
-- 5207287069147135999
-- 5207902795658690559
-- 5208008348774957055
-- 5208043533147045887
SELECT carto.QUADBIN_KRING(5207251884775047167, 1);
-- 5207128739472736255
-- 5207234292589002751
-- 5207269476961091583
-- 5207146331658780671
-- 5207251884775047167
-- 5207287069147135999
-- 5207902795658690559
-- 5208008348774957055
-- 5208043533147045887
QUADBIN_KRING_DISTANCES(origin, size)
Description
Returns all Quadbin cell indexes and their distances in a filled square k-ring centered at the origin in no particular order.
origin
:INT64
Quadbin index of the origin.size
:INT64
size of the ring (distance from the origin).
Return type
ARRAY<STRUCT<index INT64, distance INT64>>
Example
carto-un
carto-un-eu
carto-os
manual
SELECT `carto-un`.carto.QUADBIN_KRING_DISTANCES(5207251884775047167, 1);
-- {"index": "5207128739472736255", "distance": "1"}
-- {"index": "5207234292589002751", "distance": "1"}
-- {"index": "5207269476961091583", "distance": "1"}
-- {"index": "5207146331658780671", "distance": "1"}
-- {"index": "5207251884775047167", "distance": "0"}
-- {"index": "5207287069147135999", "distance": "1"}
-- {"index": "5207902795658690559", "distance": "1"}
-- {"index": "5208008348774957055", "distance": "1"}
-- {"index": "5208043533147045887", "distance": "1"}
SELECT `carto-un-eu`.carto.QUADBIN_KRING_DISTANCES(5207251884775047167, 1);
-- {"index": "5207128739472736255", "distance": "1"}
-- {"index": "5207234292589002751", "distance": "1"}
-- {"index": "5207269476961091583", "distance": "1"}
-- {"index": "5207146331658780671", "distance": "1"}
-- {"index": "5207251884775047167", "distance": "0"}
-- {"index": "5207287069147135999", "distance": "1"}
-- {"index": "5207902795658690559", "distance": "1"}
-- {"index": "5208008348774957055", "distance": "1"}
-- {"index": "5208043533147045887", "distance": "1"}
SELECT `carto-os`.carto.QUADBIN_KRING_DISTANCES(5207251884775047167, 1);
-- {"index": "5207128739472736255", "distance": "1"}
-- {"index": "5207234292589002751", "distance": "1"}
-- {"index": "5207269476961091583", "distance": "1"}
-- {"index": "5207146331658780671", "distance": "1"}
-- {"index": "5207251884775047167", "distance": "0"}
-- {"index": "5207287069147135999", "distance": "1"}
-- {"index": "5207902795658690559", "distance": "1"}
-- {"index": "5208008348774957055", "distance": "1"}
-- {"index": "5208043533147045887", "distance": "1"}
SELECT carto.QUADBIN_KRING_DISTANCES(5207251884775047167, 1);
-- {"index": "5207128739472736255", "distance": "1"}
-- {"index": "5207234292589002751", "distance": "1"}
-- {"index": "5207269476961091583", "distance": "1"}
-- {"index": "5207146331658780671", "distance": "1"}
-- {"index": "5207251884775047167", "distance": "0"}
-- {"index": "5207287069147135999", "distance": "1"}
-- {"index": "5207902795658690559", "distance": "1"}
-- {"index": "5208008348774957055", "distance": "1"}
-- {"index": "5208043533147045887", "distance": "1"}
tip
QUADBIN_POLYFILL(geog, resolution)
Description
Returns an array of quadbin cell indexes contained in the given geography (Polygon, MultiPolygon) at a given level of detail. Containment is determined by the cells' center. This function is equivalent to
QUADBIN_POLYFILL_MODE
with mode center
.geog
:GEOGRAPHY
representing the shape to cover.resolution
:INT64
level of detail. The value must be between 0 and 26.
- You want to provide the minimum covering set of a Polygon, MultiPolygon.
- The input geography type is Point, MultiPoint, LineString, MultiLineString.
Return type
ARRAY<INT64>
Examples
carto-un
carto-un-eu
carto-os
manual
SELECT `carto-un`.carto.QUADBIN_POLYFILL(
ST_GEOGFROMTEXT('POLYGON ((-3.71219873428345 40.413365349070865, -3.7144088745117 40.40965661286395, -3.70659828186035 40.409525904775634, -3.71219873428345 40.413365349070865))'),
17
);
-- [5265786693163941887, 5265786693164466175 ,5265786693164728319]
SELECT `carto-un-eu`.carto.QUADBIN_POLYFILL(
ST_GEOGFROMTEXT('POLYGON ((-3.71219873428345 40.413365349070865, -3.7144088745117 40.40965661286395, -3.70659828186035 40.409525904775634, -3.71219873428345 40.413365349070865))'),
17
);
-- [5265786693163941887, 5265786693164466175 ,5265786693164728319]
SELECT `carto-os`.carto.QUADBIN_POLYFILL(
ST_GEOGFROMTEXT('POLYGON ((-3.71219873428345 40.413365349070865, -3.7144088745117 40.40965661286395, -3.70659828186035 40.409525904775634, -3.71219873428345 40.413365349070865))'),
17
);
-- [5265786693163941887, 5265786693164466175 ,5265786693164728319]
SELECT carto.QUADBIN_POLYFILL(
ST_GEOGFROMTEXT('POLYGON ((-3.71219873428345 40.413365349070865, -3.7144088745117 40.40965661286395, -3.70659828186035 40.409525904775634, -3.71219873428345 40.413365349070865))'),
17
);
-- [5265786693163941887, 5265786693164466175 ,5265786693164728319]
carto-un
carto-un-eu
carto-os
manual
SELECT quadbin
FROM UNNEST(`carto-un`.carto.QUADBIN_POLYFILL(
ST_GEOGFROMTEXT('POLYGON ((-3.71219873428345 40.413365349070865, -3.7144088745117 40.40965661286395, -3.70659828186035 40.409525904775634, -3.71219873428345 40.413365349070865))'),
17
)) AS quadbin;
-- 5265786693163941887
-- 5265786693164466175
-- 5265786693164728319
SELECT quadbin
FROM UNNEST(`carto-un-eu`.carto.QUADBIN_POLYFILL(
ST_GEOGFROMTEXT('POLYGON ((-3.71219873428345 40.413365349070865, -3.7144088745117 40.40965661286395, -3.70659828186035 40.409525904775634, -3.71219873428345 40.413365349070865))'),
17
)) AS quadbin;
-- 5265786693163941887
-- 5265786693164466175
-- 5265786693164728319
SELECT quadbin
FROM UNNEST(`carto-os`.carto.QUADBIN_POLYFILL(
ST_GEOGFROMTEXT('POLYGON ((-3.71219873428345 40.413365349070865, -3.7144088745117 40.40965661286395, -3.70659828186035 40.409525904775634, -3.71219873428345 40.413365349070865))'),
17
)) AS quadbin;
-- 5265786693163941887
-- 5265786693164466175
-- 5265786693164728319
SELECT quadbin
FROM UNNEST(carto.QUADBIN_POLYFILL(
ST_GEOGFROMTEXT('POLYGON ((-3.71219873428345 40.413365349070865, -3.7144088745117 40.40965661286395, -3.70659828186035 40.409525904775634, -3.71219873428345 40.413365349070865))'),
17
)) AS quadbin;
-- 5265786693163941887
-- 5265786693164466175
-- 5265786693164728319
carto-un
carto-un-eu
carto-os
manual
SELECT quadbin
FROM <project>.<dataset>.<table>,
UNNEST(`carto-un`.carto.QUADBIN_POLYFILL(geog, 17)) AS quadbin;
SELECT quadbin
FROM <project>.<dataset>.<table>,
UNNEST(`carto-un-eu`.carto.QUADBIN_POLYFILL(geog, 17)) AS quadbin;
SELECT quadbin
FROM <project>.<dataset>.<table>,
UNNEST(`carto-os`.carto.QUADBIN_POLYFILL(geog, 17)) AS quadbin;
SELECT quadbin
FROM <project>.<dataset>.<table>,
UNNEST(carto.QUADBIN_POLYFILL(geog, 17)) AS quadbin;
QUADBIN_POLYFILL_MODE(geog, resolution, mode)
Description
Returns an array of quadbin cell indexes contained in the given geography at a given level of detail. Containment is determined by the mode: center, intersects, contains.
geog
:GEOGRAPHY
representing the shape to cover.resolution
:INT64
level of detail. The value must be between 0 and 26.mode
:STRING
center
returns the indexes of the quadbin cells which centers intersect the input geography (polygon). The resulting quadbin set does not fully cover the input geography, however, this is significantly faster that the other modes. This mode is not compatible with points or lines. Equivalent toQUADBIN_POLYFILL
.intersects
returns the indexes of the quadbin cells that intersect the input geography. The resulting quadbin set will completely cover the input geography (point, line, polygon).contains
returns the indexes of the quadbin cells that are entirely contained inside the input geography (polygon). This mode is not compatible with points or lines.
Mode
center
:
Mode
intersects
:
Mode
contains
:
Return type
ARRAY<INT64>
Examples
carto-un
carto-un-eu
carto-os
manual
SELECT `carto-un`.carto.QUADBIN_POLYFILL_MODE(
ST_GEOGFROMTEXT('POLYGON ((-3.71219873428345 40.413365349070865, -3.7144088745117 40.40965661286395, -3.70659828186035 40.409525904775634, -3.71219873428345 40.413365349070865))'),
17, 'intersects'
);
-- [5265786693153193983, 5265786693163941887, 5265786693164466175, 5265786693164204031, 5265786693164728319, 5265786693165514751]
SELECT `carto-un-eu`.carto.QUADBIN_POLYFILL_MODE(
ST_GEOGFROMTEXT('POLYGON ((-3.71219873428345 40.413365349070865, -3.7144088745117 40.40965661286395, -3.70659828186035 40.409525904775634, -3.71219873428345 40.413365349070865))'),
17, 'intersects'
);
-- [5265786693153193983, 5265786693163941887, 5265786693164466175, 5265786693164204031, 5265786693164728319, 5265786693165514751]
SELECT `carto-os`.carto.QUADBIN_POLYFILL_MODE(
ST_GEOGFROMTEXT('POLYGON ((-3.71219873428345 40.413365349070865, -3.7144088745117 40.40965661286395, -3.70659828186035 40.409525904775634, -3.71219873428345 40.413365349070865))'),
17, 'intersects'
);
-- [5265786693153193983, 5265786693163941887, 5265786693164466175, 5265786693164204031, 5265786693164728319, 5265786693165514751]
SELECT carto.QUADBIN_POLYFILL_MODE(
ST_GEOGFROMTEXT('POLYGON ((-3.71219873428345 40.413365349070865, -3.7144088745117 40.40965661286395, -3.70659828186035 40.409525904775634, -3.71219873428345 40.413365349070865))'),
17, 'intersects'
);
-- [5265786693153193983, 5265786693163941887, 5265786693164466175, 5265786693164204031, 5265786693164728319, 5265786693165514751]
carto-un
carto-un-eu
carto-os
manual
SELECT quadbin
FROM UNNEST(`carto-un`.carto.QUADBIN_POLYFILL_MODE(
ST_GEOGFROMTEXT('POLYGON ((-3.71219873428345 40.413365349070865, -3.7144088745117 40.40965661286395, -3.70659828186035 40.409525904775634, -3.71219873428345 40.413365349070865))'),
17, 'intersects'
)) AS quadbin;
-- 5265786693153193983
-- 5265786693163941887
-- 5265786693164466175
-- 5265786693164204031
-- 5265786693164728319
-- 5265786693165514751
SELECT quadbin
FROM UNNEST(`carto-un-eu`.carto.QUADBIN_POLYFILL_MODE(
ST_GEOGFROMTEXT('POLYGON ((-3.71219873428345 40.413365349070865, -3.7144088745117 40.40965661286395, -3.70659828186035 40.409525904775634, -3.71219873428345 40.413365349070865))'),
17, 'intersects'
)) AS quadbin;
-- 5265786693153193983
-- 5265786693163941887
-- 5265786693164466175
-- 5265786693164204031
-- 5265786693164728319
-- 5265786693165514751
SELECT quadbin
FROM UNNEST(`carto-os`.carto.QUADBIN_POLYFILL_MODE(
ST_GEOGFROMTEXT('POLYGON ((-3.71219873428345 40.413365349070865, -3.7144088745117 40.40965661286395, -3.70659828186035 40.409525904775634, -3.71219873428345 40.413365349070865))'),
17, 'intersects'
)) AS quadbin;
-- 5265786693153193983
-- 5265786693163941887
-- 5265786693164466175
-- 5265786693164204031
-- 5265786693164728319
-- 5265786693165514751
SELECT quadbin
FROM UNNEST(carto.QUADBIN_POLYFILL_MODE(
ST_GEOGFROMTEXT('POLYGON ((-3.71219873428345 40.413365349070865, -3.7144088745117 40.40965661286395, -3.70659828186035 40.409525904775634, -3.71219873428345 40.413365349070865))'),
17, 'intersects'
)) AS quadbin;
-- 5265786693153193983
-- 5265786693163941887
-- 5265786693164466175
-- 5265786693164204031
-- 5265786693164728319
-- 5265786693165514751
carto-un
carto-un-eu
carto-os
manual
SELECT quadbin
FROM <project>.<dataset>.<table>,
UNNEST(`carto-un`.carto.QUADBIN_POLYFILL_MODE(geog, 17, 'intersects')) AS quadbin;
SELECT quadbin
FROM <project>.<dataset>.<table>,
UNNEST(`carto-un-eu`.carto.QUADBIN_POLYFILL_MODE(geog, 17, 'intersects')) AS quadbin;
SELECT quadbin
FROM <project>.<dataset>.<table>,
UNNEST(`carto-os`.carto.QUADBIN_POLYFILL_MODE(geog, 17, 'intersects')) AS quadbin;
SELECT quadbin
FROM <project>.<dataset>.<table>,
UNNEST(carto.QUADBIN_POLYFILL_MODE(geog, 17, 'intersects')) AS quadbin;
QUADBIN_RESOLUTION(quadbin)
Description
Returns the resolution of the input Quadbin.
quadbin
:INT64
Quadbin from which to get the resolution.
Return type
INT64
Example
carto-un
carto-un-eu
carto-os
manual
SELECT `carto-un`.carto.QUADBIN_RESOLUTION(5207251884775047167);
-- 4
SELECT `carto-un-eu`.carto.QUADBIN_RESOLUTION(5207251884775047167);
-- 4
SELECT `carto-os`.carto.QUADBIN_RESOLUTION(5207251884775047167);
-- 4
SELECT carto.QUADBIN_RESOLUTION(5207251884775047167);
-- 4
QUADBIN_SIBLING(quadbin, direction)
Description
Returns the Quadbin directly next to the given Quadbin at the same resolution. The direction must be set in the corresponding argument and currently only horizontal/vertical neigbours are supported. It will return
NULL
if the sibling does not exist.quadbin
:INT64
Quadbin to get the sibling from.direction
:STRING
'right'|'left'|'up'|'down'
direction to move in to extract the next sibling.
Return type
INT64
Example
carto-un
carto-un-eu
carto-os
manual
SELECT `carto-un`.carto.QUADBIN_SIBLING(5207251884775047167, 'up');
-- 5207146331658780671
SELECT `carto-un-eu`.carto.QUADBIN_SIBLING(5207251884775047167, 'up');
-- 5207146331658780671
SELECT `carto-os`.carto.QUADBIN_SIBLING(5207251884775047167,