אתם יכולים לבצע שאילתות גיאוגרפיות-מרחביות ב-Cloud Firestore כדי ליצור שירותים עם גישה למיקום. לדוגמה, אתם יכולים למצוא את המרחק בין משתמש לבין נקודות עניין בקרבת מקום, ולמיין אותן מהקרובה ביותר לרחוקה ביותר.
דרישות לגבי המהדורה
כדי להשתמש בתכונה של שאילתות גיאוגרפיות, צריך מסד נתונים של Firestore במהדורת Enterprise.
לפני שמתחילים
כדי לבצע שאילתה גיאוגרפית, קודם צריך ליצור אינדקסים גיאוגרפיים לשדות שבהם רוצים לחפש.
הרצת שאילתה גיאו-מרחבית
כדי לבצע שאילתה גיאו-מרחבית, משתמשים בביטוי geoDistance בפרמטר query של השלב search(...).
יש תמיכה רק באופרטור "קטן מ- או שווה ל-" (<=). המרחק נמדד במטרים.
לדוגמה, השאילתה הבאה מוצאת את כל המסעדות בטווח של 1,000 מטרים מהנקודה הגיאוגרפית שצוינה.
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 */) });