استخدام طلبات البحث الجغرافية المكانية

يمكنك إجراء طلبات بحث جغرافية مكانية في Cloud Firestore لإنشاء خدمات تستند إلى الموقع الجغرافي. على سبيل المثال، يمكنك العثور على المسافة بين مستخدم ونقاط الاهتمام القريبة، وترتيبها من الأقرب إلى الأبعد.

متطلبات الإصدار

تتطلّب ميزة طلبات البحث الجغرافية المكانية قاعدة بيانات Firestore Enterprise Edition.

قبل البدء

لإجراء طلب بحث جغرافي مكاني، عليك أولاً إنشاء فهارس جغرافية مكانية للحقول التي تحتاج إلى البحث فيها.

إجراء طلب بحث جغرافي مكاني

لإجراء طلب بحث جغرافي مكاني، استخدِم تعبير 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 */)
  });