Usa consultas geoespaciales

Puedes realizar consultas geoespaciales en Cloud Firestore para crear servicios que tengan en cuenta la ubicación. Por ejemplo, puedes encontrar la distancia entre un usuario y los puntos de interés cercanos, y ordenarlos del más cercano al más lejano.

Requisitos de la edición

La función de consulta geoespacial requiere una base de datos de la edición Enterprise de Firestore.

Antes de comenzar

Para realizar una búsqueda geoespacial, primero debes crear índices geoespaciales para los campos en los que necesitas buscar.

Ejecuta una consulta geoespacial

Para realizar una consulta geoespacial, usa la expresión geoDistance dentro del parámetro query de la etapa search(...).

Solo se admite el operador menor o igual que (<=). La distancia se mide en metros.

Por ejemplo, la siguiente consulta encuentra todos los restaurantes que se encuentran a 1,000 metros del punto geográfico indicado.

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