ST_DISTANCE (NoSQL-Abfrage)
GILT FÜR: NoSQL
Gibt den Abstand zwischen den beiden GeoJSON-Punkt, Polygon, MultiPolygon oder LineString-Ausdrücken zurück.
Hinweis
Weitere Informationen finden Sie unter Räumliche Daten und GeoJSON-Standortdaten.
Syntax
ST_DISTANCE(<spatial_expr_1>, <spatial_expr_2>)
Argumente
BESCHREIBUNG | |
---|---|
spatial_expr_1 |
Ein beliebiger gültiger GeoJSON Point, Polygon, MultiPolygon oder LineString-Ausdruck. |
spatial_expr_2 |
Ein beliebiger gültiger GeoJSON Point, Polygon, MultiPolygon oder LineString-Ausdruck. |
Rückgabetypen
Gibt einen numerischen Ausdruck zurück, der den Abstand zwischen zwei Ausdrücken aufzählt.
Beispiele
Im folgenden Beispiel wird davon ausgegangen, dass ein Container mit zwei Elementen vorhanden ist.
[
{
"name": "Headquarters",
"location": {
"type": "Point",
"coordinates": [
-122.12826822304672,
47.63980239335718
]
},
"category": "business-offices"
},
{
"name": "Research and development",
"location": {
"type": "Point",
"coordinates": [
-96.84368664765994,
46.81297794314663
]
},
"category": "business-offices"
}
]
Das Beispiel zeigt, wie Sie die Funktion als Filter verwenden, um Elemente innerhalb einer angegebenen Entfernung zurückzugeben.
SELECT
o.name,
ST_DISTANCE(o.location, {
"type": "Point",
"coordinates": [-122.11758113953535, 47.66901087006131]
}) / 1000 AS distanceKilometers
FROM
offices o
WHERE
o.category = "business-offices"
[
{
"name": "Headquarters",
"distanceKilometers": 3.345269817267368
},
{
"name": "Research and development",
"distanceKilometers": 1907.438421299902
}
]
Bemerkungen
- Das Resultat wird für das Standardreferenzsystem in Metern angegeben.
- Diese Funktion profitiert von einem räumlichen Index (außer bei Abfragen mit Aggregaten).
- Die GeoJSON-Spezifikation erfordert, dass die Punkte innerhalb eines Polygons gegen den Uhrzeigersinn angegeben werden. Ein Polygon, das im Uhrzeigersinn angegeben wird, stellt die Umkehrung der darin enthaltenen Region dar.