ST_DISTANCE (dotaz NoSQL)
PLATÍ PRO: NoSQL
Vrátí vzdálenost mezi dvěma výrazy GeoJSON Point, Polygon, MultiPolygon nebo LineString.
Poznámka:
Další informace naleznete v tématu Geoprostorová a GeoJSON data o poloze.
Syntaxe
ST_DISTANCE(<spatial_expr_1>, <spatial_expr_2>)
Argumenty
Popis | |
---|---|
spatial_expr_1 |
Libovolný platný výraz GeoJSON Point, Polygon, MultiPolygon nebo LineString . |
spatial_expr_2 |
Libovolný platný výraz GeoJSON Point, Polygon, MultiPolygon nebo LineString . |
Návratové typy
Vrátí číselný výraz, který vypočítá vzdálenost mezi dvěma výrazy.
Příklady
Následující příklad předpokládá, že kontejner existuje se dvěma položkami.
[
{
"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"
}
]
Příklad ukazuje, jak použít funkci jako filtr k vrácení položek v zadané vzdálenosti.
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
}
]
Poznámky
- Výsledek se vyjadřuje v metrech pro výchozí referenční systém.
- Tato funkce využívá geoprostorový index s výjimkou dotazů s agregacemi.
- Specifikace GeoJSON vyžaduje, aby body v polygonu byly zadány v proti směru hodinových ručiček. Mnohoúhelník zadaný v pořadí hodinových ručiček představuje inverzní funkci oblasti v ní.