שימוש בחיפוש גיאו-מרחבי

אתם יכולים לבצע שאילתות גיאו-מרחביות ב-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 */)
  });