- Kategorien:
ST_DISTANCE¶
Gibt den minimalen geodätischen Abstand zwischen zwei Objekten vom Typ GEOGRAPHY oder den minimalen euklidischen Abstand zwischen zwei Objekten vom Typ GEOMETRY zurück.
Syntax¶
ST_DISTANCE( <geography_or_geometry_expression_1> , <geography_or_geometry_expression_2> )
Argumente¶
geography_or_geometry_expression_1
Das Argument muss vom Datentyp GEOGRAPHY oder GEOMETRY sein.
geography_or_geometry_expression_2
Das Argument muss vom Datentyp GEOGRAPHY oder GEOMETRY sein.
Rückgabewerte¶
Gibt einen FLOAT-Wert zurück, der die Entfernung darstellt, oder NULL:
Bei Eingabewerten vom Typ GEOGRAPHY wird die Entfernung in Meter angegeben.
Bei Eingabewerten vom Typ GEOMETRY wird die Entfernung mit den Einheiten berechnet, die zur Definition der Eingabekoordinaten verwendet wurden.
Gibt NULL zurück, wenn ein oder mehrere Eingabepunkte NULL sind.
Nutzungshinweise¶
Bei GEOMETRY-Objekten meldet die Funktion einen Fehler, wenn die beiden eingegebenen GEOMETRY-Objekte unterschiedliche SRIDs haben.
Beispiele¶
Die folgenden Beispiele verwenden die Funktion ST_DISTANCE.
GEOGRAPHY-Beispiele¶
Zeigt die Entfernung in Metern zwischen zwei Punkten 1 Grad entfernt entlang des Äquators (ungefähr 111 Kilometer).
WITH d AS
( ST_DISTANCE(ST_MAKEPOINT(0, 0), ST_MAKEPOINT(1, 0)) )
SELECT d / 1000 AS kilometers, d / 1609 AS miles;
+---------------+--------------+
| KILOMETERS | MILES |
|---------------+--------------|
| 111.195101177 | 69.108204585 |
+---------------+--------------+
Anzeigen der Ausgabe der Funktion ST_DISTANCE, wenn ein oder mehrere Eingabewerte NULL sind:
SELECT ST_DISTANCE(ST_MAKEPOINT(0, 0), ST_MAKEPOINT(NULL, NULL)) AS null_input;
+------------+
| NULL_INPUT |
|------------|
| NULL |
+------------+
GEOMETRY-Beispiele¶
Im folgenden Beispiel wird die für die Eingabeobjekte vom Typ GEOGRAPHY und GEOMETRY berechnete Entfernung verglichen.
SELECT ST_DISTANCE(TO_GEOMETRY('POINT(0 0)'), TO_GEOMETRY('POINT(1 1)')) AS geometry_distance,
ST_DISTANCE(TO_GEOGRAPHY('POINT(0 0)'), TO_GEOGRAPHY('POINT(1 1)')) AS geography_distance;
+-------------------+--------------------+
| GEOMETRY_DISTANCE | GEOGRAPHY_DISTANCE |
|-------------------+--------------------|
| 1.414213562 | 157249.628092508 |
+-------------------+--------------------+
Weitere Beispiele finden Sie unter Beispiele zum Vergleich der Datentypen GEOGRAPHY und GEOMETRY.