使用 版本 下拉選單切換服務。 了解更多關於導航的資訊。
Apply to: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel
計算兩行或多行相交。
語法
geo_intersects_2lines(
線條1,線條2)
深入瞭解 語法慣例。
參數
| 姓名 | 類型 | 必要 | 描述 |
|---|---|---|---|
| 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 |
|---|
| 百老匯 |
| 西78街 |
| 西79街 |
| W 80街 |
| W 81街 |
下列範例會傳回 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 |