Geodatenabfragen verwenden

Sie können in Firestore Geodatenabfragen ausführen, um standortbezogene Dienste zu entwickeln. So können Sie beispielsweise die Entfernung zwischen einem Nutzer und nahe gelegenen Points of Interest ermitteln und sie nach Entfernung sortieren.

Versionsanforderungen

Für das Feature für Geodatenabfragen ist eine Firestore Enterprise-Datenbank erforderlich.

Hinweis

Wenn Sie eine Geodatenabfrage ausführen möchten, müssen Sie zuerst Geodatenindizes für die Felder erstellen, die Sie durchsuchen müssen.

Geodatenabfrage ausführen

Verwenden Sie für eine Geodatenabfrage den Ausdruck geoDistance im Parameter query der Phase search(...).

Es wird nur der Operator „kleiner oder gleich“ (<=) unterstützt. Die Entfernung wird in Metern gemessen.

Die folgende Abfrage findet beispielsweise alle Restaurants im Umkreis von 1.000 Metern um den aufgeführten Geopunkt.

Web version 9

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