Condividi tramite


Funzione st_addpoint

Si applica a:check contrassegnato come sì controllo SQL di Databricks contrassegnato come sì Databricks Runtime 17.1 e versioni successive

Important

Questa funzionalità è in Anteprima Pubblica.

Annotazioni

Questa funzionalità non è disponibile in Databricks SQL Classic Warehouses. Per altre informazioni sui databricks SQL Warehouse, vedere Tipi di SQL Warehouse.

Aggiunge un nuovo punto alla posizione n-esima nella linea di ingresso GEOGRAPHY o nel valore GEOMETRY.

Syntax

st_addpoint ( geo1Expr, geo2Expr[, indexExpr] )

Arguments

  • geo1Expr: un valore GEOGRAPHY o GEOMETRY che rappresenta un linestring.
  • geo2Expr: un valore GEOGRAPHY o GEOMETRY che rappresenta un punto.
  • indexExpr: valore facoltativo INTEGER , che indica una posizione basata su 1 nella riga in cui deve essere aggiunto il nuovo punto. Il valore predefinito è -1.

Returns

Valore di tipo GEOGRAPHY se e geo1Exprgeo2Expr sono di tipo GEOGRAPHYo un valore di tipo GEOMETRY se e geo1Exprgeo2Expr sono di tipo GEOMETRY. Se indexExpr è positivo, il valore restituito GEOGRAPHY o GEOMETRY è una nuova stringa di linee il cui indexExpr-esimo punto (conteggiato da sinistra) è impostato a geo2Expr. Se indexExpr è negativo, la posizione in base 1 della linea in cui viene aggiunto il punto viene misurata a destra.

  • La funzione restituisce NULL se uno degli input è NULL.
  • Il valore SRID della stringa di output è uguale al valore SRID comune dei valori di input GEOGRAPHY o GEOMETRY.
  • La dimensione dell'output GEOGRAPHY o GEOMETRY della stringa di riga è uguale a quella di geo1Expr. Se geo2Expr contiene coordinate la cui dimensione non esiste nelle geo1Expr coordinate corrispondenti è impostata su 0.

Condizioni di errore

Examples

-- We do not specify a position; the point is appended at the end (right) of the linestring.
> SELECT st_asewkt(st_addpoint(st_geomfromtext('LINESTRING(1 2,3 4)', 4326), st_geomfromtext('POINT(7 8)', 4326)));
  SRID=4326;LINESTRING(1 2,3 4,7 8)

-- A positive index indicates the position. We add the point at that position in the linestring.
> SELECT st_astext(st_addpoint(st_geomfromtext('LINESTRING(1 2,3 4)'), st_geomfromtext('POINT(7 8)'), 3));
  LINESTRING(1 2,3 4,7 8)

-- The position is specified as a negative index. The point is added at that position counting from the right.
-- The point is missing a Z coordinate. This is set to 0 when the point is added in the linestring.
> SELECT st_asewkt(st_addpoint(st_geogfromtext('LINESTRING ZM (1 2 3 4,5 6 7 8)'), st_geogfromtext('POINT M (0 9 99)'), -1));
  SRID=4326;LINESTRING ZM (1 2 3 4,5 6 7 8,0 9 0 99)