Delen via


ST_DISTANCE - Querytaal in Cosmos DB (in Azure en Fabric)

De ST_DISTANCE functie retourneert de afstand tussen twee GeoJSON-punt-, Polygoon-, MultiPolygon- of LineString-expressies.

De ST_DISTANCE functie retourneert een numerieke waarde die de afstand vertegenwoordigt tussen twee GeoJSON-objecten in Azure Cosmos DB.

Syntaxis

ST_DISTANCE(<spatial_expr_1>, <spatial_expr_2>)

Arguments

Description
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

Deze sectie bevat voorbeelden van het gebruik van deze querytaalconstructie.

Afstand tussen punten berekenen

In dit voorbeeld wordt de ST_DISTANCE functie gebruikt om de afstand tussen een kantoorlocatie en een referentiepunt te berekenen, waardoor het resultaat in kilometers wordt geretourneerd.

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.