Delen via


ST_DISTANCE (NoSQL-query)

VAN TOEPASSING OP: NoSQL

Retourneert de afstand tussen twee GeoJSON-punt-, polygoon-, multipolygon- of LineString-expressies.

Notitie

Zie Georuimtelijke en GeoJSON-locatiegegevens voor meer informatie.

Syntaxis

ST_DISTANCE(<spatial_expr_1>, <spatial_expr_2>)  

Argumenten

Beschrijving
spatial_expr_1 Elke geldige GeoJSON-punt-, veelhoek-, multipolygon- of LineString-expressie.
spatial_expr_2 Elke geldige GeoJSON-punt-, veelhoek-, multipolygon- of LineString-expressie.

Retourtypen

Retourneert een numerieke expressie die de afstand tussen twee expressies opsommen.

Voorbeelden

In het volgende voorbeeld wordt ervan uitgegaan dat er een container bestaat met twee items.

[
  {
    "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"
  }
]

In het voorbeeld ziet u hoe u de functie gebruikt als filter om items binnen een opgegeven afstand te retourneren.

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
  }
]

Opmerkingen

  • Het resultaat wordt uitgedrukt in meters voor het standaardreferentiesysteem.
  • Deze functie profiteert van een georuimtelijke index , behalve in query's met aggregaties.
  • De GeoJSON-specificatie vereist dat punten binnen een veelhoek worden opgegeven in volgorde met de klok mee. Een veelhoek die in rechtsom is opgegeven, vertegenwoordigt de inverse van de regio in het gebied.