Passer au contenu principal

H3 Index

H3 est un système d’indexation géographique dans lequel la surface de la Terre est divisée en une grille régulière de cellules hexagonales. Ce système est hiérarchique, c’est-à-dire que chaque hexagone du niveau supérieur (« parent ») peut être subdivisé en sept hexagones réguliers plus petits (« enfants »), et ainsi de suite. Le niveau de la hiérarchie est appelé resolution et peut prendre une valeur de 0 à 15, où 0 correspond au niveau base, avec les cellules les plus grandes et les moins fines. Une paire latitude/longitude peut être convertie en un index H3 de 64 bits, qui identifie une cellule de la grille. L’index H3 est principalement utilisé pour regrouper des lieux et pour d’autres manipulations géospatiales. Une description complète du système H3 est disponible sur le site d’Uber Engineering.

h3IsValid

Vérifie si le nombre correspond à un index H3 valide. Syntaxe
Paramètre
  • h3index — Numéro d’index hexagonal. UInt64.
Valeurs de retour
  • 1 — Le nombre correspond à un index H3 valide. UInt8.
  • 0 — Le nombre ne correspond pas à un index H3 valide. UInt8.
Exemple
Query
Response

h3GetResolution

Définit la résolution de l’index H3 donné. Syntaxe
Paramètre
  • h3index — Numéro d’index hexagonal. UInt64.
Valeurs renvoyées
  • Résolution de l’index. Plage : [0, 15]. UInt8.
  • Si l’index n’est pas valide, la fonction renvoie une valeur aléatoire. Utilisez h3IsValid pour vérifier l’index. UInt8.
Exemple
Query
Response

h3EdgeAngle

Calcule la longueur moyenne d’un arête d’un hexagone H3 en grades. Syntaxe
Paramètre
  • resolution — Résolution de l’index. UInt8. Plage : [0, 15].
Valeurs renvoyées
  • La longueur moyenne de l’arête d’un hexagone H3, exprimée en grades. Float64.
Exemple
Query
Response

h3EdgeLengthM

Calcule la longueur moyenne d’une arête d’un hexagone H3, en mètres. Syntaxe
Paramètre
  • resolution — Résolution de l’index. UInt8. Plage : [0, 15].
Valeurs renvoyées
  • La longueur moyenne d’une arête d’un hexagone H3, en mètres. Float64.
Exemple
Query
Response

h3EdgeLengthKm

Calcule la longueur moyenne d’une arête d’un hexagone H3, en kilomètres. Syntaxe
Paramètre
  • resolution — Résolution de l’index. UInt8. Valeurs possibles : [0, 15].
Valeurs renvoyées
  • La longueur moyenne d’une arête d’un hexagone H3, en kilomètres. Float64.
Exemple
Query
Response

geoToH3

Renvoie l’index H3 du point (lat, lon) à la résolution spécifiée. Syntaxe
Arguments
  • lat — Latitude. Float64.
  • lon — Longitude. Float64.
  • resolution — Résolution de l’index. Plage : [0, 15]. UInt8.
Valeurs renvoyées
  • Numéro d’index hexagonal. UInt64.
  • 0 en cas d’erreur. UInt64.
Remarque : dans ClickHouse v25.4 ou une version antérieure, geoToH3() attend les valeurs dans l’ordre (lon, lat). À partir de ClickHouse v25.5, les valeurs d’entrée sont dans l’ordre (lat, lon). Le comportement précédent peut être rétabli à l’aide du paramètre geotoh3_argument_order = 'lon_lat'. Exemple
Query
Response

h3ToGeo

Renvoie la latitude et la longitude du centroïde correspondant à l’index H3 indiqué. Syntaxe
Arguments
  • h3Index — index H3. UInt64.
Valeurs renvoyées
  • Un tuple composé de deux valeurs : tuple(lat,lon). lat — Latitude. Float64. lon — Longitude. Float64.
