Share via


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-Ausdruck vom Typ Point, Polygon, MultiPolygon oder LineString.
spatial_expr_2 Ein beliebiger gültiger GeoJSON-Ausdruck vom Typ Point, Polygon, MultiPolygon oder LineString.

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.