يمكنك إجراء طلبات بحث جغرافية مكانية في Cloud Firestore لإنشاء خدمات تتعرّف على الموقع الجغرافي. على سبيل المثال، يمكنك العثور على المسافة بين المستخدم ونقاط الاهتمام القريبة، وترتيبها من الأقرب إلى الأبعد.
متطلبات الإصدارات
تتطلّب ميزة طلب البحث الجغرافي المكاني قاعدة بيانات من إصدار Firestore Enterprise.
قبل البدء
لإجراء طلب بحث جغرافي مكاني، عليك أولاً إنشاء فهارس جغرافية مكانية للحقول التي تحتاج إلى البحث فيها.
تنفيذ طلب بحث جغرافي مكاني
لإجراء طلب بحث جغرافي مكاني، استخدِم التعبير 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 */) });