Remarque : dans ClickHouse v24.12 et les versions antérieures, h3ToGeo() renvoie les valeurs dans l’ordre (lon, lat). À partir de ClickHouse v25.1, les valeurs renvoyées sont dans l’ordre (lat, lon). Le comportement précédent peut être restauré à l’aide du paramètre h3togeo_lon_lat_result_order = true. Exemple
Query
Response

h3ToGeoBoundary

Renvoie un Array de paires (lat, lon) représentant le contour de l’index H3 fourni. Syntaxe
Arguments
  • h3Index — index H3. UInt64.
Valeurs renvoyées Exemple
Query
Response

h3kRing

Liste tous les hexagones H3 situés dans un rayon de k autour de l’hexagone donné, dans un ordre aléatoire. Syntaxe
Arguments
  • h3index — Numéro d’index hexagonal. UInt64.
  • k — Rayon. entier
Valeurs renvoyées Exemple
Query
Response

h3PolygonToCells

Renvoie les hexagones (à la résolution spécifiée) compris dans la géométrie fournie, qu’il s’agisse d’un Ring ou d’un (multi-)Polygon. Syntaxe
Arguments Valeurs renvoyées Exemple
Query
Response

h3PolygonToCellsWithContainment

Renvoie les hexagones (à la résolution spécifiée) qui recouvrent la géométrie fournie — un ring ou un (multi-)polygon — en utilisant les modes de containment expérimentaux de H3. Cette fonction associe les flags aux modes de containment H3 :
  • 0CONTAINMENT_CENTER
  • 1CONTAINMENT_FULL
  • 2CONTAINMENT_OVERLAPPING
  • 3CONTAINMENT_OVERLAPPING_BBOX
Syntaxe
Arguments
  • geometry peut être l’un des types de données Geo suivants, ou l’un de leurs types primitifs sous-jacents :
  • resolution — Résolution de l’index. Plage : [0, 15]. UInt8.
  • flags — Mode de containment. Plage : [0, 3]. Utilisez des littéraux entiers tels que 0, 1, 2 et 3, ou des valeurs UInt32 (par exemple, toUInt32(2)). Les valeurs sont transmises à l’API H3 sous forme de UInt32. Les autres types entiers natifs sont convertis avec exactitude.
Valeurs renvoyées
  • Tableau d’index H3 selon le mode de containment sélectionné. Array(UInt64).
Exemple
Query
Response

h3GetBaseCell

Renvoie le numéro de la cellule de base de l’index H3. Syntaxe
Paramètre
  • index — Numéro d’index hexagonal. UInt64.
Valeur renvoyée
  • Numéro de cellule de base de l’hexagone. UInt8.
Exemple
Query
Response

h3HexAreaM2

Renvoie la surface moyenne d’un hexagone en mètres carrés pour la résolution donnée. Syntaxe
Paramètre
  • resolution — Résolution de l’index. Plage : [0, 15]. UInt8.
Valeur renvoyée
  • Superficie en mètres carrés. Float64.
Exemple
Query
Response

h3HexAreaKm2

Renvoie la superficie moyenne d’un hexagone, en kilomètres carrés, pour la résolution donnée. Syntaxe
Paramètre
  • resolution — Résolution de l’index. Plage : [0, 15]. UInt8.
Valeur renvoyée
  • Surface en kilomètres carrés. Float64.
Exemple
Query
Response

h3IndexesAreNeighbors

Indique si les index H3 spécifiés sont voisins. Syntaxe
Arguments
  • index1 — Numéro d’index hexagonal. UInt64.
  • index2 — Numéro d’index hexagonal. UInt64.
Valeur renvoyée
  • 1 — Les indices sont voisins. UInt8.
  • 0 — Les indices ne sont pas voisins. UInt8.
Exemple
Query
Response

h3ToChildren

