geo_polygon_to_h3cells()
Konverterar polygon till H3-celler. Den här funktionen är ett användbart geospatialt kopplings- och visualiseringsverktyg.
Syntax
geo_polygon_to_h3cells(
polygon [,
upplösning[,
radius]])
Läs mer om syntaxkonventioner.
Parametrar
Namn | Typ | Obligatorisk | Beskrivning |
---|---|---|---|
Polygon | dynamic |
✔️ | Polygon eller multipolygon i GeoJSON-format. |
Upplösning | int |
Definierar den begärda cellupplösningen. Värden som stöds finns i intervallet [0, 15]. Om det är ospecificerat används standardvärdet 6 . |
|
Radie | real |
Buffertradie i meter. Om det är ospecificerat används standardvärdet 0 . |
Returer
Matris med H3-celltokensträngar med samma upplösning som återskapar en polygon eller multipolygon. Om radien är inställd på ett positivt värde förstoras polygonen så att alla punkter inom den angivna radien för den inmatade polygonen eller multipolygonen kommer att finnas inuti och den nyligen beräknade polygonen som konverteras till H3-celler. Om polygon, upplösning, radie är ogiltigt eller om antalet celler överskrider gränsen genererar frågan ett null-resultat.
Anteckning
- Att konvertera polygon till H3-celltoken kan vara användbart för att matcha koordinater till polygoner som kan innehålla dessa koordinater och matcha polygoner till polygoner.
- Det maximala antalet token per polygon är 61680.
- Polygonkanter är raka linjer.
- En polygon representeras av de celler vars centroider finns inuti polygonen. Det innebär att cellerna inte är exakt samma som polygonen, men de kommer närmare när upplösningen ökar. För att säkerställa att varje punkt i polygonen täcks av en cell kan polygonen buffras. Detta säkerställer också att närliggande polygoner som rör varandra kommer att ha separata celler, så att ingen cell kommer att tillhöra mer än en polygon.
Se även geo_polygon_to_s2cells().
Exempel
I följande exempel beräknas H3-celler som är ungefärliga för polygonen.
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)
Resultat
h3_cells |
---|
["86390cb57ffffff","86390cb0fffffff","86390ca27ffffff","86390cb87ffffff","86390cb07ffffff","86390ca2fffffff","86390ca37ffffff","86390cb17ffffff","86390cb1fffffff","86390cb8fffffff","86390cba7ffffff","86390ca07ffffff","86390cbafffffff"] |
I följande exempel visas en multipolygon som består av H3-celler som approximeras ovanstående polygon. Om du anger en högre upplösning förbättras polygonomnäring.
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)
Resultat
multipolygon |
---|
{"type": "MultiPolygon", "koordinater": [ ... ]} |
Följande exempel returnerar null eftersom polygonen är ogiltig.
let polygon = dynamic({"type":"Polygon","coordinates":[[[0,0],[1,1]]]});
print is_null = isnull(geo_polygon_to_h3cells(polygon))
Resultat
is_null |
---|
Sant |
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för