ST_SetPoint - Amazon Redshift

ST_SetPoint

ST_SetPoint는 인덱스에 의해 지정된 입력 라인스트링의 위치와 관련하여 업데이트된 좌표가 있는 라인스트링을 반환합니다. 새 좌표는 입력 점의 좌표입니다.

반환된 지오메트리의 차원은 geom1 값의 차원과 같습니다. geom1geom2의 차원이 다른 경우 geom2geom1의 차원에 나타납니다.

구문

ST_SetPoint(geom1, index, geom2)

인수

geom1

GEOMETRY 데이터 형식의 값 또는 GEOMETRY 형식으로 계산되는 표현식입니다. 하위 유형은 LINESTRING이어야 합니다.

인덱스를 구축하고 배포할 것입니다

인덱스의 위치를 나타내는 INTEGER 데이터 형식의 값입니다. 0은 라인스트링의 왼쪽에서 첫 번째 점을 가리키고, 1은 두 번째 점을 가리킵니다. 인덱스는 음수 값일 수 있습니다. -1은 라인스트링의 오른쪽에서 첫 번째 점을 가리키고, -2는 라인스트링의 오른쪽에서 두 번째 점을 가리킵니다.

geom2

GEOMETRY 데이터 형식의 값 또는 GEOMETRY 형식으로 계산되는 표현식입니다. 하위 유형은 POINT이어야 합니다.

반환 타입

GEOMETRY

geom2가 빈 점이면 geom1이 반환됩니다.

geom1, geom2 또는 index가 null이면 null이 반환됩니다.

geom1이 라인스트링이 아니면 오류가 반환됩니다.

index가 유효한 인덱스 범위 내에 있지 않으면 오류가 반환됩니다.

geom2가 점이 아니면 오류가 반환됩니다.

geom1geom2의 SRID(공간 참조 시스템 식별자) 값이 같지 않으면 오류가 반환됩니다.

예제

다음 SQL은 입력 라인스트링의 두 번째 점을 지정된 점으로 설정한 새로운 라인스트링을 반환합니다.

SELECT ST_AsText(ST_SetPoint(ST_GeomFromText('LINESTRING(1 2, 3 2, 5 2, 1 2)'), 2, ST_GeomFromText('POINT(7 9)')));
st_astext ------------- LINESTRING(1 2,3 2,7 9,1 2)

다음 SQL 예는 라인스트링의 오른쪽에서 세 번째 점(인덱스가 음수임)를 지정된 점으로 설정한 새로운 라인스트링을 반환합니다.

SELECT ST_AsText(ST_SetPoint(ST_GeomFromText('LINESTRING(1 2, 3 2, 5 2, 1 2)'), -3, ST_GeomFromText('POINT(7 9)')));
st_astext ------------- LINESTRING(1 2,7 9,5 2,1 2)