ST_DISTANCE (NoSQL クエリ)

適用対象: NoSQL

2 つの GeoJSON Point、Polygon、MultiPolygon、または LineString 式間の距離を返します。

注意

詳細については、「地理空間と GeoJSON 位置情報データ」を参照してください。

構文

ST_DISTANCE(<spatial_expr_1>, <spatial_expr_2>)  

引数

説明
spatial_expr_1 有効な GeoJSON PointPolygonMultiPolygon、または LineString 式です。
spatial_expr_2 有効な GeoJSON PointPolygonMultiPolygon、または LineString 式です。

戻り値の型

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

次の例では、2 つの項目を含むコンテナーが存在することを前提としています。

[
  {
    "name": "Headquarters",
    "location": {
      "type": "Point",
      "coordinates": [
        -122.12826822304672,
        47.63980239335718
      ]
    },
    "category": "business-offices"
  },
  {
    "name": "Research and development",
    "location": {
      "type": "Point",
      "coordinates": [
        -96.84368664765994,
        46.81297794314663
      ]
    },
    "category": "business-offices"
  }
]

この例では、関数をフィルターとして使用して、指定した距離内の項目を返す方法を示します。

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