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