Partager via


ST_DISTANCE - Langage de requête dans Cosmos DB (dans Azure et Fabric)

La ST_DISTANCE fonction retourne la distance entre deux expressions GeoJSON Point, Polygon, MultiPolygon ou LineString.

La ST_DISTANCE fonction retourne une valeur numérique représentant la distance entre deux objets GeoJSON dans Azure Cosmos DB pour NoSQL.

Syntaxe

ST_DISTANCE(<spatial_expr_1>, <spatial_expr_2>)

Arguments

Descriptif
spatial_expr_1 Toute expression GeoJSON Point, Polygon, MultiPolygon ou LineString valide.
spatial_expr_2 Toute expression GeoJSON Point, Polygon, MultiPolygon ou LineString valide.

Types de retour

Retourne une expression numérique qui énumère la distance entre deux expressions.

Examples

Cette section contient des exemples d’utilisation de cette construction de langage de requête.

Calculer la distance entre les points

Dans cet exemple, la ST_DISTANCE fonction est utilisée pour calculer la distance entre un emplacement de bureau et un point de référence, en retournant le résultat en kilomètres.

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

Remarques

  • Le résultat est exprimé en mètres pour le système de référence par défaut.
  • Cette fonction tire parti d’un index géospatial, sauf dans les requêtes avec des agrégats.
  • La spécification GeoJSON exige que les points d’un polygone soient spécifiés dans l’ordre inverse des aiguilles d’une montre. Un polygone spécifié dans l’ordre des aiguilles d’une montre représente l’inverse de la région qu’elle contient.