geo_polygon_centroid()
적용 대상: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
다각형 또는 다각형의 중심을 계산합니다.
구문
geo_polygon_centroid(
다각형)
구문 규칙에 대해 자세히 알아봅니다.
매개 변수
이름 | Type | 필수 | 설명 |
---|---|---|---|
다각형 | dynamic |
✔️ | GeoJSON 형식의 다각형 또는 다각형입니다. |
반품
GeoJSON 형식 및 동적 데이터 형식의 중심 좌표 값입니다. 다각형 또는 다각형이 잘못된 경우 쿼리는 null 결과를 생성합니다.
참고 항목
- 지리 공간적 좌표는 WGS-84 좌표 참조 시스템에서 나타내는 것으로 해석됩니다.
- 지구 측정에 사용되는 측지 데이텀은 구입니다. 다각형 가장자리는 구의 측지식 입니다.
- 입력 다각형 가장자리가 직선 카티전 선인 경우 geo_polygon_densify()를 사용하여 평면 가장자리를 측지로 변환하는 것이 좋습니다.
- 입력이 다각형이고 둘 이상의 다각형을 포함하는 경우 결과는 다각형 공용 구조체의 중심이 됩니다.
다각형 정의 및 제약 조건
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 |