geo_polygon_to_h3cells()
Mengonversi poligon ke sel H3. Fungsi ini adalah alat gabungan dan visualisasi geospasial yang berguna.
Sintaks
geo_polygon_to_h3cells(
polygon [,
resolution[,
radius]])
Pelajari selengkapnya tentang konvensi sintaksis.
Parameter
Nama | Tipe | Wajib | Deskripsi |
---|---|---|---|
polygon | dynamic |
✔️ | Poligon atau multipoligon dalam format GeoJSON. |
resolusi | int |
Menentukan resolusi sel yang diminta. Nilai yang didukung berada dalam rentang [0, 15]. Jika tidak ditentukan, nilai default 6 akan digunakan. |
|
radius | real |
Radius buffer dalam meter. Jika tidak ditentukan, nilai default 0 akan digunakan. |
Mengembalikan
Array string token sel H3 dengan resolusi yang sama yang merepreset poligon atau multipoligon. Jika radius diatur ke nilai positif, maka poligon akan diperbesar sehingga semua titik dalam radius tertentu dari poligon input atau multipoligon akan terkandung di dalam dan poligon yang baru dihitung yang akan dikonversi ke sel H3. Jika poligon, resolusi, radius tidak valid, atau jumlah sel melebihi batas, kueri akan menghasilkan hasil null.
Catatan
- Mengonversi poligon ke token sel H3 dapat berguna dalam mencocokkan koordinat ke poligon yang mungkin mencakup koordinat ini dan mencocokkan poligon ke poligon.
- Jumlah maksimum token per poligon adalah 61680.
- Tepi poligon adalah garis lurus.
- Poligon diwakili oleh sel-sel yang sentroidnya berada di dalam poligon. Ini berarti bahwa sel-sel tidak sama persis dengan poligon, tetapi mereka semakin dekat saat resolusi meningkat. Untuk memastikan bahwa setiap titik dalam poligon ditutupi oleh sel, poligon dapat di-buffer. Ini juga memastikan bahwa poligon tetangga yang saling menyentuh akan memiliki sel terpisah, sehingga tidak ada sel yang termasuk dalam lebih dari satu poligon.
Seel juga geo_polygon_to_s2cells().
Contoh
Contoh berikut menghitung sel H3 yang memperkirakan poligon.
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)
Hasil
h3_cells |
---|
["86390cb57ffffff","86390cb0fffffff","86390ca27ffffff","86390cb87ffffff","86390cb07ffffff","86390ca2fffffff","86390cb07ffffff","86390cb07ffffff","86390ca2fffffff","86390ca37ffffff","86390cb17ffffff","86390cb1fffffff","86390cb8fffffff","86390cba7ffffff","86390ca07ffffff","86390cbafffffff"] |
Contoh berikut menunjukkan multipoligon yang terdiri dari sel H3 yang perkiraan poligon di atas. Menspesifikasikan resolusi yang lebih tinggi akan meningkatkan perkiraan poligon.
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)
Hasil
multipoligon |
---|
{"type": "MultiPolygon", "coordinates": [ ... ]} |
Contoh berikut mengembalikan null karena poligon tidak valid.
let polygon = dynamic({"type":"Polygon","coordinates":[[[0,0],[1,1]]]});
print is_null = isnull(geo_polygon_to_h3cells(polygon))
Hasil
is_null |
---|
Benar |
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk