ST_DISTANCE (NoSQL-fråga)
GÄLLER FÖR: NoSQL
Returnerar avståndet mellan två GeoJSON Point-, Polygon-, MultiPolygon- eller LineString-uttryck.
Kommentar
Mer information finns i Geospatiala och GeoJSON-platsdata.
Syntax
ST_DISTANCE(<spatial_expr_1>, <spatial_expr_2>)
Argument
beskrivning | |
---|---|
spatial_expr_1 |
Alla giltiga GeoJSON Point-, Polygon-, MultiPolygon - eller LineString-uttryck . |
spatial_expr_2 |
Alla giltiga GeoJSON Point-, Polygon-, MultiPolygon - eller LineString-uttryck . |
Returtyper
Returnerar ett numeriskt uttryck som räknar upp avståndet mellan två uttryck.
Exempel
I följande exempel förutsätts att det finns en container med två objekt.
[
{
"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"
}
]
Exemplet visar hur du använder funktionen som ett filter för att returnera objekt inom ett angivet avstånd.
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
}
]
Kommentarer
- Resultatet uttrycks i mätare för standardreferenssystemet.
- Den här funktionen drar nytta av ett geospatialt index förutom i frågor med aggregeringar.
- GeoJSON-specifikationen kräver att punkter i en Polygon anges i motsols ordning. En Polygon som anges i medsols ordning representerar inversen av regionen inom den.