ST_SetPoint
Prev | 8.5. Geometry Editors | Next

## Name

ST_SetPoint — Replace point of a linestring with a given point.

## Synopsis

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

## Description

Replace point N of linestring with given point. Index is 0-based.Negative index are counted backwards, so that -1 is last point. This is especially useful in triggers when trying to maintain relationship of joints when one vertex moves.

Availability: 1.1.0

Updated 2.3.0 : negative indexing

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

## Examples

    --Change first point in line string from -1 3 to -1 1
    SELECT ST_AsText(ST_SetPoint('LINESTRING(-1 2,-1 3)', 0, 'POINT(-1 1)'));
    	   st_astext
    -----------------------
     LINESTRING(-1 1,-1 3)

    ---Change last point in a line string (lets play with 3d linestring this time)
    SELECT ST_AsEWKT(ST_SetPoint(foo.geom, ST_NumPoints(foo.geom) - 1, ST_GeomFromEWKT('POINT(-1 1 3)')))
    FROM (SELECT ST_GeomFromEWKT('LINESTRING(-1 2 3,-1 3 4, 5 6 7)') As geom) As foo;
    	   st_asewkt
    -----------------------
    LINESTRING(-1 2 3,-1 3 4,-1 1 3)

    SELECT ST_AsText(ST_SetPoint(g, -3, p))
    FROM ST_GEomFromText('LINESTRING(0 0, 1 1, 2 2, 3 3, 4 4)') AS g
    	, ST_PointN(g,1) as p;
    	   st_astext
    -----------------------
    LINESTRING(0 0,1 1,0 0,3 3,4 4)

## See Also

ST_AddPoint, ST_NPoints, ST_NumPoints, ST_PointN, ST_RemovePoint

Prev | Up | Next
ST_Segmentize | Home | ST_ShiftLongitude