共用方式為


geo_intersection_2lines()

適用於:✅Microsoft網狀架構Azure 數據✅總管 Azure 監視器✅Microsoft Sentinel

計算兩行或多行的交集。

語法

geo_intersection_2lines(lineString1,lineString2)

深入瞭解 語法慣例

參數

姓名 類型​​ 必要 描述
lineString1 dynamic ✔️ GeoJSON 格式線條或多行。
lineString2 dynamic ✔️ GeoJSON 格式線條或多行。

傳回

GeoJSON 格式和動態數據類型的交集。 如果 LineString 或 MultiLineString 無效,查詢將會產生 Null 結果。

注意

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 座標數位必須至少包含兩個專案。
  • 坐標 [經度, 緯度] 必須有效,其中經度是範圍 [-180, +180] 中的實數,而緯度是範圍 [-90, +90] 中的實數。
  • 邊緣長度必須小於 180 度。 將選擇兩個頂點之間的最短邊緣。

提示

使用常值LineString或 MultiLineString 以提升效能。

範例

下列範例會計算兩行之間的交集。 在此情況下,結果是一個點。

let lineString1 = dynamic({"type":"LineString","coordinates":[[-73.978929,40.785155],[-73.980903,40.782621]]});
let lineString2 = dynamic({"type":"LineString","coordinates":[[-73.985195,40.788275],[-73.974552,40.779761]]});
print intersection = geo_intersection_2lines(lineString1, lineString2)

輸出

交集
{“type”: “Point”,“coordinates”: [-73.979837116670978,40.783989289772165]}

下列範例會計算兩行之間的交集。 在此情況下,結果是一行。

let line = dynamic({"type":"LineString","coordinates":[[-73.978929,40.785155],[-73.980903,40.782621]]});
print intersection = geo_intersection_2lines(line, line)

輸出

交集
{“type”: “LineString”,“coordinates”: [[ -73.978929, 40.785155],[ -73.980903, 40.782621]]}

下列兩行不會交集。

let lineString1 = dynamic({"type":"LineString","coordinates":[[1, 1],[2, 2]]});
let lineString2 = dynamic({"type":"LineString","coordinates":[[3, 3],[4, 4]]});
print intersection = geo_intersection_2lines(lineString1, lineString2)

輸出

交集
{“type”: “GeometryCollection”, “geometries”: []}

下列範例會傳回 Null 結果,因為其中一行無效。

let lineString1 = dynamic({"type":"LineString","coordinates":[[1, 1],[2, 2]]});
let lineString2 = dynamic({"type":"LineString","coordinates":[[3, 3]]});
print invalid = isnull(geo_intersection_2lines(lineString1, lineString2))

輸出

無效
1