次の方法で共有


geo_union_lines_array()

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

地球上の線またはマルチラインの和集合を計算します。

構文

geo_union_lines_array(lineStrings)

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

パラメーター

件名 タイプ Required 説明
lineStrings dynamic ✔️ GeoJSON 形式の行または複数行の配列

返品

GeoJSON 形式の行または複数行およびdynamic データ型。 指定された行または複数行のいずれかが無効な場合、クエリは null 結果を生成します。

Note

  • 地理空間座標は、WGS-84 座標参照系によって表されるものとして解釈されます。
  • 地球上の測定に使用される測地原点は球体です。 ポリゴンのエッジは、球体の測地線です。
  • 入力線のエッジが直交直線の場合は、geo_line_densify () を使用して平面のエッジを測地線に変換することを検討してください。

LineStringの定義と制約

dynamic({"type": "LineString","coordinates": [[lng_1,lat_1], [lng_2,lat_2], ..., [lng_N,lat_N]]})

dynamic({"type": "MultiLineString","coordinates": [[line_1, line_2, ..., line_N]]})

  • LineString 座標配列には、少なくとも 2 つのエントリが含まれている必要があります。
  • 座標 [経度,緯度] は有効である必要があります。経度は範囲 [-180, +180] の実数で、緯度は範囲 [-90, +90] の実数です。
  • エッジの長さは 180 度未満でなければなりません。 2 つの頂点間の最短のエッジが選択されます。

次の例では、行の地理空間和集合を実行します。

datatable(lines:dynamic)
[
    dynamic({"type":"LineString","coordinates":[[-73.95683884620665,40.80502891480884],[-73.95633727312088,40.8057171711177],[-73.95489156246185,40.80510200431311]]}),
    dynamic({"type":"LineString","coordinates":[[-73.95633727312088,40.8057171711177],[-73.95489156246185,40.80510200431311],[-73.95537436008453,40.804413741624515]]}),
    dynamic({"type":"LineString","coordinates":[[-73.95633727312088,40.8057171711177],[-73.95489156246185,40.80510200431311]]})
]
| summarize lines_arr = make_list(lines)
| project lines_union = geo_union_lines_array(lines_arr)

出力

lines_union
{"type": "LineString", "coordinates": [[-73.956838846206651, 40.805028914808844], [-73.95633727312088, 40.8057171711177], [ -73.954891562461853, 40.80510200431312], [-73.955374360084534, 40.80441374162452]}

次の例では、線の列に対して地理空間和集合を実行します。

datatable(line1:dynamic, line2:dynamic)
[
    dynamic({"type":"LineString","coordinates":[[-73.95683884620665,40.80502891480884],[-73.95633727312088,40.8057171711177],[-73.95489156246185,40.80510200431311]]}), dynamic({"type":"LineString","coordinates":[[-73.95633727312088,40.8057171711177],[-73.95489156246185,40.80510200431311],[-73.95537436008453,40.804413741624515]]})
]
| project lines_arr = pack_array(line1, line2)
| project lines_union = geo_union_lines_array(lines_arr)

出力

lines_union
{"type": "LineString", "coordinates":[[-73.956838846206651, 40.805028914808844], [-73.95633727312088, 40.805717171177], [-73.954891562461853, 40.80510200431312], [-73.955374360084534, 40.80441374162452]}

次の例では、いずれかの行が無効であるため、True を返します。

datatable(lines:dynamic)
[
    dynamic({"type":"LineString","coordinates":[[-73.95683884620665,40.80502891480884],[-73.95633727312088,40.8057171711177],[-73.95489156246185,40.80510200431311]]}),
    dynamic({"type":"LineString","coordinates":[[1, 1]]})
]
| summarize lines_arr = make_list(lines)
| project invalid_union = isnull(geo_union_lines_array(lines_arr))

出力

invalid_union
True