geo_intersects_2lines()
適用於:✅Microsoft網狀架構✅Azure 數據✅總管 Azure 監視器✅Microsoft Sentinel
計算兩行或多行相交。
語法
geo_intersects_2lines(
lineString1,
lineString2)
深入瞭解 語法慣例。
參數
姓名 | 類型 | 必要 | 描述 |
---|---|---|---|
lineString1 | dynamic |
✔️ | GeoJSON 格式的線條或多行。 |
lineString2 | dynamic |
✔️ | GeoJSON 格式的線條或多行。 |
傳回
指出兩行或多行交集。 如果lineString或 multiLineString 無效,查詢將會產生 Null 結果。
注意
- 地理空間座標會解譯為 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 座標數位必須至少包含兩個專案。
- 坐標 [經度, 緯度] 必須有效,其中經度是範圍 [-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 |