Bạn có thể thực hiện các truy vấn không gian địa lý trong Cloud Firestore để tạo các dịch vụ nhận biết vị trí. Ví dụ: bạn có thể tìm khoảng cách giữa người dùng và các địa điểm yêu thích ở gần, sắp xếp các địa điểm đó từ gần nhất đến xa nhất.
Yêu cầu đối với phiên bản
Tính năng truy vấn không gian địa lý yêu cầu cơ sở dữ liệu Firestore Enterprise Edition.
Trước khi bắt đầu
Để thực hiện một truy vấn không gian địa lý, trước tiên, bạn phải tạo chỉ mục không gian địa lý cho các trường mà bạn cần tìm kiếm.
Chạy truy vấn không gian địa lý
Để thực hiện một truy vấn không gian địa lý, hãy sử dụng biểu thức geoDistance trong tham số query của giai đoạn search(...).
Chỉ hỗ trợ toán tử nhỏ hơn hoặc bằng (<=). Khoảng cách được đo bằng mét.
Ví dụ: truy vấn sau đây sẽ tìm tất cả nhà hàng trong phạm vi 1.000 mét tính từ điểm địa lý được liệt kê.
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 */) });