Geospatial-Abfragen verwenden
Sie können in Firestore Geodatenabfragen ausführen, um standortbezogene Dienste zu erstellen. Sie können beispielsweise die Entfernung zwischen einem Nutzer und POIs in der Nähe ermitteln und diese nach Entfernung sortieren.
Versionsanforderungen
Für die Funktion für Geodatenabfragen ist eine Firestore Enterprise-Datenbank erforderlich.
Hinweis
Wenn Sie eine Geodatenabfrage ausführen möchten, müssen Sie zuerst Geodatenindexe für die Felder erstellen, die Sie durchsuchen möchten.
Geodatenabfrage ausführen
Wenn Sie eine raumbezogene Abfrage ausführen möchten, verwenden Sie 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.
Mit der folgenden Abfrage werden beispielsweise alle Restaurants im Umkreis von 1.000 Metern um den angegebenen Geopunkt gefunden.
Webversion 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 */) });