ST_DISTANCE (NoSQL 查詢)
適用於:NoSQL
傳回兩個 GeoJSON 點、多邊形、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 運算式。 |
傳回類型
傳回數值表示式,列舉兩個表達式之間的距離。
範例
下列範例假設有兩個專案的容器存在。
[
{
"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 內的點必須以逆時針順序指定。 以順時針順序指定的多邊形,代表區域內的反轉。