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

คุณสามารถทำการค้นหาเชิงพื้นที่ใน 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 */)
  });