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

H3_BOUNDARY(index)

Description

Returns a geography representing the H3 cell. It will return null on error (invalid input).

  • index: VARCHAR(16) The H3 cell index as hexadecimal.

Return type

GEOMETRY

Example

SELECT carto.H3_BOUNDARY('84390cbffffffff');
-- POLYGON ((-3.5769274353957314 40.613438595935165, -3.85975632308016 40.525472355369885, -3.899552298996668 40.28411330409504, ...

H3_CENTER

H3_CENTER(index)

Description

Returns the center of the H3 cell as a GEOMETRY point. It will return null on error (invalid input).

  • index: VARCHAR(16) The H3 cell index.

Return type

GEOMETRY

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: VARCHAR(16)[] of H3 cell indices of the same resolution as hexadecimal.

Return type

VARCHAR(16)[]

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: VARCHAR(16) The H3 cell index as hexadecimal.

  • destination: VARCHAR(16) 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: GEOMETRY point to get the H3 cell from.

  • resolution: INT number between 0 and 15 with the H3 resolution.

Return type

VARCHAR(16)

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 PRECISION horizontal coordinate of the map.

  • latitude: DOUBLE PRECISION vertical coordinate of the map.

  • resolution: INT number between 0 and 15 with the H3 resolution.

Return type

VARCHAR(16)

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: VARCHAR(16) H3 cell index of the origin.

  • size: INT size of the ring (distance from the origin).

Return type

VARCHAR(16)[]

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

VARCHAR(16)

Example

H3_ISPENTAGON

Description

Returns true if given H3 index is a pentagon. Returns false otherwise, even on invalid input.

  • index: VARCHAR(16) The H3 cell index as hexadecimal.

Return type

BOOLEAN

Example

H3_ISVALID

Description

Returns true when the given index is valid, false otherwise.

  • index: VARCHAR(16) 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: VARCHAR(16) H3 cell index of the origin.

  • size: INT size of the ring (distance from the origin).

Return type

VARCHAR(16)[]

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: VARCHAR(16) H3 cell index of the origin.

  • size: INT size of the ring (distance from the origin).

Return type

JSON[]

Example

H3_POLYFILL

Description

Returns an array of H3 cell indexes contained in the given geometry at a requested resolution. 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 15 (H3 resolution table).

  • mode (optional): VARCHAR

    • center (default) returns the indexes of the H3 cells which centers intersect the input geometry (polygon). The resulting H3 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 H3 cells that intersect the input geometry. The resulting H3 set will completely cover the input geometry (point, line, polygon).

    • contains returns the indexes of the H3 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

VARCHAR(16)[]

Examples

H3_STRING_TOINT

Description

Converts the string representation of the H3 index to the integer representation.

  • index: VARCHAR(16) 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: VARCHAR(16) The H3 cell index as hexadecimal.

  • resolution: INT number between 0 and 15 with the H3 resolution.

Return type

VARCHAR(16)[]

Example

H3_TOPARENT

Description

Returns the H3 cell index of the parent of the given hexagon at the given resolution.

  • index: VARCHAR(16) The H3 cell index as hexadecimal.

  • resolution: INT number between 0 and 15 with the H3 resolution.

Return type

VARCHAR

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: VARCHAR(16) of H3 cell indices as hexadecimal.

  • resolution: INT number between 0 and 15 with the H3 resolution.

Return type

VARCHAR(16)[]

Example

Last updated

Was this helpful?