Skip to main content

Geography Functions

Geography Functions in SQL.

FunctionDescriptionExampleResult
GEO_TO_H3(lon, lat, res)Returns the H3 index of the hexagon cell where the given location resides.GEO_TO_H3(37.79506683, 55.71290588, 15)644325524701193974
GEOHASH_DECODE('<geohashed-string>')Converts a Geohash-encoded string into latitude/longitude coordinates.GEOHASH_DECODE('ezs42')(-5.60302734375,42.60498046875)
GEOHASH_ENCODE(lon, lat)Converts a pair of latitude and longitude coordinates into a Geohash-encoded string.GEOHASH_ENCODE(-5.60302734375, 42.593994140625)ezs42d000000
POINT_IN_POLYGON((x,y), [(a,b), (c,d), (e,f) ... ])Calculates whether a given point falls within the polygon formed by joining multiple points.POINT_IN_POLYGON((3., 3.), [(6, 0), (8, 4), (5, 8), (0, 2)])1
H3_TO_GEO(h3)Returns the longitude and latitude corresponding to the given H3 index.H3_TO_GEO(644325524701193974)(37.79506616830255,55.712902431456676)
H3_TO_GEO_BOUNDARY(h3)Returns an array containing the longitude and latitude coordinates of the vertices of the hexagon corresponding to the H3 index.H3_TO_GEO_BOUNDARY(644325524701193974)[(37.79505811173477,55.712900225355526),(37.79506506997187,55.71289713485416),(37.795073126539855,55.71289934095484),(37.795074224871684,55.71290463755745),(37.79506726663349,55.71290772805916),(37.79505921006456,55.712905521957914)]
H3_K_RING(h3, k)Returns an array containing the H3 indexes of the k-ring hexagons surrounding the input H3 index. Each element in this array is an H3 index.H3_K_RING(644325524701193974, 1)[644325524701193897,644325524701193899,644325524701193869,644325524701193970,644325524701193968,644325524701193972]
H3_IS_VALID(h3)Checks if the given H3 index is valid.H3_IS_VALID(644325524701193974)1
H3_GET_RESOLUTION(h3)Returns the resolution of the given H3 index.H3_GET_RESOLUTION(644325524701193974)15
H3_EDGE_LENGTH_M(res)Returns the average hexagon edge length in meters at the given resolution. Excludes pentagons.H3_EDGE_LENGTH_M(1)418676.0055
H3_EDGE_LENGTH_KM(res)Returns the average hexagon edge length in kilometers at the given resolution. Excludes pentagons.H3_EDGE_LENGTH_KM(1)418.6760055
H3_GET_BASE_CELL(h3)Returns the base cell number of the given H3 index.H3_GET_BASE_CELL(644325524701193974)8
H3_HEX_AREA_M2(res)Returns the average hexagon area in square meters at the given resolution. Excludes pentagons.H3_HEX_AREA_M2(1)6.097884417941339e11
H3_HEX_AREA_KM2(res)Returns the average hexagon area in square kilometers at the given resolution. Excludes pentagons.H3_HEX_AREA_KM2(1)609788.4417941332
H3_INDEXES_ARE_NEIGHBORS(h3, a_h3)Returns whether or not the provided H3 indexes are neighbors.H3_INDEXES_ARE_NEIGHBORS(644325524701193974, 644325524701193897)1
H3_TO_CHILDREN(h3, child_res)Returns the indexes contained by h3 at resolution child_res.H3_TO_CHILDREN(635318325446452991, 14)[639821925073823431,639821925073823439,639821925073823447,639821925073823455,639821925073823463,639821925073823471,639821925073823479]
H3_TO_PARENT(h3, parent_res)Returns the parent index containing the h3 at resolution parent_res.H3_TO_PARENT(635318325446452991, 12)630814725819082751
H3_TO_STRING(h3)Converts the representation of the given H3 index to the string representation.H3_TO_STRING(635318325446452991)8d11aa6a38826ff
STRING_TO_H3(h3)Converts the string representation to H3 (uint64) representation.STRING_TO_H3('8d11aa6a38826ff')635318325446452991
H3_IS_RES_CLASS_III(h3)Checks if the given H3 index has a resolution with Class III orientation.H3_IS_RES_CLASS_III(635318325446452991)1
H3_IS_PENTAGON(h3)Checks if the given H3 index represents a pentagonal cell.H3_IS_PENTAGON(599119489002373119)1
H3_GET_FACES(h3)Finds all icosahedron faces intersected by the given H3 index. Faces are represented as integers from 0-19.H3_GET_FACES(599119489002373119)[0,1,2,3,4]
H3_CELL_AREA_M2(h3)Returns the exact area of specific cell in square meters.H3_CELL_AREA_M2(599119489002373119)127785582.60810876
H3_CELL_AREA_RADS2(h3)Returns the exact area of specific cell in square radians.H3_CELL_AREA_RADS2(599119489002373119)3.1482243104279148e-6
H3_TO_CENTER_CHILD(h3, res)Returns the center child index at the specified resolution.H3_TO_CENTER_CHILD(599119489002373119, 15)644155484202336256
H3_EXACT_EDGE_LENGTH_M(h3)Computes the length of this directed edge, in meters.H3_EXACT_EDGE_LENGTH_M(1319695429381652479)8267.32683264678
H3_EXACT_EDGE_LENGTH_KM(h3)Computes the length of this directed edge, in kilometers.H3_EXACT_EDGE_LENGTH_KM(1319695429381652479)8.26732683264678
H3_EXACT_EDGE_LENGTH_RADS(h3)Computes the length of this directed edge, in radians.H3_EXACT_EDGE_LENGTH_KM(1319695429381652479)0.0012976483306137042
H3_NUM_HEXAGONS(res)Returns the number of unique H3 indexes at the given resolution.H3_NUM_HEXAGONS(10)33897029882
H3_LINE(h3, a_h3)Returns the line of indexes between the given two H3 indexes.H3_LINE(599119489002373119, 599119491149856767)[599119489002373119,599119491149856767]
H3_DISTANCE(h3, a_h3)Returns the grid distance between the the given two H3 indexes.H3_DISTANCE(599119489002373119, 599119491149856767)1
H3_HEX_RING(h3, k)Returns the "hollow" ring of hexagons at exactly grid distance k from the given H3 index.H3_HEX_RING(599686042433355775, 2)[599686018811035647,599686034917163007,599686029548453887,599686032769679359,599686198125920255,599686040285872127,599686041359613951,599686039212130303,599686023106002943,599686027400970239,599686013442326527,599686012368584703]
H3_GET_UNIDIRECTIONAL_EDGE(h3, a_h3)Returns the edge between the given two H3 indexes.H3_GET_UNIDIRECTIONAL_EDGE(644325524701193897, 644325524701193754)1581074247194257065
H3_UNIDIRECTIONAL_EDGE_IS_VALID(h3)Determines if the provided H3Index is a valid unidirectional edge index. Returns 1 if it's a unidirectional edge and 0 otherwise.H3_UNIDIRECTIONAL_EDGE_IS_VALID(1248204388774707199)1
H3_GET_ORIGIN_INDEX_FROM_UNIDIRECTIONAL_EDGE(h3)Returns the origin hexagon index from the unidirectional edge H3Index.H3_GET_ORIGIN_INDEX_FROM_UNIDIRECTIONAL_EDGE(1248204388774707199)599686042433355775
H3_GET_DESTINATION_INDEX_FROM_UNIDIRECTIONAL_EDGE(h3)Returns the destination hexagon index from the unidirectional edge H3Index.H3_GET_DESTINATION_INDEX_FROM_UNIDIRECTIONAL_EDGE(1248204388774707199)599686043507097599
H3_GET_INDEXES_FROM_UNIDIRECTIONAL_EDGE(h3)Returns the origin and destination hexagon indexes from the given unidirectional edge H3Index.H3_GET_INDEXES_FROM_UNIDIRECTIONAL_EDGE(1248204388774707199)(599686042433355775,599686043507097599)
H3_GET_UNIDIRECTIONAL_EDGES_FROM_HEXAGON(h3)Returns all of the unidirectional edges from the provided H3Index.H3_GET_UNIDIRECTIONAL_EDGES_FROM_HEXAGON(644325524701193754)[1292843871042545178,1364901465080473114,1436959059118401050,1509016653156328986,1581074247194256922,1653131841232184858]
H3_GET_UNIDIRECTIONAL_EDGE_BOUNDARY(h3)Returns the coordinates defining the unidirectional edge.H3_GET_UNIDIRECTIONAL_EDGE_BOUNDARY(1248204388774707199)[(37.42012867767778,-122.03773496427027),(37.33755608435298,-122.09042892904397)]
H3_EDGE_ANGLE(res)Returns the coordinates defining the unidirectional edge.H3_EDGE_ANGLE(10)0.0005927224846720883
note
  • GEO_TO_H3(lon, lat, res), H3_TO_PARENT(h3, parent_res) returning 0 means an error occurred.
  • POINT_IN_POLYGON((x,y), [(a,b), (c,d), (e,f) ... ]) A polygon is a closed shape connected by coordinate pairs in the order they appear. Changing the order of coordinate pairs can result in a different shape.