คุณสามารถทำการค้นหาเชิงพื้นที่ใน Cloud Firestore เพื่อสร้าง บริการที่รับรู้ตำแหน่ง เช่น คุณสามารถหาระยะทางระหว่างผู้ใช้กับจุดสนใจที่อยู่ใกล้เคียง โดยจัดเรียงจากใกล้ที่สุดไปไกลที่สุด
ข้อกำหนดของแต่ละรุ่น
ฟีเจอร์การค้นหาเชิงพื้นที่ต้องใช้ฐานข้อมูล Firestore Enterprise Edition
ก่อนเริ่มต้น
หากต้องการทำการค้นหาเชิงพื้นที่ คุณต้องสร้างดัชนีเชิงพื้นที่สำหรับช่องที่คุณต้องการค้นหาก่อน create geospatial indexes for the fields you need to search through.
เรียกใช้การค้นหาเชิงพื้นที่
หากต้องการทำการค้นหาเชิงพื้นที่ ให้ใช้การแสดงผล 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 */) });