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

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

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

تتطلّب ميزة طلب البحث الجغرافي الفضائي قاعدة بيانات إصدار Enterprise من Firestore.

قبل البدء

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

تنفيذ طلب بحث جغرافي مكاني

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