ST_RemovePoint function

The ST_RemovePoint function takes a curve and a point as input parameters and returns the given curve with all points equal to the specified point removed from it. If the given curve has Z or M coordinates, then the point must also have Z or M coordinates. The resulting geometry is represented in the spatial reference system of the given geometry.

If the given curve is empty, then an empty curve is returned. If the given curve is null, or if the given point is null or empty, then null is returned.

This function can also be called as a method.

Syntax

Read syntax diagramSkip visual syntax diagramdb2gse.ST_RemovePoint(curve,point )

Parameters

curve
A value of type ST_Curve or one of its subtypes that represents the curve from which point is removed.
point
A value of type ST_Point that identifies the points that are removed from curve.

Return type

db2gse.ST_Curve

Examples

Example 1
In the following example, two linestrings are added to the SAMPLE_LINES table. These linestrings are used in the following examples.

SET CURRENT FUNCTION PATH = CURRENT FUNCTION PATH, db2gse
CREATE TABLE sample_lines (id INTEGER, line ST_LineString)

INSERT INTO sample_lines
  VALUES (1,ST_LineString('linestring 
         (10 10, 5 5, 0 0, 10 0, 5 5, 0 10)', 0))

INSERT INTO sample_lines
  VALUES (2, ST_LineString('linestring z 
         (0 0 4, 5 5 5, 10 10 6, 5 5 7, 0 0 8)', 0))
In the following examples, the lines of results have been reformatted for readability. The spacing in your results will vary according to your online display.
Example 2
The following example removes the point (5, 5) from the linestring that has ID = 1. This point occurs twice in the linestring. Therefore, both occurrences are removed.

SELECT CAST(ST_AsText (ST_RemovePoint (line, ST_Point(5, 5) ) )
  AS VARCHAR(120) ) RESULT
  FROM sample_lines
  WHERE id = 1
Results:

RESULT
------------------------------------------------------------
LINESTRING ( 10.00000000 10.00000000, 0.00000000 0.00000000, 
             10.00000000 0.00000000, 0.00000000 10.00000000)

Example 3
The following example removes the point (5, 5, 5) from the linestring that has ID = 2. This point occurs only once, so only that occurrence is removed.

SELECT CAST (ST_AsText (ST_RemovePoint (line, ST_Point(5.0, 5.0, 5.0)))
  AS VARCHAR(160) ) RESULT
  FROM sample_lines
  WHERE id=2
Results:

RESULT
-------------------------------------------------------------------------
LINESTRING Z ( 0.00000000 0.00000000 4.00000000, 10.00000000 10.00000000 
               6.00000000,  5.00000000 5.00000000 7.00000000, 0.00000000 
               0.00000000 8.00000000)