Utilizzare la ricerca geospaziale

Puoi eseguire query geospaziali in Firestore per creare servizi basati sulla posizione. Ad esempio, puoi trovare la distanza tra un utente e i punti d'interesse nelle vicinanze, ordinandoli dal più vicino al più lontano.

Requisiti relativi alla versione

La funzionalità di ricerca geospaziale richiede un database Firestore Enterprise.

Prima di iniziare

Per eseguire una ricerca geospaziale, devi prima creare indici geospaziali per i campi in cui devi eseguire la ricerca.

Per eseguire una ricerca geospaziale, utilizza l'espressione geoDistance all'interno del parametro query della fase search(...).

È supportato solo l'operatore minore o uguale a (<=). La distanza è misurata in metri.

Ad esempio, la seguente query trova tutti i ristoranti entro 1000 metri dal geopoint elencato.

Versione web 9

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 */)
  });