제목

ST_SetPoint — 라인스트링의 포인트를 주어진 포인트로 대체합니다.

요약

geometry ST_SetPoint(geometry linestring, integer zerobasedposition, geometry point);

설명

라인스트링의 N번째 포인트를 주어진 포인트로 대체합니다. 인덱스는 0-기반입니다. 음수 인덱스는 반대로 세기 때문에, -1이 마지막 포인트가 됩니다. 꼭짓점 하나가 움직였을 때 연결 관계를 유지하려는 경우 이 함수가 트리거 역할로 특히 유용합니다.

1.1.0 버전부터 사용할 수 있습니다.

업데이트 사항: 2.3.0 버전에서 음수 인덱스를 지원하기 시작했습니다.

This function supports 3d and will not drop the z-index.

예시

Change first point in line string from -1 3 to -1 1.

Code
SELECT ST_SetPoint('LINESTRING(-1 2,-1 3)', 0, 'POINT(-1 1)');
래스터 출력
LINESTRING(-1 1,-1 3)
Figure
Geometry figure for visual-st-setpoint-01

Change last point in a line string (let's play with 3D linestring this time)

Code
SELECT ST_SetPoint(foo.geom, ST_NumPoints(foo.geom) - 1, 'POINT(-1 1 3)')
FROM (SELECT 'LINESTRING(-1 2 3,-1 3 4,5 6 7)'::geometry As geom) As foo;
래스터 출력
LINESTRING(-1 2 3,-1 3 4,-1 1 3)
Figure
Geometry figure for visual-st-setpoint-02
Code
SELECT ST_SetPoint(g, -3, p)
FROM ST_GeomFromText('LINESTRING(0 0,1 1,2 2,3 3,4 4)') AS g
    CROSS JOIN ST_PointN(g, 1) as p;
래스터 출력
LINESTRING(0 0,1 1,0 0,3 3,4 4)
Figure
Geometry figure for visual-st-setpoint-03