Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
ST_ AddPoint
ST_ AddPoint restituisce una geometria di stringhe di linee che è la stessa della geometria di input con un punto aggiunto. Se viene fornito un indice, il punto viene aggiunto alla posizione dell'indice. Se l'indice è -1 o non viene fornito, il punto viene aggiunto alla linestring.
L'indice è a base zero. L'identificatore del sistema di riferimento spaziale (SRID) del risultato è lo stesso della geometria di input.
La dimensione della geometria restituita è la stessa del valore geom1. Se geom1 e geom2 hanno dimensioni diverse, geom2 è proiettato sulla dimensione di geom1.
Sintassi
ST_AddPoint(geom1, geom2)
ST_AddPoint(geom1, geom2, index)
Argomenti
- geom1
-
Un valore di tipo
GEOMETRY
o un'espressione che restituisce un valore di tipoGEOMETRY
. Questo sottotipo deve essereLINESTRING
. - geom2
-
Un valore di tipo
GEOMETRY
o un'espressione che restituisce un valore di tipoGEOMETRY
. Questo sottotipo deve esserePOINT
. Il punto può essere il punto vuoto. - indice
-
Valore del tipo di dati
INTEGER
che rappresenta la posizione di un indice a base zero.
Tipo restituito
GEOMETRY
Se geom1, geom2 o index sono nulli, allora viene restituito il valore nullo.
Se geom2 è il punto vuoto, quindi viene restituita una copia di geom1.
Se geom1 non è un LINESTRING
, allora viene restituito un errore.
Se geom2 non è un POINT
, allora viene restituito un errore.
Se index è fuori intervallo, viene restituito un errore. I valori validi per la posizione dell'indice sono -1 o un valore compreso tra 0 e ST_NumPoints(geom1)
.
Esempi
Il seguente codice SQL aggiunge un punto a una linestring per renderla una linestring chiusa.
WITH tmp(g) AS (SELECT ST_GeomFromText('LINESTRING(0 0,10 0,10 10,5 5,0 5)',4326)) SELECT ST_AsEWKT(ST_AddPoint(g, ST_StartPoint(g))) FROM tmp;
st_asewkt
------------------------------------------------
SRID=4326;LINESTRING(0 0,10 0,10 10,5 5,0 5,0 0)
Il seguente codice SQL aggiunge un punto a una posizione specifica in una linestring.
WITH tmp(g) AS (SELECT ST_GeomFromText('LINESTRING(0 0,10 0,10 10,5 5,0 5)',4326)) SELECT ST_AsEWKT(ST_AddPoint(g, ST_SetSRID(ST_Point(5, 10), 4326), 3)) FROM tmp;
st_asewkt
------------------------------------------------
SRID=4326;LINESTRING(0 0,10 0,10 10,5 10,5 5,0 5)