ST_DISTANCE (NoSQL クエリ)
適用対象: NoSQL
2 つの GeoJSON Point、Polygon、MultiPolygon、または LineString 式間の距離を返します。
注意
詳細については、「地理空間と GeoJSON 位置情報データ」を参照してください。
構文
ST_DISTANCE(<spatial_expr_1>, <spatial_expr_2>)
引数
説明 | |
---|---|
spatial_expr_1 |
有効な GeoJSON Point、Polygon、MultiPolygon、または LineString 式です。 |
spatial_expr_2 |
有効な GeoJSON Point、Polygon、MultiPolygon、または 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 は、その中の領域を逆にしたものを表します。