geo_intersection_2lines()
適用於:✅Microsoft網狀架構✅Azure 數據✅總管 Azure 監視器✅Microsoft Sentinel
計算兩行或多行的交集。
語法
geo_intersection_2lines(
lineString1,
lineString2)
深入瞭解 語法慣例。
參數
姓名 | 類型 | 必要 | 描述 |
---|---|---|---|
lineString1 | dynamic |
✔️ | GeoJSON 格式的線條或多行。 |
lineString2 | dynamic |
✔️ | GeoJSON 格式的線條或多行。 |
傳回
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 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 |