h3
H3 is Uber’s Hexagonal Hierarchical Spatial Index. Full documentation of the project can be found at h3geo. You can also learn more about H3 in the Spatial Indexes section of this documentation.
H3_BOUNDARY
Description
Returns a geography representing the H3 cell. It will return null
on error (invalid input).
index
:STRING
The H3 cell index as hexadecimal.
Return type
GEOGRAPHY
Example
H3_CENTER
Description
Returns the center of the H3 cell as a GEOGRAPHY point. It will return null
on error (invalid input).
index
:STRING
The H3 cell index.
Return type
GEOGRAPHY
Example
H3_COMPACT
Description
Returns an array with the indexes of a set of hexagons across multiple resolutions that represent the same area as the input set of hexagons.
indexArray
:ARRAY
of H3 cell indices of the same resolution as hexadecimal.
Return type
ARRAY
Example
H3_DISTANCE
Description
Returns the grid distance between two hexagon indexes. This function may fail to find the distance between two indexes if they are very far apart or on opposite sides of a pentagon. Returns null
on failure or invalid input.
origin
:STRING
The H3 cell index as hexadecimal.destination
:STRING
The H3 cell index as hexadecimal.
Return type
BIGINT
Example
tip
If you want the distance in meters use ST_DISTANCE between the cells (H3_BOUNDARY) or their centroid.
H3_FROMGEOGPOINT
Description
Returns the H3 cell index that the point belongs to in the requested resolution
. It will return null
on error (invalid geography type or resolution out of bounds). This function is an alias for H3_FROMGEOPOINT
.
point
:GEOGRAPHY
point to get the H3 cell from.resolution
:INT
number between 0 and 15 with the H3 resolution.
Return type
STRING
Example
tip
If you want the cells covered by a POLYGON see H3_POLYFILL.
H3_FROMLONGLAT
Description
Returns the H3 cell index that the point belongs to in the required resolution
. It will return null
on error (resolution out of bounds).
longitude
:DOUBLE
horizontal coordinate of the map.latitude
:DOUBLE
vertical coordinate of the map.resolution
:INT
number between 0 and 15 with the H3 resolution.
Return type
STRING
Example
H3_HEXRING
Description
Returns all cell indexes in a hollow hexagonal ring centered at the origin in no particular order. Unlike H3_KRING, this function will throw an exception if there is a pentagon anywhere in the ring.
origin
:STRING
H3 cell index of the origin.size
:INT
size of the ring (distance from the origin).
Return type
ARRAY
Example
H3_INT_TOSTRING
Description
Converts the integer representation of the H3 index to the string representation.
index
:INT
The H3 cell index.
Return type
STRING
Example
H3_ISPENTAGON
Description
Returns true
if given H3 index is a pentagon. Returns false
otherwise, even on invalid input.
index
:STRING
The H3 cell index as hexadecimal.
Return type
BOOLEAN
Example
H3_ISVALID
Description
Returns true
when the given index is valid, false
otherwise.
index
:STRING
The H3 cell index as hexadecimal.
Return type
BOOLEAN
Examples
H3_KRING
Description
Returns all cell indexes in a filled hexagonal k-ring centered at the origin in no particular order.
origin
:STRING
H3 cell index of the origin.size
:INT
size of the ring (distance from the origin).
Return type
ARRAY
Example
H3_KRING_DISTANCES
Description
Returns all cell indexes and their distances in a filled hexagonal k-ring centered at the origin in no particular order.
origin
:STRING
H3 cell index of the origin.size
:INT
size of the ring (distance from the origin).
Return type
ARRAY
Example
H3_POLYFILL
Description
Returns an array with all H3 cell indexes contained in the given polygon. There are three modes which decide if a H3 cell is contained in the polygon:
geography
:GEOGRAPHY
polygon or multipolygon representing the shape to cover. GeometryCollections are also allowed but they should contain polygon or multipolygon geographies. Non-Polygon types will not raise an error but will be ignored instead.resolution
:INT
number between 0 and 15 with the H3 resolution.mode
:STRING
<center|contains|intersects>
. Optional. Defaults to 'center' mode.center
The center point of the H3 cell must be within the polygoncontains
The H3 cell must be fully contained within the polygon (least inclusive)intersects
The H3 cell intersects in any way with the polygon (most inclusive)
Mode center
:
Mode intersects
:
Mode contains
:
Return type
ARRAY<STRING>
Examples
H3_POLYFILL_TABLE (BETA)
Description
Returns a table with the H3 cell indexes contained in the given geography at a requested resolution. Containment is determined by the mode: center, intersects, contains. All the attributes except the geography will be included in the output table, clustered by the h3 column.
input_query
:STRING
input data to polyfill. It must contain a columngeom
with the shape to cover. Additionally, other columns can be included.resolution
:INT
level of detail. The value must be between 0 and 15 (H3 resolution table).mode
:STRING
center
returns the indexes of the H3 cells which centers intersect the input geography (polygon). The resulting H3 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 toH3_POLYFILL
.intersects
returns the indexes of the H3 cells that intersect the input geography. The resulting H3 set will completely cover the input geography (point, line, polygon).contains
returns the indexes of the H3 cells that are entirely contained inside the input geography (polygon). This mode is not compatible with points or lines.
output_table
:STRING
name of the output table to store the results of the polyfill.
Mode center
:
Mode intersects
:
Mode contains
:
Output
The results are stored in the table named <output_table>
, which contains the following columns:
h3
:STRING
the geometry of the considered point.The rest of columns included in
input_query
exceptgeom
.
Examples
H3_RESOLUTION
Description
Returns the H3 cell resolution as an integer. It will return null
on error (invalid input).
index
:STRING
The H3 cell index.
Return type
INT
Example
H3_STRING_TOINT
Description
Converts the string representation of the H3 index to the integer representation.
index
:STRING
The H3 cell index.
Return type
INT
Example
H3_TOCHILDREN
Description
Returns an array with the indexes of the children/descendents of the given hexagon at the given resolution.
index
:STRING
The H3 cell index as hexadecimal.resolution
:INT
number between 0 and 15 with the H3 resolution.
Return type
ARRAY
Example
H3_TOPARENT
Description
Returns the H3 cell index of the parent of the given hexagon at the given resolution.
index
:STRING
The H3 cell index as hexadecimal.resolution
:INT
number between 0 and 15 with the H3 resolution.
Return type
STRING
Example
H3_UNCOMPACT
Description
Returns an array with the indexes of a set of hexagons of the same resolution
that represent the same area as the compacted input hexagons.
indexArray
:ARRAY
of H3 cell indices as hexadecimal.resolution
:INT
number between 0 and 15 with the H3 resolution.
Return type
ARRAY
Example
Last updated