Coğrafi arama özelliğini 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 arama özelliği için Firestore Enterprise sürümü veritabanı gerekir.

Başlamadan önce

Coğrafi arama yapmak için öncelikle arama yapmanız gereken alanlar için coğrafi indeksler oluşturmanız gerekir.

Coğrafi arama yapmak için search(...) aşamasının query parametresinde geoDistance ifadesini kullanın.

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