다음을 통해 공유


geo_polygon_centroid()

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

다각형 또는 다각형의 중심을 계산합니다.

구문

geo_polygon_centroid(다각형)

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

매개 변수

이름 Type 필수 설명
다각형 dynamic ✔️ GeoJSON 형식다각형 또는 다각형입니다.

반품

GeoJSON 형식 및 동적 데이터 형식중심 좌표 값입니다. 다각형 또는 다각형이 잘못된 경우 쿼리는 null 결과를 생성합니다.

참고 항목

다각형 정의 및 제약 조건

dynamic({"type": "Polygon","coordinates": [ LinearRingShell, LinearRingHole_1, ..., LinearRingHole_N ]})

dynamic({"type": "MultiPolygon","coordinates": [[ LinearRingShell, LinearRingHole_1, ..., LinearRingHole_N], ..., [LinearRingShell, LinearRingHole_1, ..., LinearRingHole_M]]})

  • LinearRingShell은 [[lng_1,lat_1],...,[lng_i,lat_i],...,[lng_j,lat_j],...,[lng_1,lat_1]] 순서가 지정된 좌표 배열로 정의 counterclockwise 됩니다. 셸은 하나만 있을 수 있습니다.
  • LinearRingHole은 선택 사항이며 [[lng_1,lat_1],...,[lng_i,lat_i],...,[lng_j,lat_j],...,[lng_1,lat_1]]의 정렬된 배열로 정의 clockwise 됩니다. 내부 링과 구멍이 있을 수 있습니다.
  • LinearRing 꼭짓점은 세 개 이상의 좌표로 구분되어야 합니다. 첫 번째 좌표는 마지막 좌표와 같아야 합니다. 4개 이상의 항목이 필요합니다.
  • 좌표 [경도, 위도]는 유효해야 합니다. 경도는 [-180, +180] 범위의 실수여야 하며 위도는 [-90, +90] 범위의 실수여야 합니다.
  • LinearRingShell은 구의 최대 절반을 묶습니다. LinearRing은 구를 두 영역으로 나누고 두 영역 중 더 작은 영역을 선택합니다.
  • 선형 가장자리 길이는 180도 미만이어야 합니다. 두 꼭짓점 사이의 가장 짧은 가장자리가 선택됩니다.
  • LinearRings는 교차해서는 안 되며 가장자리를 공유해서는 안 됩니다. LinearRings는 꼭짓점을 공유할 수 있습니다.

예제

다음 예제에서는 뉴욕시의 센트럴 파크 중심을 계산합니다.

let central_park = dynamic({"type":"Polygon","coordinates":[[[-73.9495,40.7969],[-73.95807266235352,40.80068603561921],[-73.98201942443848,40.76825672305777],[-73.97317886352539,40.76455136505513],[-73.9495,40.7969]]]});
print centroid = geo_polygon_centroid(central_park)

출력

centroid
{"type": "Point", "coordinates": [-73.96573568907618, 40.782550538057812]}

다음 예제에서는 센트럴 파크 중심 경도를 계산합니다.

let central_park = dynamic({"type":"Polygon","coordinates":[[[-73.9495,40.7969],[-73.95807266235352,40.80068603561921],[-73.98201942443848,40.76825672305777],[-73.97317886352539,40.76455136505513],[-73.9495,40.7969]]]});
print 
centroid = geo_polygon_centroid(central_park)
| project lng = centroid.coordinates[0]

출력

lng
-73.9657356899076

다음 예제에서는 다각형에서 다각형의 합합을 수행하고 통합 다각형의 중심을 계산합니다.

let polygons = dynamic({"type":"MultiPolygon","coordinates":[[[[-73.9495,40.7969],[-73.95807266235352,40.80068603561921],[-73.98201942443848,40.76825672305777],[-73.97317886352539,40.76455136505513],[-73.9495,40.7969]]],[[[-73.94262313842773,40.775991804565585],[-73.98107528686523,40.791849155467695],[-73.99600982666016,40.77092185281977],[-73.96150588989258,40.75609977566361],[-73.94262313842773,40.775991804565585]]]]});
print polygons_union_centroid = geo_polygon_centroid(polygons)

출력

polygons_union_centroid
"type": "Point", "coordinates": [-73.968569587829577, 40.776310752555119]}

다음 예제에서는 지도에서 센트럴 파크 중심을 시각화합니다.

let central_park = dynamic({"type":"Polygon","coordinates":[[[-73.9495,40.7969],[-73.95807266235352,40.80068603561921],[-73.98201942443848,40.76825672305777],[-73.97317886352539,40.76455136505513],[-73.9495,40.7969]]]});
print 
centroid = geo_polygon_centroid(central_park)
| render scatterchart with (kind = map)

출력

뉴욕 시 센트럴 파크 중심 스크린샷.

다음 예제에서는 잘못된 다각형 때문에 반환 true 합니다.

print isnull(geo_polygon_centroid(dynamic({"type": "Polygon","coordinates": [[[0,0],[10,10],[10,10],[0,0]]]})))

출력

print_0
true