共用方式為


ST_DISTANCE - Cosmos DB 中的查詢語言 (在 Azure 和 Fabric 中)

ST_DISTANCE 函式會傳回兩個 GeoJSON Point、Polygon、MultiPolygon 或 LineString 運算式之間的距離。

ST_DISTANCE 式會傳回數值,代表適用於 NoSQL 的 Azure Cosmos DB 中兩個 GeoJSON 物件之間的距離。

語法

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 規格要求以逆時針順序指定多邊形內的點。 以順時針順序指定的多邊形代表其中區域的倒數。