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 ditampilkan

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.