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

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