Condividi tramite


ST_DISTANCE - Linguaggio di query in Cosmos DB (in Azure e Fabric)

La ST_DISTANCE funzione restituisce la distanza tra due espressioni GeoJSON Point, Polygon, MultiPolygon o LineString.

La ST_DISTANCE funzione restituisce un valore numerico che rappresenta la distanza tra due oggetti GeoJSON in Azure Cosmos DB per NoSQL.

Sintassi

ST_DISTANCE(<spatial_expr_1>, <spatial_expr_2>)

Arguments

Description
spatial_expr_1 Qualsiasi espressione GeoJSON Point, Polygon, MultiPolygon o LineString valida.
spatial_expr_2 Qualsiasi espressione GeoJSON Point, Polygon, MultiPolygon o LineString valida.

Tipi restituiti

Restituisce un'espressione numerica che enumera la distanza tra due espressioni.

Esempi

Questa sezione contiene esempi di come usare questo costrutto di linguaggio di query.

Calcolare la distanza tra i punti

In questo esempio, la ST_DISTANCE funzione viene usata per calcolare la distanza tra una posizione dell'ufficio e un punto di riferimento, restituendo il risultato in chilometri.

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

Osservazioni:

  • Il risultato è espresso in metri per il sistema di riferimento predefinito.
  • Questa funzione trae vantaggio da un indice geospaziale, ad eccezione delle query con aggregazioni.
  • La specifica GeoJSON richiede che i punti all'interno di un poligono siano specificati in ordine antiorario. Un poligono specificato in senso orario rappresenta l'inverso dell'area all'interno di essa.