Renvoie un tableau des index enfants pour l’index H3 donné. Syntaxe
Arguments
  • index — numéro d’index hexagonal. UInt64.
  • resolution — Résolution de l’index. Plage : [0, 15]. UInt8.
Valeurs renvoyées Exemple
Query
Response

h3ToParent

Renvoie l’index parent (de résolution inférieure) qui contient l’index H3 donné. Syntaxe
Arguments
  • index — numéro d’index hexagonal. UInt64.
  • resolution — Résolution de l’index. Plage : [0, 15]. UInt8.
Valeur renvoyée Exemple
Query
Response

h3ToString

Convertit la représentation H3Index de l’index en représentation textuelle.
Paramètre
  • index — numéro d’index hexagonal. UInt64.
Valeur renvoyée
  • Représentation sous forme de chaîne de l’index H3. String.
Exemple
Query
Response

stringToH3

Convertit la représentation textuelle en représentation H3Index (UInt64). Syntaxe
Paramètre
  • index_str — Représentation textuelle de l’index H3. String.
Valeur renvoyée
  • numéro d’index hexagonal. Renvoie 0 en cas d’erreur. UInt64.
Exemple
Query
Response

h3GetResolution

Renvoie la résolution de l’index H3. Syntaxe
Paramètre
  • index — Numéro d’index hexagonal. UInt64.
Valeur de retour
  • Résolution de l’index. Plage : [0, 15]. UInt8.
Exemple
Query
Response

h3IsResClassIII

Indique si l’index H3 a une résolution d’orientation de classe III. Syntaxe
Paramètre
  • index — numéro d’index hexagonal. UInt64.
Valeur renvoyée
  • 1 — L’index correspond à une résolution d’orientation de classe III. UInt8.
  • 0 — L’index ne correspond pas à une résolution d’orientation de classe III. UInt8.
Exemple
Query
Response

h3IsPentagon

Indique si cet index H3 représente une cellule pentagonale. Syntaxe
Paramètre
  • index — Numéro d’index hexagonal. UInt64.
Valeur renvoyée
  • 1 — L’index représente une cellule pentagonale. UInt8.
  • 0 — L’index ne représente pas une cellule pentagonale. UInt8.
Exemple
Query
Response

h3GetFaces

Renvoie les faces de l’icosaèdre qu’un index H3 donné intersecte. Syntaxe
Paramètre
  • index — Numéro d’index de l’hexagone. UInt64.
valeur renvoyée
  • Array contenant les faces de l’icosaèdre que recoupe l’index H3 donné. Array(UInt64).
Exemple
Query
Response

h3CellAreaM2

Renvoie la superficie exacte, en mètres carrés, d’une cellule spécifique pour l’index H3 fourni en entrée. Syntaxe
Paramètre
  • index — Numéro d’index de l’hexagone. UInt64.
Valeur renvoyée
  • Aire de la cellule en mètres carrés. Float64.
Exemple
Query
Response

h3CellAreaRads2

Renvoie l’aire exacte, en radians carrés, d’une cellule spécifique correspondant à l’index H3 fourni en entrée. Syntaxe
Paramètre
  • index — Numéro d’index de l’hexagone. UInt64.
Valeur renvoyée
  • Aire de la cellule en radians carrés. Float64.
Exemple
Query
Response

h3ToCenterChild

Renvoie l’index H3 enfant central (plus fin) contenu dans l’index H3 donné, à la résolution spécifiée. Syntaxe
Paramètre
  • index — Numéro d’index de l’hexagone. UInt64.
  • resolution — Résolution de l’index. Plage : [0, 15]. UInt8.
Valeurs renvoyées
  • Index H3 de la cellule enfant centrale contenue dans l’H3 donné, à la résolution indiquée. UInt64.
Exemple
Query
Response

h3ExactEdgeLengthM

Renvoie la longueur exacte, en mètres, de l’arête unidirectionnelle représentée par l’index H3 d’entrée. Syntaxe
Paramètre
  • index — Numéro d’index de l’hexagone. UInt64.
