geo_line_buffer()
적용 대상: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
입력 선의 지정된 반경 내에 있는 모든 점 또는 지구의 여러 선이 포함된 다각형 또는 다각형을 계산합니다.
구문
geo_line_buffer(
lineString,
반지름,
허용 오차)
구문 규칙에 대해 자세히 알아봅니다.
매개 변수
이름 | Type | 필수 | 설명 |
---|---|---|---|
lineString | dynamic |
✔️ | GeoJSON 형식의 LineString 또는 MultiLineString입니다. |
반지름 | real |
✔️ | 버퍼 반경(미터)입니다. 유효한 값은 양수여야 합니다. |
공차 | real |
다각형이 이상적인 반경에서 얼마나 벗어날 수 있는지를 결정하는 공차(미터)를 정의합니다. 지정하지 않으면 기본값 10 이 사용됩니다. 허용 오차는 반지름의 0.0001%보다 작지 않아야 합니다. 허용 오차를 반지름보다 크게 지정하면 허용 오차가 가능한 최대 값으로 반경 아래로 낮아지게 됩니다. |
반품
입력 LineString 또는 MultiLineString 주위의 다각형 또는 MultiPolygon입니다. 좌표나 반경 또는 허용 오차가 잘못된 경우 쿼리는 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도 미만이어야 합니다. 두 꼭짓점 사이의 가장 짧은 가장자리가 선택됩니다.
예제
다음 쿼리는 반경 4m 및 0.1미터 허용 오차를 사용하여 선 주위의 다각형을 계산합니다.
let line = dynamic({"type":"LineString","coordinates":[[-80.66634997047466,24.894526340592122],[-80.67373241820246,24.890808090321286]]});
print buffer = geo_line_buffer(line, 4, 0.1)
buffer |
---|
{"type": "Polygon", "coordinates": [ ... ]} |
다음 쿼리는 각 줄 주위의 버퍼를 계산하고 결과를 통합합니다.
datatable(line:dynamic)
[
dynamic({"type":"LineString","coordinates":[[14.429214068940496,50.10043066548272],[14.431184174126173,50.10046525983731]]}),
dynamic({"type":"LineString","coordinates":[[14.43030222687753,50.100780677801936],[14.4303847111523,50.10020274910934]]})
]
| project buffer = geo_line_buffer(line, 2, 0.1)
| summarize polygons = make_list(buffer)
| project result = geo_union_polygons_array(polygons)
result |
---|
{"type": "Polygon","coordinates": [ ... ]} |
다음 예제에서는 잘못된 줄로 인해 true를 반환합니다.
print buffer = isnull(geo_line_buffer(dynamic({"type":"LineString"}), 5))
buffer |
---|
True |
다음 예제에서는 잘못된 반지름으로 인해 true를 반환합니다.
print buffer = isnull(geo_line_buffer(dynamic({"type":"LineString","coordinates":[[0,0],[1,1]]}), 0))
buffer |
---|
True |