שימוש באילתות גיאו-מרחביות

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