Condividi tramite


Funzione st_length

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.

Restituisce la lunghezza dell'input GEOGRAPHY o del valore GEOMETRY.

Syntax

st_length ( geoExpr )

Arguments

  • geoExpr: un valore GEOGRAPHY o GEOMETRY.

Returns

Valore di tipo DOUBLE, che rappresenta la lunghezza dell'input GEOGRAPHY o GEOMETRY.

Se l'input è un GEOGRAPHY valore, la funzione restituisce la lunghezza geodesica 2D della parte lineare del GEOGRAPHY valore. In particolare, la funzione restituisce la lunghezza geodesica per le stringhe di riga e la somma delle lunghezze delle stringhe di linea in una stringa multilinea. Per le aree geografiche non lineari (punti, poligoni, multipunti e multipolygoni) viene restituito 0, mentre per le raccolte geometry la funzione restituisce la somma delle lunghezze degli elementi nell'insieme. Il risultato viene calcolato eseguendo il calcolo geodesico inverso presupponendo l'ellissoide WGS84. Le unità del risultato sono metri.

Se l'input è un GEOMETRY valore, la funzione restituisce la lunghezza cartesiana 2D della parte lineare del GEOMETRY valore. In particolare, la funzione restituisce la lunghezza cartesiana 2D per le stringhe di riga e la somma delle lunghezze delle stringhe di linea in una stringa multilinea. Per le geometrie non lineari (punti, poligoni, multipunti e multipolygoni) viene restituito 0, mentre per le raccolte geometry restituisce la somma delle lunghezze degli elementi dell'insieme. Le unità del risultato sono quelle del sistema di riferimento spaziale del valore di input GEOMETRY .

La funzione restituisce NULL se uno degli input è NULL.

Examples

-- Returns the length of a 2D Cartesian linestring.
> SELECT round(st_length(st_geomfromtext('LINESTRING(10 34,44 57,30 24)')), 8);
  76.89564816