Korzystanie z wyszukiwania geoprzestrzennego

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ć.

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