다음을 통해 공유


geo_거리_2점()

적용 대상: ✅Microsoft Fabric

지구상의 두 지리 공간적 좌표 사이의 가장 짧은 거리(미터)를 계산합니다.

문법

geo_distance_2points( , p1_longitude, p1_latitude, p2_longitude, p2_latitude[ use_spheroid ])

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

매개 변수

이름 유형 필수 설명
p1_longitude real ✔️ 첫 번째 지리 공간적 좌표의 도 단위의 경도 값입니다. 유효한 값은 [-180, +180] 범위에 있습니다.
p1_latitude real ✔️ 첫 번째 지리 공간적 좌표의 도 단위 위도 값입니다. 유효한 값은 [-90, +90] 범위에 있습니다.
p2_longitude real ✔️ 두 번째 지리 공간 좌표의 도 단위의 경도 값입니다. 유효한 값은 [-180, +180] 범위에 있습니다.
p2_latitude real ✔️ 두 번째 지리 공간 좌표의 도 단위 위도 값입니다. 유효한 값은 [-90, +90] 범위에 있습니다.
use_spheroid bool 거리를 측정하기 위해 구를 측지 데이텀으로 사용하는 경우 false 경우 true spheroid를 사용하여 거리를 측정합니다. 지정하지 않으면 기본값 false 이 사용됩니다.

반품

지구상에서 두 지리적 위치 사이의 가장 짧은 거리(미터)입니다. 좌표가 잘못된 경우 쿼리는 null 결과를 생성합니다.

비고

  • 지리 공간적 좌표는 WGS-84 좌표 참조 시스템에서 나타내는 것으로 해석됩니다.
  • 대부분의 애플리케이션은 성능이 더 좋은 구('use_spheroid' = false)를 사용하여 거리를 측정해야 합니다. 추가 정밀도가 필요한 경우 'use_spheroid' 옵션을 'true'로 설정하여 정밀도를 높일 수 있으며, 이는 지구 곡률로 인해 영향을 받을 수 있는 더 큰 거리에 더 적합할 수 있습니다.

예시

다음 예제에서는 시애틀과 로스앤젤레스 사이의 가장 짧은 거리를 찾습니다.

시애틀과 로스앤젤레스 사이의 거리입니다.

print distance_in_meters = geo_distance_2points(-122.407628, 47.578557, -118.275287, 34.019056)

출력

distance_in_meters
1546754.35197381

다음 예제에서는 시애틀에서 런던까지의 최단 경로의 근사치를 찾습니다. 선은 LineString을 따라 500미터 이내의 좌표로 구성됩니다.

range i from 1 to 1000000 step 1
| project lng = rand() * real(-122), lat = rand() * 90
| where lng between(real(-122) .. 0) and lat between(47 .. 90)
| where geo_distance_point_to_line(lng,lat,dynamic({"type":"LineString","coordinates":[[-122,47],[0,51]]})) < 500
| render scatterchart with (kind=map)

출력

시애틀에서 런던까지 LineString의 스크린샷.

다음 예제에서는 두 좌표 사이의 가장 짧은 거리가 1미터에서 11미터 사이인 모든 행을 찾습니다.

StormEvents
| extend distance_1_to_11m = geo_distance_2points(BeginLon, BeginLat, EndLon, EndLat)
| where distance_1_to_11m between (1 .. 11)
| project distance_1_to_11m

출력

distance_1_to_11m
10.5723100154958
7.92153588248414

다음 예제에서는 잘못된 좌표 입력으로 인해 null 결과를 반환합니다.

print distance = geo_distance_2points(300,1,1,1)

출력

거리