Puedes realizar consultas geoespaciales en Cloud Firestore para compilar 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 búsqueda 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 búsqueda geoespacial
Para realizar una búsqueda 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, en la siguiente consulta, se encuentran 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 */) });