استفاده از پرس‌وجوهای مکانی

شما می‌توانید در Cloud Firestore پرس‌وجوهای مکانی انجام دهید تا سرویس‌های آگاه از موقعیت مکانی ایجاد کنید. به عنوان مثال، می‌توانید فاصله بین یک کاربر و نقاط مورد علاقه نزدیک را پیدا کنید و آنها را از نزدیکترین به دورترین مرتب کنید.

الزامات نسخه

ویژگی جستجوی مکانی به یک پایگاه داده نسخه سازمانی Firestore نیاز دارد.

قبل از اینکه شروع کنی

برای انجام یک جستجوی مکانی، ابتدا باید برای فیلدهایی که نیاز به جستجو در آنها دارید، شاخص‌های مکانی ایجاد کنید .

اجرای یک پرس و جوی مکانی

برای انجام یک پرس‌وجوی مکانی، از عبارت geoDistance در پارامتر query مرحله search(...) استفاده کنید.

فقط عملگر کوچکتر یا مساوی ( <= ) پشتیبانی می‌شود. فاصله بر حسب متر اندازه‌گیری می‌شود.

برای مثال، کوئری زیر تمام رستوران‌هایی را که در فاصله ۱۰۰۰ متری از نقطه جغرافیایی ذکر شده قرار دارند، پیدا می‌کند.

Web

firestore.pipeline().collection('restaurants')
  .search({
    query: field('location')
      .geoDistance(new GeoPoint(38.989177, -107.065076))
      .lessThan(1000 /* m */)
  });
آی‌او‌اس
firestore.pipeline().collection("restaurants")
    .search(
        query: Field("location")
            .geoDistance(GeoPoint(latitude: 38.989177, longitude: -107.065076))
            .lessThan(1000)
    )
اندروید
firestore.pipeline()
        .collection("restaurants")
        .search(new SearchOptions()
                .withQuery(field("location")
                        .geoDistance(new GeoPoint(38.989177, -107.065076))
                        .lessThan(1000 /* meters */)));
نود جی اس
firestore.pipeline().collection('restaurants')
  .search({
    query: field('location')
      .geoDistance(new GeoPoint(38.989177, -107.065076))
      .lessThan(1000 /* m */)
  });