共用方式為


geo_intersects_2lines()

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

計算兩行或多行相交。

語法

geo_intersects_2lines(lineString1,lineString2)

深入瞭解 語法慣例

參數

姓名 類型​​ 必要 描述
lineString1 dynamic ✔️ GeoJSON 格式線條或多行。
lineString2 dynamic ✔️ 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 intersects = geo_intersects_2lines(lineString1, lineString2)

輸出

相交
True

下列範例會尋找NYC GeoJSON道路數據表中與某些感興趣的線路相交的所有道路。

let my_road = dynamic({"type":"LineString","coordinates":[[-73.97892951965332,40.78515573551921],[-73.98090362548828,40.78262115769851]]});
NY_Manhattan_Roads
| project name = features.properties.Label, road = features.geometry
| where geo_intersects_2lines(road, my_road)
| project name

輸出

NAME
百老匯
W 78th St
W 79th St
W 80th St
W 81st St

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

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

輸出

print_0
True