W Cloud Firestore możesz wykonywać zapytania geoprzestrzenne, aby tworzyć usługi uwzględniające lokalizację. Możesz na przykład znaleźć odległość między użytkownikiem a pobliskimi punktami orientacyjnymi i posortować je od najbliższego do najdalszego.
Wymagania dotyczące wersji
Funkcja wyszukiwania geoprzestrzennego wymaga bazy danych Firestore w wersji Enterprise.
Zanim zaczniesz
Aby przeprowadzić wyszukiwanie geoprzestrzenne, musisz najpierw utworzyć indeksy geoprzestrzenne dla pól, w których chcesz wyszukiwać.
Przeprowadzanie wyszukiwania geoprzestrzennego
Aby przeprowadzić wyszukiwanie geoprzestrzenne, użyj wyrażenia geoDistance w parametrze query etapu search(...).
Obsługiwany jest tylko operator mniejsze lub równe (<=). Odległość jest mierzona w metrach.
Na przykład to zapytanie znajduje wszystkie restauracje w promieniu 1000 metrów od podanego punktu geograficznego.
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 */) });