Utilizzare le query geospaziali

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

Requisiti relativi alla versione

La funzionalità di query geospaziali richiede un database Firestore Enterprise Edition.

Prima di iniziare

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

Eseguire una query geospaziale

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

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

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

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