Valeur renvoyée
  • Longueur exacte de l’arête, en mètres. Float64.
Exemple
Query
Response

h3ExactEdgeLengthKm

Renvoie la longueur exacte, en kilomètres, de l’arête unidirectionnelle représentée par l’index H3 fourni en entrée. Syntaxe
Paramètre
  • index — Numéro d’index de l’hexagone. UInt64.
Valeur renvoyée
  • Longueur exacte de l’arête en kilomètres. Float64.
Exemple
Query
Response

h3ExactEdgeLengthRads

Renvoie la longueur exacte de l’arête unidirectionnelle représentée par l’index H3 d’entrée, en radians. Syntaxe
Paramètre
  • index — Numéro d’index de l’hexagone. UInt64.
Valeur renvoyée
  • Longueur exacte de l’arête, en radians. Float64.
Exemple
Query
Response

h3NumHexagons

Renvoie le nombre d’indices H3 uniques pour la résolution donnée. Syntaxe
Paramètre
  • resolution — Résolution de l’index. Plage : [0, 15]. UInt8.
Valeur renvoyée
  • Nombre d’indices H3. Int64.
Exemple
Query
Response

h3PointDistM

Renvoie la distance en mètres selon le « grand cercle » ou la formule « haversine » entre des paires de points GeoCoord (latitude/longitude). Syntaxe
Arguments
  • lat1, lon1 — Latitude et longitude du point 1 en degrés. Float64.
  • lat2, lon2 — Latitude et longitude du point 2 en degrés. Float64.
Valeurs renvoyées
  • Distance de Haversine, ou distance orthodromique, en mètres.Float64.
Exemple
Query
Response

h3PointDistKm

Renvoie la distance « grand cercle » ou « haversine » entre des paires de points GeoCoord (latitude/longitude), exprimée en kilomètres. Syntaxe
Arguments
  • lat1, lon1 — Latitude et longitude du point1, en degrés. Float64.
  • lat2, lon2 — Latitude et longitude du point2, en degrés. Float64.
Valeurs renvoyées
  • Distance de Haversine ou orthodromique, en kilomètres. Float64.
Exemple
Query
Response

h3PointDistRads

Renvoie la distance « grand cercle » ou « haversine », en radians, entre des paires de points GeoCoord (latitude/longitude). Syntaxe
Arguments
  • lat1, lon1 — Latitude et longitude du point 1 en degrés. Float64.
  • lat2, lon2 — Latitude et longitude du point 2 en degrés. Float64.
Valeurs renvoyées
  • Distance de Haversine ou distance orthodromique, en radians. Float64.
Exemple
Query
Response

h3GetRes0Indexes

Renvoie un tableau de tous les index H3 de résolution 0. Syntaxe
Valeurs renvoyées
  • Tableau de tous les index H3 de résolution 0. Array(UInt64).
Exemple
Query
Response

h3GetPentagonIndexes

Renvoie tous les index H3 en forme de pentagone à la résolution spécifiée. Syntaxe
Paramètre
  • resolution — Résolution de l’index. Plage : [0, 15]. UInt8.
Valeur renvoyée
  • Tableau de tous les index H3 pentagonaux. Array(UInt64).
Exemple
Query
Response

h3Line

Renvoie la ligne d’indices reliant les deux indices fournis. Syntaxe
Paramètre
  • start — Numéro d’index de l’hexagone représentant un point de départ. UInt64.
  • end — Numéro d’index de l’hexagone représentant un point d’arrivée. UInt64.
Valeur renvoyée Array d’index H3 représentant la suite d’index entre les deux index fournis. Array(UInt64). Exemple
Query
Response

h3Distance

Renvoie la distance, en cellules de grille, entre les deux indices fournis. Syntaxe
Paramètre
  • start — Numéro d’index de l’hexagone représentant un point de départ. UInt64.
  • end — Numéro d’index de l’hexagone représentant un point d’arrivée. UInt64.
