geo_polygon_to_h3cells()
S’applique à : ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Convertit le polygone en cellules H3. Cette fonction est un outil utile de jointure géospatiale et de visualisation.
Syntaxe
geo_polygon_to_h3cells(
polygon [,
résolution[,
rayon]])
En savoir plus sur les conventions de syntaxe.
Paramètres
Nom | Type | Requise | Description |
---|---|---|---|
polygone | dynamic |
✔️ | Polygone ou multipolygon au format GeoJSON. |
résolution | int |
Définit la résolution de cellule demandée. Les valeurs prises en charge se trouvent dans la plage [0, 15]. Si la valeur n’est pas spécifiée, la valeur par défaut 6 est utilisée. |
|
rayon | real |
Rayon de mémoire tampon en mètres. Si la valeur n’est pas spécifiée, la valeur par défaut 0 est utilisée. |
Retours
Tableau de chaînes de jetons de cellule H3 de la même résolution qui repressent un polygone ou un multipolygon. Si le rayon est défini sur une valeur positive, le polygone est agrandi de sorte que tous les points dans le rayon donné du polygone d’entrée ou multipolygon soient contenus à l’intérieur et le polygone nouvellement calculé qui sera converti en cellules H3. Si le polygone, la résolution, le rayon n’est pas valide ou si le nombre de cellules dépasse la limite, la requête produit un résultat null.
Remarque
- La conversion d’un polygone en jetons de cellule H3 peut être utile dans les coordonnées correspondantes en polygones qui peuvent inclure ces coordonnées et les polygones correspondants aux polygones.
- Le nombre maximal de jetons par polygone est de 61680.
- Les bords de polygones sont des lignes droites.
- Un polygone est représenté par les cellules dont les centroïdes se trouvent à l’intérieur du polygone. Cela signifie que les cellules ne sont pas exactement les mêmes que le polygone, mais qu’elles se rapprochent à mesure que la résolution augmente. Pour vous assurer que chaque point du polygone est couvert par une cellule, le polygone peut être mis en mémoire tampon. Cela garantit également que les polygones voisins qui se touchent ont des cellules distinctes, donc aucune cellule n’appartient à plusieurs polygones.
Seel geo_polygon_to_s2cells ().
Exemples
L’exemple suivant calcule les cellules H3 qui se rapprochent du polygone.
let polygon = dynamic({"type":"Polygon","coordinates":[[[-3.659,40.553],[-3.913,40.409],[-3.729,40.273],[-3.524,40.440],[-3.659,40.553]]]});
print h3_cells = geo_polygon_to_h3cells(polygon)
Sortie
h3_cells |
---|
["86390cb57ffffff »,"86390cb0fffffff »,"86390ca27ff »,"86390cb87ffffff »,"86390cb07ffffff »,"86390ca2fffffff »,"86390ca37ffff »,"86390cb17ffff »,"86390cb1fffff »,"86390cb8fffff »,"86390cba7ff »,"86390cba7ffffff »,"863ff »,"86390cbafffffff"] |
L’exemple suivant illustre un multipolygon qui se compose de cellules H3 qui se rapprochent du polygone ci-dessus. La spécification d’une résolution plus élevée améliore l’approximation des polygones.
let polygon = dynamic({"type":"Polygon","coordinates":[[[-3.659,40.553],[-3.913,40.409],[-3.729,40.273],[-3.524,40.440],[-3.659,40.553]]]});
print h3_cells = geo_polygon_to_h3cells(polygon)
| mv-expand cell = h3_cells to typeof(string) // extract cell to a separate row
| project polygon_cell = geo_h3cell_to_polygon(cell) // convert each cell to a polygon
| project individual_polygon_coordinates = pack_array(polygon_cell.coordinates)
| summarize multipolygon_coordinates = make_list(individual_polygon_coordinates)
| project multipolygon = bag_pack("type","MultiPolygon", "coordinates", multipolygon_coordinates)
Sortie
multipolygon |
---|
{"type » : « MultiPolygon », « coordonnées » : [ ... ]} |
L’exemple suivant retourne null, car le polygone n’est pas valide.
let polygon = dynamic({"type":"Polygon","coordinates":[[[0,0],[1,1]]]});
print is_null = isnull(geo_polygon_to_h3cells(polygon))
Sortie
is_null |
---|
True |