- 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 REAL-Wert zurück, der die Entfernung repräsentiert.
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.
Nutzungshinweise¶
Gibt NULL zurück, wenn ein oder mehrere Eingabepunkte NULL sind.
Bei GEOMETRY-Objekten meldet die Funktion einen Fehler, wenn die beiden eingegebenen GEOMETRY-Objekte unterschiedliche SRIDs haben.
Beispiele¶
GEOGRAPHY-Beispiele¶
Das folgende Beispiel 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 | +---------------+--------------+
Das folgende Beispiel zeigt die Verwendung der Funktion ST_DISTANCE mit NULL-Werten:
SELECT ST_DISTANCE(ST_MAKEPOINT(0, 0), ST_MAKEPOINT(NULL, NULL)); +-----------------------------------------------------------+ | ST_DISTANCE(ST_MAKEPOINT(0, 0), ST_MAKEPOINT(NULL, NULL)) | |-----------------------------------------------------------| | 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 | +-------------------+--------------------+