Valeur renvoyée
  • Nombre de cellules de la grille. Int64.
Renvoie un nombre négatif si le calcul de la distance échoue. Exemple
Query
Response

h3HexRing

Renvoie les indices de l’anneau hexagonal centré sur l’h3Index d’origine fourni, de longueur k. Renvoie 0 si aucune distorsion pentagonale n’a été détectée. Syntaxe
Paramètre
  • index — Numéro d’index de l’hexagone représentant l’origine. UInt64.
  • k — Distance. UInt64.
Valeurs renvoyées Exemple
Query
Response

h3GetUnidirectionalEdge

Renvoie l’index H3 d’une arête unidirectionnelle à partir de l’origine et de la destination fournies, ou 0 en cas d’erreur. Syntaxe
Paramètres
  • originIndex — Numéro d’index de l’hexagone d’origine. UInt64.
  • destinationIndex — Numéro d’index de l’hexagone de destination. UInt64.
valeur renvoyée
  • Numéro d’index d’arête hexagonale unidirectionnelle. UInt64.
Exemple
Query
Response

h3UnidirectionalEdgeIsValid

Détermine si le H3Index fourni correspond à une arête unidirectionnelle valide. Renvoie 1 s’il s’agit d’une arête unidirectionnelle, et 0 sinon. Syntaxe
Paramètre
  • index — Numéro d’index de l’hexagone. UInt64.
Valeur renvoyée
  • 1 — L’index H3 est une arête unidirectionnelle valide. UInt8.
  • 0 — L’index H3 n’est pas une arête unidirectionnelle valide. UInt8.
Exemple
Query
Response

h3GetOriginIndexFromUnidirectionalEdge

Renvoie l’index de l’hexagone d’origine à partir de l’arête unidirectionnelle H3Index. Syntaxe
Paramètre
  • edge — Numéro d’index de l’hexagone représentant une arête unidirectionnelle. UInt64.
valeur renvoyée
  • Numéro d’index de l’hexagone d’origine. UInt64.
Exemple
Query
Response

h3GetDestinationIndexFromUnidirectionalEdge

Renvoie l’index du hexagone de destination à partir de l’arête unidirectionnelle H3Index. Syntaxe
Paramètre
  • edge — Numéro d’index d’hexagone représentant une arête unidirectionnelle. UInt64.
Valeur renvoyée
  • Numéro d’index de l’hexagone de destination. UInt64.
Exemple
Query
Response

h3GetIndexesFromUnidirectionalEdge

Renvoie les index H3 des hexagones d’origine et de destination à partir de l’arête unidirectionnelle H3Index donnée. Syntaxe
Paramètre
  • edge — Numéro d’index d’hexagone représentant une arête unidirectionnelle. UInt64.
Valeur renvoyée Un tuple composé de deux valeurs tuple(origin,destination) :
  • origin — numéro d’index de l’hexagone d’origine. UInt64.
  • destination — numéro d’index de l’hexagone de destination. UInt64.
Renvoyer (0,0) si l’entrée fournie n’est pas valide. Exemple
Query
Response

h3GetUnidirectionalEdgesFromHexagon

Renvoie toutes les arêtes unidirectionnelles de l’H3Index fourni. Syntaxe
Paramètre
  • index — Numéro d’index de l’hexagone représentant une arête unidirectionnelle. UInt64.
Valeur renvoyée Array d’index H3 représentant chaque arête unidirectionnelle. Array(UInt64). Exemple
Query
Response

h3GetUnidirectionalEdgeBoundary

Renvoie les coordonnées qui définissent l’arête unidirectionnelle. Syntaxe
Paramètre
  • index — Numéro d’index de l’hexagone représentant une arête unidirectionnelle. UInt64.
Valeur renvoyée Exemple
Query
Response
Dernière modification le 1 juillet 2026