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
:BIGINT
Quadbin to get the bbox from.
Return type
ARRAY<FLOAT64>
Example
1
SELECT carto.QUADBIN_BBOX(5207251884775047167);
2
-- {-22.5,21.943045533438188,0.0,40.97989806962013}
QUADBIN_BOUNDARY(quadbin)
Description
Returns the boundary for a given Quadbin as a polygon GEOMETRY with the same coordinates as given by the QUADBIN_BBOX function.
quadbin
:BIGINT
Quadbin to get the boundary geometry from.
Return type
GEOGRAPHY
Example
1
SELECT carto.QUADBIN_BOUNDARY(5207251884775047167);
2
-- POLYGON ((-22.5 21.943045533438188, -22.5 40.97989806962013, 0 40.97989806962013, 0 21.943045533438188, -22.5 21.943045533438188))
QUADBIN_CENTER(quadbin)
Description
Returns the center for a given Quadbin. The center is the intersection point of the four immediate children Quadbin.
quadbin
:BIGINT
Quadbin to get the center from.
Return type
GEOMETRY
Example
1
SELECT carto.QUADBIN_CENTER(5207251884775047167);
2
-- POINT (-11.25 31.952162238024965)
QUADBIN_FROMGEOGPOINT(point, resolution)
Description
Returns the Quadbin of a given point at a given level of detail.
point
:GEOMETRY
point to get the Quadbin from.resolution
:BIGINT
level of detail or zoom.
Return type
BIGINT
Example
1
SELECT carto.QUADBIN_FROMGEOGPOINT(ST_MAKEPOINT(-3.7038, 40.4168), 4);
2
-- 5207251884775047167
QUADBIN_FROMLONGLAT(longitude, latitude, resolution)
Description
Returns the Quadbin representation of a point for a given level of detail and geographic coordinates.
longitude
:DOUBLE PRECISION
longitude (WGS84) of the point.latitude
:DOUBLE PRECISION
latitude (WGS84) of the point.resolution
:INT
level of detail or zoom.
Return type
BIGINT
Example
1
SELECT carto.QUADBIN_FROMLONGLAT(-3.7038, 40.4168, 4);
2
-- 5207251884775047167
QUADBIN_FROMQUADKEY(quadkey)
Description
Compute a quadbin index from a quadkey.
quadkey
:TEXT
Quadkey representation of the index.
Return type
BIGINT
Example
1
SELECT carto.QUADBIN_FROMQUADKEY('0331110121');
2
-- 5234261499580514303
QUADBIN_FROMZXY(z, x, y)
Description
z
:INT
zoom level.x
:INT
horizontal position of a tile.y
:INT
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
).Return type
BIGINT
Example
1
SELECT carto.QUADBIN_FROMZXY(4, 7, 6);
2
-- 5207251884775047167
QUADBIN_ISVALID(quadbin)
Description
Returns
true
when the given index is valid, false
otherwise.quadbin
:BIGINT
Quadbin index.
Return type
BOOLEAN
Examples
1
SELECT carto.QUADBIN_ISVALID(5207251884775047167);
2
-- true
1
SELECT carto.QUADBIN_ISVALID(1234);
2
-- false
QUADBIN_KRING(origin, size)
Description
Returns all cell indexes in a filled square k-ring centered at the origin in no particular order.
origin
:BIGINT
Quadbin index of the origin.size
:INT
size of the ring (distance from the origin).
Return type
BIGINT[]
Example
1
SELECT carto.QUADBIN_KRING(5207251884775047167, 1);
2
-- { 5207128739472736255
3
-- 5207146331658780671
4
-- 5207234292589002751
5
-- 5207251884775047167
6
-- 5207269476961091583
7
-- 5207287069147135999
8
-- 5207902795658690559
9
-- 5208008348774957055
10
-- 5208043533147045887 }
QUADBIN_KRING_DISTANCES(origin, size)
Description
Returns all cell indexes and their distances in a filled square k-ring centered at the origin in no particular order.
origin
:BIGINT
Quadbin index of the origin.size
:INT
size of the ring (distance from the origin).
Return type
JSON[]
Example
1
SELECT carto.QUADBIN_KRING_DISTANCES(5207251884775047167, 1);
2
-- {{"index" : 5207269476961091583, "distance" : "1"}
3
-- {"index" : 5207251884775047167, "distance" : "0"}
4
-- {"index" : 5207902795658690559, "distance" : "1"}
5
-- {"index" : 5208008348774957055, "distance" : "1"}
6
-- {"index" : 5207234292589002751, "distance" : "1"}
7
-- {"index" : 5207287069147135999, "distance" : "1"}
8
-- {"index" : 5207128739472736255, "distance" : "1"}
9
-- {"index" : 5208043533147045887, "distance" : "1"}
10
-- {"index" : 5207146331658780671, "distance" : "1"}}
tip
QUADBIN_POLYFILL(geom, resolution [, mode])
Description
Returns an array of quadbin cell indexes contained in the given geometry at a given level of detail. Containment is determined by the mode: center, intersects, contains.
geom
:GEOMETRY
representing the shape to cover.resolution
:INT
level of detail. The value must be between 0 and 26.mode
(optional):VARCHAR
center
(default) returns the indexes of the quadbin cells which centers intersect the input geometry (polygon). The resulting quadbin set does not fully cover the input geometry, however, this is significantly faster that the other modes. This mode is not compatible with points or lines.intersects
returns the indexes of the quadbin cells that intersect the input geometry. The resulting quadbin set will completely cover the input geometry (point, line, polygon).contains
returns the indexes of the quadbin cells that are entirely contained inside the input geometry (polygon). This mode is not compatible with points or lines.
Mode
center
:
Mode
intersects
:
Mode
contains
:
Return type
BIGINT[]
Examples
1
SELECT carto.QUADBIN_POLYFILL(
2
ST_GEOMFROMTEXT('POLYGON ((-3.71219873428345 40.413365349070865, -3.7144088745117 40.40965661286395, -3.70659828186035 40.409525904775634, -3.71219873428345 40.413365349070865))'),
3
17
4
);
5
-- [5265786693163941887, 5265786693164466175, 5265786693164728319]
1
SELECT quadbin
2
FROM UNNEST(carto.QUADBIN_POLYFILL(
3
ST_GEOMFROMTEXT('POLYGON ((-3.71219873428345 40.413365349070865, -3.7144088745117 40.40965661286395, -3.70659828186035 40.409525904775634, -3.71219873428345 40.413365349070865))'),
4
17
5
)) AS quadbin;
6
-- 5265786693163941887
7
-- 5265786693164466175
8
-- 5265786693164728319
1
SELECT quadbin
2
FROM <database>.<schema>.<table>,
3
UNNEST(carto.QUADBIN_POLYFILL(geom, 17)) AS quadbin;
1
SELECT carto.QUADBIN_POLYFILL(
2
ST_GEOMFROMTEXT('POLYGON ((-3.71219873428345 40.413365349070865, -3.7144088745117 40.40965661286395, -3.70659828186035 40.409525904775634, -3.71219873428345 40.413365349070865))'),
3
17, 'intersects'
4
);
5
-- [5265786693153193983, 5265786693163941887, 5265786693164466175, 5265786693164204031, 5265786693164728319, 5265786693165514751]
1
SELECT quadbin
2
FROM UNNEST(carto.QUADBIN_POLYFILL(
3
ST_GEOMFROMTEXT('POLYGON ((-3.71219873428345 40.413365349070865, -3.7144088745117 40.40965661286395, -3.70659828186035 40.409525904775634, -3.71219873428345 40.413365349070865))'),
4
17, 'intersects'
5
)) AS quadbin;
6
-- 5265786693153193983
7
-- 5265786693163941887
8
-- 5265786693164466175
9
-- 5265786693164204031
10
-- 5265786693164728319
11
-- 5265786693165514751
1
SELECT quadbin
2
FROM <database>.<schema>.<table>,
3
UNNEST(carto.QUADBIN_POLYFILL(geom, 17, 'intersects')) AS quadbin;
QUADBIN_RESOLUTION(quadbin)
Description
Returns the resolution of the input Quadbin.
quadbin
:BIGINT
Quadbin from which to get the resolution.
Return type
BIGINT
Example
1
SELECT carto.QUADBIN_RESOLUTION(5207251884775047167);
2
-- 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
:BIGINT
Quadbin to get the sibling from.direction
:TEXT
'right'|'left'|'up'|'down'
direction to move in to extract the next sibling.
Return type
BIGINT
Example
1
SELECT carto.QUADBIN_SIBLING(5207251884775047167, 'up');
2
-- 5207146331658780671
QUADBIN_TOCHILDREN(quadbin, resolution)
Description
Returns an array with the children Quadbins of a given Quadbin for a specific resolution. A children Quadbin is a Quadbin of higher level of detail that is contained by the current Quadbin. Each Quadbin has four direct children (at the next higher resolution).
quadbin
:BIGINT
Quadbin to get the children from.resolution
:INT
resolution of the desired children.
Return type
BIGINT[]
Example
1
SELECT carto.QUADBIN_TOCHILDREN(5207251884775047167, 5);
2
-- { 5211742290262884351
3
-- 5211751086355906559
4
-- 5211746688309395455
5
-- 5211755484402417663 }
QUADBIN_TOPARENT(quadbin, resolution)
Description
Returns the parent (ancestor) Quadbin of a given Quadbin for a specific resolution. An ancestor of a given Quadbin is a Quadbin of smaller resolution that spatially contains it.
quadbin
:BIGINT
Quadbin to get the parent from.resolution
:INT
resolution of the desired parent.
Return type
BIGINT
Example
1
SELECT carto.QUADBIN_TOPARENT(5207251884775047167, 3);
2
-- 5202783469519765503
QUADBIN_TOQUADKEY(quadbin)
Description
Compute a quadkey from a quadbin index.
quadbin
:BIGINT
Quadbin index.
Return type
TEXT
Example
1
SELECT carto.QUADBIN_TOQUADKEY(5234261499580514303);
2
-- '0331110121'
QUADBIN_TOZXY(quadbin)
Description
Returns the zoom level
z
and coordinates x
, y
for a given Quadbin.quadbin
:BIGINT
Quadbin from which to obtain the coordinates.
Return type
JSON
Example
1
SELECT carto.QUADBIN_TOZXY(5207251884775047167);
2
-- {"z" : 4, "x" : 7, "y" : 6}
Last modified 1mo ago