지구 선의 소수점 값을 계산합니다.
문법
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 |
---|
맞다 |