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