geo_polygon_to_h3cells()
Si applica a: ✅Microsoft Fabric✅Azure Esplora dati✅ Azure Monitor✅Microsoft Sentinel
Converte il poligono in celle H3. Questa funzione è un utile strumento di join e visualizzazione geospaziale.
Sintassi
geo_polygon_to_h3cells(
poligono [,
resolution[,
radius]])
Altre informazioni sulle convenzioni di sintassi.
Parametri
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
poligono | dynamic |
✔️ | Poligono o multipolygon nel formato GeoJSON. |
risoluzione | int |
Definisce la risoluzione della cella richiesta. I valori supportati sono compresi nell'intervallo [0, 15]. Se non specificato, viene usato il valore predefinito 6 . |
|
raggio | real |
Raggio del buffer in metri. Se non specificato, viene usato il valore predefinito 0 . |
Valori restituiti
Matrice di stringhe di token di cella H3 della stessa risoluzione che reimpostano un poligono o un multipolygon. Se radius è impostato su un valore positivo, il poligono verrà ingrandito in modo che tutti i punti all'interno del raggio specificato del poligono di input o multipolygon saranno contenuti all'interno e il poligono appena calcolato che verrà convertito in celle H3. Se il poligono, la risoluzione, il raggio non è valido o il numero di celle supera il limite, la query genererà un risultato Null.
Nota
- La conversione del poligono in token di cella H3 può essere utile nelle coordinate corrispondenti in poligoni che possono includere queste coordinate e i poligoni corrispondenti in poligoni.
- Il numero massimo di token per poligono è 61680.
- I bordi poligono sono linee rette.
- Un poligono è rappresentato dalle celle i cui centroidi si trovano all'interno del poligono. Ciò significa che le celle non sono esattamente uguali al poligono, ma si avvicinano man mano che aumenta la risoluzione. Per assicurarsi che ogni punto del poligono sia coperto da una cella, il poligono può essere memorizzato nel buffer. Ciò garantisce anche che i poligoni adiacenti che si toccano tra loro avranno celle separate, quindi nessuna cella appartiene a più poligoni.
Vedere anche geo_polygon_to_s2cells().
Esempi
Nell'esempio seguente vengono calcolate le celle H3 che approssimano il poligono.
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)
Output
h3_cells |
---|
["86390cb57ff","86390cb0fff","86390ca27ffffff","86390cb87ffffff","86390cb07ffffff","86390ca2fffffff","86390ca37ffffff","86390cb17ff","86390cb1fffffff","86390cb8fffffff","86390cba7ffffff","86390ca07ffffff","86390cbafffffff"] |
L'esempio seguente illustra un multipolygon costituito da celle H3 che approssimano il poligono precedente. La specifica di una risoluzione più elevata migliorerà l'approssimazione poligono.
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)
Output
multipolygon |
---|
{"type": "MultiPolygon", "coordinate": [ ... ]} |
Nell'esempio seguente viene restituito null perché il poligono non è valido.
let polygon = dynamic({"type":"Polygon","coordinates":[[[0,0],[1,1]]]});
print is_null = isnull(geo_polygon_to_h3cells(polygon))
Output
is_null |
---|
Vero |