다음을 통해 공유


geo_line_interpolate_point()

적용 대상: ✅Microsoft Fabric

지구 선의 소수점 값을 계산합니다.

문법

geo_line_interpolate_point( lineString,분수)

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

매개 변수

이름 유형 필수 설명
lineString dynamic ✔️ GeoJSON 형식의 LineString입니다.
분수 real ✔️ 분수 값은 0(줄의 시작)과 1(줄 끝) 사이여야 합니다.

반품

GeoJSON 형식의 점 좌표 값과 특정 분수 값의 줄 문자열에 있는 동적 데이터 형식입니다. 줄 또는 분수 값이 잘못된 경우 쿼리는 null 결과를 생성합니다.

비고

  • 지리 공간적 좌표는 WGS-84 좌표 참조 시스템에서 나타내는 것으로 해석됩니다.
  • 지구 거리를 측정하는 데 사용되는 측지 데이텀 은 구입니다. 선 가장자리는 구의 측지식 입니다.
  • 입력 선 가장자리가 직선 카티전 선인 경우 평면 가장자리를 측지로 변환하기 위해 geo_line_densify() 를 사용하는 것이 좋습니다.
  • 입력에는 한 줄 이상의 문자열이 포함되어서는 안 됩니다.
  • 분수 값을 계산하려면 geo_line_locate_point()를 사용합니다.

LineString 정의 및 제약 조건

dynamic({"type": "LineString","coordinates": [[lng_1,lat_1], [lng_2,lat_2], ..., [lng_N,lat_N]]})

  • LineString 좌표 배열에는 두 개 이상의 항목이 포함되어야 합니다.
  • 좌표 [경도, 위도]는 경도가 [-180, +180] 범위의 실수이고 위도는 [-90, +90] 범위의 실수인 경우 유효해야 합니다.
  • 가장자리 길이는 180도 미만이어야 합니다. 두 꼭짓점 사이의 가장 짧은 가장자리가 선택됩니다.

예시

다음 예제에서는 줄이 시작된 후 25% 위치에서 점을 계산합니다.

let line = dynamic({"type":"LineString","coordinates":[[-73.95796, 40.80042], [-73.97317, 40.764486]]});
print point = geo_line_interpolate_point(line, 0.25);

출력

지점
{"type": "Point", "coordinates": [-73.961764043218281, 40.791436687257232]}

다음 예제에서는 줄이 시작된 후 90% 포인트 경도를 계산합니다.

let line = dynamic({"type":"LineString","coordinates":[[-73.95807266235352,40.800426144169315],[-73.94966125488281,40.79691751000055],[-73.97317886352539,40.764486356930334],[-73.98210525512695,40.76786669510221],[-73.96004676818848,40.7980870753293]]});
print point = geo_line_interpolate_point(line, 0.9)
| project lng = point.coordinates[0]

출력

결과
-73.96556545832799

다음 예제에서는 지도의 점을 시각화합니다.

let line = dynamic({"type":"LineString","coordinates":[[-73.95807266235352,40.800426144169315],[-73.94966125488281,40.79691751000055],[-73.97317886352539,40.764486356930334],[-73.98210525512695,40.76786669510221],[-73.96004676818848,40.7980870753293]]});
print point = geo_line_interpolate_point(line, 0.9)
| render scatterchart with (kind = map)

뉴욕 시 센트럴 파크의 보간된 지점 스크린샷.

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

print is_bad_line = isnull(geo_line_interpolate_point(dynamic({"type":"LineString","coordinates":[[1, 1]]}), 0.5))

출력

is_bad_line
맞다