ST_DISTANCE(NoSQL 查询)
适用范围: NoSQL
返回两个 GeoJSON Point、Polygon、MultiPolygon 或 LineString 之间的距离。
注意
有关详细信息,请参阅 Geospatial 和 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 规范要求多边形内的点按逆时针顺序指定。 以顺时针顺序指定的多边形表示其中的区域倒转。