Menggunakan penelusuran geospasial

Anda dapat melakukan kueri geospasial di Cloud Firestore untuk membangun 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 penelusuran geospasial memerlukan database edisi Firestore Enterprise.

Sebelum memulai

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

Untuk melakukan penelusuran geospasial, gunakan ekspresi geoDistance dalam parameter query pada 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 geopoint 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 */)
  });