Cloud Firestore에서 지리 공간 쿼리를 실행하여 위치 인식 서비스를 빌드할 수 있습니다. 예를 들어 사용자와 주변 관심 장소 간의 거리를 찾고 가장 가까운 곳부터 가장 먼 곳까지 정렬할 수 있습니다.
버전 요구사항
지리 공간 검색 기능을 사용하려면 Firestore Enterprise 버전 데이터베이스가 필요합니다.
시작하기 전에
지리 공간 검색을 실행하려면 먼저 검색할 필드의 지리 공간 색인을 만들어야 합니다.
지리 공간 검색 실행
지리 공간 검색을 실행하려면 search(...) 단계의 query 매개변수 내에서 geoDistance 표현식을 사용합니다.
'보다 작거나 같음'(<=) 연산자만 지원됩니다. 거리는 미터 단위로 측정됩니다.
예를 들어 다음 쿼리는 나열된 지오포인트에서 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 */) });