분율 값을 선 시작부터 지정된 지점에 가장 가까운 선의 점 및 지구 전체 선 길이까지의 선 길이의 비율로 계산합니다.
문법
geo_line_locate_point(
lineString,
경도,
위도,
[ use_spheroid ])
매개 변수
이름 | 유형 | 필수 | 설명 |
---|---|---|---|
lineString | dynamic |
✔️ | GeoJSON 형식의 줄입니다. |
경도 | real |
✔️ | 지리 공간 좌표 경도 값(도)입니다. 유효한 값은 [-180, +180] 범위에 있습니다. |
위도 | real |
✔️ | 지리 공간적 좌표 위도 값(도)입니다. 유효한 값은 [-90, +90] 범위에 있습니다. |
use_spheroid | bool |
거리를 측정하기 위해 구를 측지 데이텀으로 사용하는 경우 false 경우 true spheroid를 사용하여 거리를 측정합니다. 지정하지 않으면 기본값 false 이 사용됩니다. |
반품
0에서 1 사이의 선 분수 값 (0 - 100%) 선의 비율로 시작부터 지정된 지점에 가장 가까운 선의 점과 지구상의 전체 선까지의 비율입니다. 선 또는 좌표 값이 잘못된 경우 쿼리는 null 결과를 생성합니다.
비고
- 지리 공간적 좌표는 WGS-84 좌표 참조 시스템에서 나타내는 것으로 해석됩니다.
- 'use_spheroid' = false이면 선 세그먼트는 구의 측지식 입니다. 'use_spheroid' = true이면 선 세그먼트는 spheroid의 측지식이 됩니다. 대부분의 애플리케이션은 성능이 더 좋은 구를 사용하여 거리를 측정해야 합니다.
- 입력 선 가장자리가 직선 카티전 선인 경우 평면 가장자리를 측지로 변환하기 위해 geo_line_densify() 를 사용하는 것이 좋습니다.
- 입력에는 한 줄 이상의 문자열이 포함되어서는 안 됩니다.
- 입력한 줄 문자열이 입력 지점과 같은 거리에 있는 줄에 단일 점 이상이 있는 경우 어떤 점이 선택되었는지 보장되지 않습니다.
- 줄에서 소수점 값을 계산하려면 geo_line_interpolate_point()를 사용합니다.
LineString 정의 및 제약 조건
dynamic({"type": "LineString","coordinates": [[lng_1,lat_1], [lng_2,lat_2], ..., [lng_N,lat_N]]})
- LineString 좌표 배열에는 두 개 이상의 항목이 포함되어야 합니다.
- 좌표 [경도, 위도]는 경도가 [-180, +180] 범위의 실수이고 위도는 [-90, +90] 범위의 실수인 경우 유효해야 합니다.
- 가장자리 길이는 180도 미만이어야 합니다. 두 꼭짓점 사이의 가장 짧은 가장자리가 선택됩니다.
예시
다음 예제에서는 분수 값을 계산합니다.
let line = dynamic({"type":"LineString","coordinates":[[-73.95796, 40.80042], [-73.97317, 40.764486]]});
print fraction = geo_line_locate_point(line, -73.965, 40.792);
출력
분수 |
---|
0.25560135100307552 |
다음 예제에서는 잘못된 줄 때문에 반환 true
합니다.
print is_bad_line = isnull(geo_line_locate_point(dynamic({"type":"LineString","coordinates":[[1, 1]]}), 1, 1))
출력
is_bad_line |
---|
맞다 |