次の方法で共有


ST_DISTANCE - Cosmos DB のクエリ言語 (Azure と Fabric)

ST_DISTANCE関数は、2 つの GeoJSON ポイント、Polygon、MultiPolygon、または LineString 式間の距離を返します。

ST_DISTANCE関数は、Azure Cosmos DB 内の 2 つの GeoJSON オブジェクト間の距離を表す数値を返します。

構文

ST_DISTANCE(<spatial_expr_1>, <spatial_expr_2>)

論争

Description
spatial_expr_1 任意の有効な GeoJSON ポイント、Polygon、MultiPolygon、または LineString 式。
spatial_expr_2 任意の有効な GeoJSON ポイント、Polygon、MultiPolygon、または LineString 式。

戻り値の型

2 つの式間の距離を列挙する数値式を返します。

例示

このセクションでは、このクエリ言語コンストラクトを使用する方法の例を示します。

ポイント間の距離を計算する

この例では、 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 仕様では、Polygon 内のポイントを反時計回りの順序で指定する必要があります。 時計回りの順序で指定された多角形は、その中の領域の逆数を表します。