Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il post del blog
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_ DistanceSphere
ST_ DistanceSphere restituisce la distanza tra due geometrie di punti che si trovano su una sfera.
Sintassi
ST_DistanceSphere(geom1, geom2)
ST_DistanceSphere(geom1, geom2, radius)
Arguments (Argomenti)
- geom1
-
Un valore puntuale in gradi di tipo di dati
GEOMETRYdisposti su una sfera. La prima coordinata del punto è il valore della longitudine. La seconda coordinata del punto è il valore della latitudine. Per le geometrie 3DZ, 3DM o 4D, vengono utilizzate solo le prime due coordinate. - geom2
-
Un valore puntuale in gradi di tipo di dati
GEOMETRYdisposti su una sfera. La prima coordinata del punto è il valore della longitudine. La seconda coordinata del punto è il valore della latitudine. Per le geometrie 3DZ, 3DM o 4D, vengono utilizzate solo le prime due coordinate. - raggio
-
Il raggio di una sfera di tipo di dato
DOUBLE PRECISION. Se non è indicato un raggio, la sfera considerata per impostazione predefinita è la Terra e il raggio è calcolato in base alla rappresentazione World Geodetic System (WGS) 84 dell'ellissoide.
Tipo restituito
DOUBLE PRECISION nelle stesse unità del raggio. Se non viene fornito alcun raggio, la distanza è in metri.
Se geom1 o geom2 sono nulli, allora viene restituito il valore nullo.
Se non viene indicato un raggio, allora il risultato è in metri misurati sulla superficie della Terra.
Se il raggio è un numero negativo, viene restituito un errore.
Se geom1 e geom2 non presentano lo stesso valore di identificatore del sistema di riferimento spaziale (SRID), allora viene restituito il valore nullo.
Se geom1 o geom2 non sono dei punti, allora viene restituito un errore.
Esempi
La seguente istruzione SQL di esempio calcola la distanza in chilometri tra due punti sulla Terra.
SELECT ROUND(ST_DistanceSphere(ST_Point(-122, 47), ST_Point(-122.1, 47.1))/ 1000, 0);
round
-----------
13
Il seguente comando SQL di esempio calcola le distanze in chilometri tra tre località aeroportuali in Germania: Berlin Tegel (TXL), Munich International (MUC) e Frankfurt International (FRA).
WITH airports_raw(code,lon,lat) AS ( (SELECT 'MUC', 11.786111, 48.353889) UNION (SELECT 'FRA', 8.570556, 50.033333) UNION (SELECT 'TXL', 13.287778, 52.559722)), airports1(code,location) AS (SELECT code, ST_Point(lon, lat) FROM airports_raw), airports2(code,location) AS (SELECT * from airports1) SELECT (airports1.code || ' <-> ' || airports2.code) AS airports, round(ST_DistanceSphere(airports1.location, airports2.location) / 1000, 0) AS distance_in_km FROM airports1, airports2 WHERE airports1.code < airports2.code ORDER BY 1;
airports | distance_in_km
-------------+----------------
FRA <-> MUC | 299
FRA <-> TXL | 432
MUC <-> TXL | 480