Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Funzione
Si applica a:
controllo SQL di Databricks
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 valoreGEOGRAPHYoGEOMETRYche rappresenta un linestring. -
geo2Expr: un valoreGEOGRAPHYoGEOMETRYche rappresenta un punto. -
indexExpr: valore facoltativoINTEGER, 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
NULLse uno degli input èNULL. - Il valore SRID della stringa di output è uguale al valore SRID comune dei valori di input
GEOGRAPHYoGEOMETRY. - La dimensione dell'output
GEOGRAPHYoGEOMETRYdella stringa di riga è uguale a quella digeo1Expr. Segeo2Exprcontiene coordinate la cui dimensione non esiste nellegeo1Exprcoordinate corrispondenti è impostata su 0.
Condizioni di errore
- Se
geo1Exprè di tipoGEOGRAPHYegeo2Exprè di tipoGEOMETRY, oppure viceversa, la funzione restituisce DATATYPE_MISMATCH. - Se i valori SRID di
geo1Expregeo2Exprsono diversi, la funzione restituisce ST_DIFFERENT_SRID_VALUES. - La funzione restituisce ST_INVALID_ARGUMENT. INVALID_TYPE in uno dei casi seguenti:
- Il valore di
geo1Exprnon è una stringa di riga. - Il valore di
geo2Exprnon è un punto.
- Il valore di
- La funzione restituisce ST_INVALID_ARGUMENT. EMPTY_LINESTRING se il valore di
geo1Exprè una riga vuota. - La funzione restituisce ST_INVALID_ARGUMENT. EMPTY_POINT se il valore di
geo2Exprè un punto vuoto. - Se il valore assoluto del valore di
indexExprè 0 o maggiore del numero di punti nella linea più uno, la funzione restituisce ST_INVALID_ARGUMENT. INVALID_INDEX_VALUE.
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)