Partager via


geo_polygon_to_h3cells()

S’applique à : ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft 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