次の方法で共有


geo_polygon_to_h3cells()

適用対象: ✅Microsoft FabricAzure データ エクスプローラーAzure MonitorMicrosoft Sentinel

多角形を H3 セルに変換します。 この関数は、便利な地理空間結合および視覚化ツールです。

構文

geo_polygon_to_h3cells(polygon [, resolution[, radius]])

構文規則について詳しく知る。

パラメーター

件名 タイプ Required 説明
polygon dynamic ✔️ GeoJSON 形式の多角形またはマルチポリゴン
解決 int 要求されたセル解決を定義します。 サポートされる値の範囲は [0, 15] です。 指定されない場合は、既定値の 6 が使用されます。
半径 real バッファーの半径 (メートル単位)。 指定されない場合は、既定値の 0 が使用されます。

返品

多角形またはマルチポリゴンを再解釈したのと同じ解像度の H3 セル トークン文字列の配列。 半径が正の値に設定されている場合、入力ポリゴンまたはマルチポリゴンの指定された半径内のすべてのポイントが内部に含まれるよう多角形が拡大され、新しく計算された多角形が H3 セルに変換されます。 多角形、解像度、半径が無効な場合、またはセル数が制限を超えた場合、クエリは null 結果を生成します。

Note

  • 多角形から H3 セル トークンへの変換は、座標をこれらの座標を含む多角形に一致し、多角形を多角形に一致させる場合に役立ちます。
  • 多角形あたりのトークンの最大数は 61680 です。
  • 多角形のエッジは直線です。
  • 多角形は、重心が多角形の内側にあるセルによって表されます。 つまり、セルは多角形とまったく同じではありませんが、解像度が上がると近くなります。 多角形内のすべてのポイントがセルで覆われるように、多角形をバッファーできます。 これにより、互いに接する隣接する多角形に個別のセルが含まれるので、複数の多角形に属するセルがないようにします。

Seel も geo_polygon_to_s2cells()

次の例では、多角形に近似する H3 セルを計算します。

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)

出力

h3_cells
["86390cb57ffffff","86390cb0fffffff","86390ca27ffffff","86390cb87ffffff","86390cb07ffffff","86390ca2fffffff","86390caca37ffffff","86390cb17ffffff","86390cb1fffffff","86390cb8fffffff","86390cba7ffffff","86390ca07ffffff","86390cbafffffff"]

次の例は、上記の多角形に近似する H3 セルで構成されるマルチポリゴンを示しています。 より高い解像度を指定すると、多角形の近似が向上します。

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)

出力

multipolygon
{"type": "MultiPolygon",
"coordinates": [ ... ]}

次の例では、多角形が無効であるため、null が返されます。

let polygon = dynamic({"type":"Polygon","coordinates":[[[0,0],[1,1]]]});
print is_null = isnull(geo_polygon_to_h3cells(polygon))

出力

is_null
True