Menggunakan kueri geospasial

Anda dapat melakukan kueri geospasial di Cloud Firestore untuk membuat layanan yang mengetahui lokasi. Misalnya, Anda dapat menemukan jarak antara pengguna dan tempat menarik terdekat, lalu mengurutkannya dari yang terdekat hingga terjauh.

Persyaratan edisi

Fitur kueri geospasial memerlukan database edisi Firestore Enterprise.

Sebelum memulai

Untuk melakukan kueri geospasial, Anda harus terlebih dahulu membuat indeks geospasial untuk kolom yang perlu Anda telusuri.

Menjalankan kueri geospasial

Untuk melakukan kueri geospasial, gunakan ekspresi geoDistance dalam parameter query dari tahap search(...).

Hanya operator kurang dari atau sama dengan (<=) yang didukung. Jarak diukur dalam meter.

Misalnya, kueri berikut menemukan semua restoran dalam jarak 1.000 meter dari titik geografis yang tercantum.

Web

firestore.pipeline().collection('restaurants')
  .search({
    query: field('location')
      .geoDistance(new GeoPoint(38.989177, -107.065076))
      .lessThan(1000 /* m */)
  });
iOS
firestore.pipeline().collection("restaurants")
    .search(
        query: Field("location")
            .geoDistance(GeoPoint(latitude: 38.989177, longitude: -107.065076))
            .lessThan(1000)
    )
Android
firestore.pipeline()
        .collection("restaurants")
        .search(new SearchOptions()
                .withQuery(field("location")
                        .geoDistance(new GeoPoint(38.989177, -107.065076))
                        .lessThan(1000 /* meters */)));
Node.js
firestore.pipeline().collection('restaurants')
  .search({
    query: field('location')
      .geoDistance(new GeoPoint(38.989177, -107.065076))
      .lessThan(1000 /* m */)
  });