Запрос местоположения между 2 GeoPoints - PullRequest
1 голос
/ 06 июля 2019

С GeoFirestore Я могу запросить местоположение (широта / долгота), чтобы увидеть, находятся ли какие-либо места в моей коллекции / базе данных в пределах определенного радиуса:

val collectionRef = FirebaseFirestore.getInstance().collection("locations")
val geoFirestore = GeoFirestore(collectionRef)

val location1 = GeoPoint(37.7832, -122.4056)
val location2 = GeoPoint(37.3832, -121.4056)
val geoQuery = geoFirestore.queryAtLocation(location1, 0.6)

Однако я хочузапросить 3-е местоположение между location1 и location2.

Например, предположим, что location1 - это Мельбурнская Центральная, а location2 - это Мантра в Парке. Могу ли я запросить местоположение в прямоугольнике?

enter image description here

1 Ответ

1 голос
/ 06 июля 2019

GeoFirestore начинается с запроса документов на основе GeoHash.Это приводит к примерно прямоугольной форме, которую GeoFirestore затем в памяти уменьшает до запрошенного диапазона путем проверки фактического расстояния каждого документа от центра .

При возврате всех документов в прямоугольной формеИзначально GeoFirestore не поддерживает форму, поэтому довольно легко изменить библиотеку, чтобы не выполнять фильтрацию расстояний.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...