다음을 통해 공유


geo_line_buffer()

적용 대상: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

입력 선의 지정된 반경 내에 있는 모든 점 또는 지구의 여러 선이 포함된 다각형 또는 다각형을 계산합니다.

구문

geo_line_buffer(lineString, 반지름, 허용 오차)

구문 규칙에 대해 자세히 알아봅니다.

매개 변수

이름 Type 필수 설명
lineString dynamic ✔️ GeoJSON 형식의 LineString 또는 MultiLineString입니다.
반지름 real ✔️ 버퍼 반경(미터)입니다. 유효한 값은 양수여야 합니다.
공차 real 다각형이 이상적인 반경에서 얼마나 벗어날 수 있는지를 결정하는 공차(미터)를 정의합니다. 지정하지 않으면 기본값 10 이 사용됩니다. 허용 오차는 반지름의 0.0001%보다 작지 않아야 합니다. 허용 오차를 반지름보다 크게 지정하면 허용 오차가 가능한 최대 값으로 반경 아래로 낮아지게 됩니다.

반품

입력 LineString 또는 MultiLineString 주위의 다각형 또는 MultiPolygon입니다. 좌표나 반경 또는 허용 오차가 잘못된 경우 쿼리는 null 결과를 생성합니다.

참고 항목

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