Coğrafi sorguları kullanma

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 */)
  });