Konuma duyarlı hizmetler oluşturmak için Cloud Firestore bölgesinde coğrafi sorgular gerçekleştirebilirsiniz. Örneğin, bir kullanıcı ile yakındaki önemli yerler arasındaki mesafeyi bulabilir ve bunları en yakından en uzağa doğru sıralayabilirsiniz.
Sürüm gereksinimleri
Coğrafi sorgu özelliği için Firestore Enterprise sürümü veritabanı gerekir.
Başlamadan önce
Coğrafi sorgu gerçekleştirmek için öncelikle arama yapmanız gereken alanlar için coğrafi dizinler oluşturmanız gerekir.
Coğrafi sorgu çalıştırma
Coğrafi sorgu yapmak için geoDistance aşamasının query parametresinde geoDistance ifadesini kullanın.search(...)
Yalnızca küçüktür veya eşittir (<=) operatörü desteklenir. Mesafe metre cinsinden ölçülür.
Örneğin, aşağıdaki sorgu listelenen coğrafi noktanın 1.000 metre yarıçapındaki tüm restoranları bulur.
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 */) });