Condividi tramite


Funzione st_setpoint

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.

Imposta il n-esimo punto della linestringa di input GEOGRAPHY o del valore GEOMETRY.

Syntax

st_setpoint ( geo1Expr, indexExpr, geo2Expr )

Arguments

  • geo1Expr: un valore GEOGRAPHY o GEOMETRY che rappresenta un linestring.
  • indexExpr INTEGER: valore che indica la posizione in base 1 nella riga in cui deve essere impostato il nuovo punto.
  • geo2Expr: un valore GEOGRAPHY o GEOMETRY che rappresenta un punto.

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 set the first point of the linestring counting from the left.
> SELECT st_astext(st_setpoint(st_geomfromtext('LINESTRING(1 2,3 4)'), 1, st_geomfromtext('POINT(7 8)')));
  LINESTRING(7 8,3 4)

-- We set the first point of the linestring counting from the right.
-- The point is missing a Z coordinate. This is set to 0 when we update the linestring.
> SELECT st_asewkt(st_setpoint(st_geogfromtext('LINESTRING ZM (1 2 3 4,5 6 7 8)'), -1, st_geogfromtext('POINT M (0 9 99)')));
  SRID=4326;LINESTRING ZM (1 2 3 4,0 9 0 99)