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. Syntaxeh3index— Numéro d’index hexagonal. UInt64.
- 1 — Le nombre correspond à un index H3 valide. UInt8.
- 0 — Le nombre ne correspond pas à un index H3 valide. UInt8.
Query
Response
h3GetResolution
Définit la résolution de l’index H3 donné. Syntaxeh3index— Numéro d’index hexagonal. UInt64.
- 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.
Query
Response
h3EdgeAngle
Calcule la longueur moyenne d’un arête d’un hexagone H3 en grades. Syntaxeresolution— Résolution de l’index. UInt8. Plage :[0, 15].
Query
Response
h3EdgeLengthM
Calcule la longueur moyenne d’une arête d’un hexagone H3, en mètres. Syntaxeresolution— Résolution de l’index. UInt8. Plage :[0, 15].
Query
Response
h3EdgeLengthKm
Calcule la longueur moyenne d’une arête d’un hexagone H3, en kilomètres. Syntaxeresolution— Résolution de l’index. UInt8. Valeurs possibles :[0, 15].
Query
Response
geoToH3
Renvoie l’index H3 du point(lat, lon) à la résolution spécifiée.
Syntaxe
lat— Latitude. Float64.lon— Longitude. Float64.resolution— Résolution de l’index. Plage :[0, 15]. UInt8.
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é. Syntaxeh3Index— index H3. UInt64.
- Un tuple composé de deux valeurs :
tuple(lat,lon).lat— Latitude. Float64.lon— Longitude. Float64.
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
h3Index— index H3. UInt64.
Query
Response
h3kRing
Liste tous les hexagones H3 situés dans un rayon dek autour de l’hexagone donné, dans un ordre aléatoire.
Syntaxe
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. Un hexagone est considéré comme contenu lorsque la géométrie contient son centre, ce qui correspond au mode de containment0 de h3PolygonToCellsWithContainment.
Chaque sommet de la géométrie doit se trouver sur la sphère : longitude dans la plage [-180, 180] et latitude dans la plage [-90, 90] degrés. L’ordre des cellules renvoyées n’est pas garanti ; triez donc le tableau lorsque l’ordre est important.
Syntaxe
geometrypeut ê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.
Query
Response
h3PolygonToCellsWithContainment
Renvoie les hexagones (à la résolution spécifiée) qui recouvrent la géométrie fournie — unring ou un (multi-)polygon — en utilisant les modes de containment expérimentaux de H3.
Chaque sommet de la géométrie doit se trouver sur la sphère : longitude comprise dans la plage [-180, 180] et latitude comprise dans la plage [-90, 90] degrés. L’ordre des cellules renvoyées n’est pas garanti ; triez donc le tableau lorsque l’ordre est important.
Cette fonction associe les flags aux modes de containment H3 :
0—CONTAINMENT_CENTER1—CONTAINMENT_FULL2—CONTAINMENT_OVERLAPPING3—CONTAINMENT_OVERLAPPING_BBOX
geometrypeut ê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 que0,1,2et3, ou des valeurs UInt32 (par exemple,toUInt32(2)). Les valeurs sont transmises à l’API H3 sous forme deUInt32. Les autres types entiers natifs sont convertis avec exactitude.
Query
Response
h3GetBaseCell
Renvoie le numéro de la cellule de base de l’index H3. Syntaxeindex— Numéro d’index hexagonal. UInt64.
- Numéro de cellule de base de l’hexagone. UInt8.
Query
Response
h3HexAreaM2
Renvoie la surface moyenne d’un hexagone en mètres carrés pour la résolution donnée. Syntaxeresolution— Résolution de l’index. Plage :[0, 15]. UInt8.
- Superficie en mètres carrés. Float64.
Query
Response
h3HexAreaKm2
Renvoie la superficie moyenne d’un hexagone, en kilomètres carrés, pour la résolution donnée. Syntaxeresolution— Résolution de l’index. Plage :[0, 15]. UInt8.
- Surface en kilomètres carrés. Float64.
Query
Response
h3IndexesAreNeighbors
Indique si les index H3 spécifiés sont voisins. SyntaxeQuery
Response
h3ToChildren
Renvoie un tableau des index enfants pour l’index H3 donné. Syntaxeindex— numéro d’index hexagonal. UInt64.resolution— Résolution de l’index. Plage :[0, 15]. UInt8.
Query
Response
h3ToParent
Renvoie l’index parent (de résolution inférieure) qui contient l’index H3 donné. Syntaxeindex— numéro d’index hexagonal. UInt64.resolution— Résolution de l’index. Plage :[0, 15]. UInt8.
- Index H3 du parent. UInt64.
Query
Response
h3ToString
Convertit la représentationH3Index de l’index en représentation textuelle.
index— numéro d’index hexagonal. UInt64.
- Représentation sous forme de chaîne de l’index H3. String.
Query
Response
stringToH3
Convertit la représentation textuelle en représentationH3Index (UInt64).
Syntaxe
index_str— Représentation textuelle de l’index H3. String.
- numéro d’index hexagonal. Renvoie 0 en cas d’erreur. UInt64.
Query
Response
h3GetResolution
Renvoie la résolution de l’index H3. Syntaxeindex— Numéro d’index hexagonal. UInt64.
- Résolution de l’index. Plage :
[0, 15]. UInt8.
Query
Response
h3IsResClassIII
Indique si l’index H3 a une résolution d’orientation de classe III. Syntaxeindex— numéro d’index hexagonal. UInt64.
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.
Query
Response
h3IsPentagon
Indique si cet index H3 représente une cellule pentagonale. Syntaxeindex— Numéro d’index hexagonal. UInt64.
1— L’index représente une cellule pentagonale. UInt8.0— L’index ne représente pas une cellule pentagonale. UInt8.
Query
Response
h3GetFaces
Renvoie les faces de l’icosaèdre qu’un index H3 donné intersecte. Syntaxeindex— Numéro d’index de l’hexagone. UInt64.
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. Syntaxeindex— Numéro d’index de l’hexagone. UInt64.
- Aire de la cellule en mètres carrés. Float64.
Query
Response
h3CellAreaRads2
Renvoie l’aire exacte, en radians carrés, d’une cellule spécifique correspondant à l’index H3 fourni en entrée. Syntaxeindex— Numéro d’index de l’hexagone. UInt64.
- Aire de la cellule en radians carrés. Float64.
Query
Response
h3ToCenterChild
Renvoie l’index H3 enfant central (plus fin) contenu dans l’index H3 donné, à la résolution spécifiée. Syntaxeindex— Numéro d’index de l’hexagone. UInt64.resolution— Résolution de l’index. Plage :[0, 15]. UInt8.
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. Syntaxeindex— Numéro d’index de l’hexagone. UInt64.
- Longueur exacte de l’arête, en mètres. Float64.
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. Syntaxeindex— Numéro d’index de l’hexagone. UInt64.
- Longueur exacte de l’arête en kilomètres. Float64.
Query
Response
h3ExactEdgeLengthRads
Renvoie la longueur exacte de l’arête unidirectionnelle représentée par l’index H3 d’entrée, en radians. Syntaxeindex— Numéro d’index de l’hexagone. UInt64.
- Longueur exacte de l’arête, en radians. Float64.
Query
Response
h3NumHexagons
Renvoie le nombre d’indices H3 uniques pour la résolution donnée. Syntaxeresolution— Résolution de l’index. Plage :[0, 15]. UInt8.
- Nombre d’indices H3. Int64.
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). Syntaxelat1,lon1— Latitude et longitude du point 1 en degrés. Float64.lat2,lon2— Latitude et longitude du point 2 en degrés. Float64.
- Distance de Haversine, ou distance orthodromique, en mètres.Float64.
Query
Response
h3PointDistKm
Renvoie la distance « grand cercle » ou « haversine » entre des paires de points GeoCoord (latitude/longitude), exprimée en kilomètres. Syntaxelat1,lon1— Latitude et longitude du point1, en degrés. Float64.lat2,lon2— Latitude et longitude du point2, en degrés. Float64.
- Distance de Haversine ou orthodromique, en kilomètres. Float64.
Query
Response
h3PointDistRads
Renvoie la distance « grand cercle » ou « haversine », en radians, entre des paires de points GeoCoord (latitude/longitude). Syntaxelat1,lon1— Latitude et longitude du point 1 en degrés. Float64.lat2,lon2— Latitude et longitude du point 2 en degrés. Float64.
- Distance de Haversine ou distance orthodromique, en radians. Float64.
Query
Response
h3GetRes0Indexes
Renvoie un tableau de tous les index H3 de résolution 0. SyntaxeQuery
Response
h3GetPentagonIndexes
Renvoie tous les index H3 en forme de pentagone à la résolution spécifiée. Syntaxeresolution— Résolution de l’index. Plage :[0, 15]. UInt8.
Query
Response
h3Line
Renvoie la ligne d’indices reliant les deux indices fournis. Syntaxestart— 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.
Query
Response
h3Distance
Renvoie la distance, en cellules de grille, entre les deux indices fournis. Syntaxestart— 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.
- Nombre de cellules de la grille. Int64.
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. SyntaxeQuery
Response
h3GetUnidirectionalEdge
Renvoie un index H3 d’arête unidirectionnelle pour deux index de cellules H3 adjacentes (origine et destination). Lève une exception si l’une des entrées n’est pas une cellule H3 valide (ce comportement est contrôlé par le paramètrefunctions_h3_default_if_invalid). Pour des cellules valides qui ne sont pas voisines (y compris la même cellule deux fois), renvoie 0.
Syntaxe
originIndex— Numéro d’index de l’hexagone d’origine. UInt64.destinationIndex— Numéro d’index de l’hexagone de destination. UInt64.
- Numéro d’index d’arête hexagonale unidirectionnelle. UInt64.
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. Syntaxeindex— Numéro d’index de l’hexagone. UInt64.
- 1 — L’index H3 est une arête unidirectionnelle valide. UInt8.
- 0 — L’index H3 n’est pas une arête unidirectionnelle valide. UInt8.
Query
Response
h3GetOriginIndexFromUnidirectionalEdge
Renvoie l’index de l’hexagone d’origine à partir de l’arête unidirectionnelle H3Index. Lève une exception si l’entrée n’est pas une arête dirigée valide (contrôlé par le paramètrefunctions_h3_default_if_invalid) ; renvoie 0 uniquement lorsque ce paramètre est activé.
Syntaxe
edge— Numéro d’index de l’hexagone représentant une arête unidirectionnelle. UInt64.
- Numéro d’index de l’hexagone d’origine. UInt64.
- Lève
INCORRECT_DATApour les arêtes dirigées non valides par défaut ; renvoie0lorsquefunctions_h3_default_if_invalid = 1.
Query
Response
h3GetDestinationIndexFromUnidirectionalEdge
Renvoie l’index du hexagone de destination à partir de l’arête unidirectionnelle H3Index. Lève une exception si l’entrée n’est pas une arête dirigée valide (contrôlé par le paramètrefunctions_h3_default_if_invalid) ; renvoie 0 uniquement lorsque ce paramètre est activé.
Syntaxe
edge— Numéro d’index de l’hexagone représentant une arête unidirectionnelle. UInt64.
- Numéro d’index de l’hexagone de destination. UInt64.
- Lève
INCORRECT_DATApour les arêtes dirigées non valides par défaut ; renvoie0lorsquefunctions_h3_default_if_invalid = 1.
Query
Response
h3GetIndexesFromUnidirectionalEdge
Renvoie les index H3 des hexagones d’origine et de destination à partir de l’arête unidirectionnelle H3Index donnée. Syntaxeedge— Numéro d’index de l’hexagone représentant une arête unidirectionnelle. UInt64.
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.
functions_h3_default_if_invalid) ; renvoie (0,0) uniquement lorsque ce paramètre est activé.
Exemple
Query
Response
h3GetUnidirectionalEdgesFromHexagon
Renvoie toutes les arêtes unidirectionnelles de l’H3Index fourni. Lève une exception si l’entrée n’est pas une cellule H3 valide (selon le paramètrefunctions_h3_default_if_invalid) ; renvoie un tableau vide uniquement lorsque ce paramètre est activé.
Syntaxe
index— Numéro d’index de l’hexagone représentant une cellule. UInt64.
- Array d’index H3 représentant chaque arête unidirectionnelle. Array(UInt64).
- Lève
INCORRECT_DATApour les cellules non valides par défaut ; renvoie[]lorsquefunctions_h3_default_if_invalid = 1.
Query
Response
h3GetUnidirectionalEdgeBoundary
Renvoie les coordonnées qui définissent l’arête unidirectionnelle. Lève une exception si l’entrée n’est pas une arête dirigée valide (contrôlé par le paramètrefunctions_h3_default_if_invalid) ; renvoie un tableau vide uniquement lorsque ce paramètre est activé.
Syntaxe
index— Numéro d’index de l’hexagone représentant une arête unidirectionnelle. UInt64.
- Array de couples ‘(lat, lon)’. Array(Float64, Float64).
- Lève
INCORRECT_DATApour les arêtes dirigées non valides par défaut ; renvoie[]lorsquefunctions_h3_default_if_invalid = 1.
Query
Response