ST_DISTANCE (kueri NoSQL)
BERLAKU UNTUK: NoSQL
Mengembalikan jarak antara dua ekspresi GeoJSON Point, Polygon, MultiPolygon, atau LineString.
Catatan
Untuk informasi selengkapnya, lihat Data lokasi Geospasial dan GeoJSON.
Sintaks
ST_DISTANCE(<spatial_expr_1>, <spatial_expr_2>)
Argumen
Deskripsi | |
---|---|
spatial_expr_1 |
Setiap ekspresi GeoJSON Point, Polygon, MultiPolygon, atau LineString yang valid. |
spatial_expr_2 |
Setiap ekspresi GeoJSON Point, Polygon, MultiPolygon, atau LineString yang valid. |
Jenis yang dikembalikan
Mengembalikan ekspresi numerik yang menghitung jarak antara dua ekspresi.
Contoh
Contoh berikut mengasumsikan kontainer ada dengan dua item.
[
{
"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"
}
]
Contoh menunjukkan cara menggunakan fungsi sebagai filter untuk mengembalikan item dalam jarak yang ditentukan.
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
}
]
Keterangan
- Hasilnya dinyatakan dalam meter untuk sistem referensi default.
- Fungsi ini mendapat manfaat dari indeks geospasial kecuali dalam kueri dengan agregat.
- Spesifikasi GeoJSON mensyaratkan bahwa titik-titik dalam Polygon ditentukan dalam urutan berlawanan arah jarum jam. Poligon yang ditentukan dalam urutan searah jarum jam mewakili inversi wilayah di dalamnya.