geo_intersection_2lines()
적용 대상: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
두 줄 또는 여러 줄의 교집합을 계산합니다.
구문
geo_intersection_2lines(
lineString1,
lineString2)
구문 규칙에 대해 자세히 알아봅니다.
매개 변수
이름 | Type | 필수 | 설명 |
---|---|---|---|
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)
출력
intersection |
---|
{"type": "Point","coordinates": [-73.9798371166670978,40.783989289772165]} |
다음 예제에서는 두 줄 간의 교집합을 계산합니다. 이 경우 결과는 선입니다.
let line = dynamic({"type":"LineString","coordinates":[[-73.978929,40.785155],[-73.980903,40.782621]]});
print intersection = geo_intersection_2lines(line, line)
출력
intersection |
---|
{"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)
출력
intersection |
---|
{"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 |