ใช้การค้นหาทางภูมิศาสตร์

คุณสามารถทำการค้นหาเชิงพื้นที่ใน Cloud Firestore เพื่อสร้างบริการที่รับรู้ตำแหน่ง เช่น คุณสามารถหาระยะทางระหว่างผู้ใช้กับจุดสนใจที่อยู่ใกล้เคียง โดยเรียงจากใกล้ที่สุดไปไกลที่สุด

ข้อกำหนดของแต่ละรุ่น

ฟีเจอร์การค้นหาเชิงพื้นที่ต้องใช้ฐานข้อมูล Firestore Enterprise Edition

ก่อนเริ่มต้น

หากต้องการทำการค้นหาเชิงพื้นที่ คุณต้องสร้างดัชนีเชิงพื้นที่สำหรับช่องที่ต้องการ ค้นหาก่อน

เรียกใช้การค้นหาเชิงพื้นที่

หากต้องการทำการค้นหาเชิงพื้นที่ ให้ใช้นิพจน์ 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 */)
  });