ST_DISTANCE - Cosmos DB 中的查询语言(在 Azure 和 Fabric 中)

ST_DISTANCE 函数返回两个 GeoJSON 点、多边形、MultiPolygon 或 LineString 表达式之间的距离。

ST_DISTANCE 函数返回一个数值,表示 Azure Cosmos DB for NoSQL 中两个 GeoJSON 对象之间的距离。

Syntax

ST_DISTANCE(<spatial_expr_1>, <spatial_expr_2>)

Arguments

Description
spatial_expr_1 任何有效的 GeoJSON 点、多边形、多多边形或 LineString 表达式。
spatial_expr_2 任何有效的 GeoJSON 点、多边形、多多边形或 LineString 表达式。

返回类型

返回一个数值表达式,该表达式枚举两个表达式之间的距离。

例子

本部分包含有关如何使用此查询语言构造的示例。

计算点之间的距离

在此示例中,该 ST_DISTANCE 函数用于计算办公室位置和引用点之间的距离,以公里为单位返回结果。

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

注解

  • 结果以米为单位表示默认引用系统。
  • 此函数受益于地理空间索引,但包含聚合的查询除外。
  • GeoJSON 规范要求按逆时针顺序指定多边形中的点。 按顺时针顺序指定的多边形表示该区域内的反函数。