Я хочу отобразить на карте близлежащие точки, хранящиеся в базе данных. Однако точек более 1000, и мне не удается понять, как построить эти данные.
Например, если вы ищете «Макдональдс» с помощью приложения Google Maps, оно покажет ближайший Макдональдс, а не Макдональдс, расположенный в 1000 км.
Я пытаюсь использовать Cloud Firestore от Firebase для своей базы данных, подходит ли это? Думаете, Cloud Firestore для этого не подходит из-за оплаты за документ?
Одни из данных такие:
{
"name": "1",
"cord": {
"lat": ....,
"lon": ....,
},
"type": "pin",
....
}
Я не уверен, подходит ли Firebase Storage для такого объема данных. Вместо использования широты и долготы вы можете использовать геохеши. Они могут помочь вам упростить управление данными о местоположении и их поиск, а также хранить меньше данных и сократить расходы.
Это то, что я ищу! Большое спасибо.
geolocations
, а для хранения файлов. Что касается Firestore, до марта 2024 года использование geohashes
было единственным способом реализации geoqueries
, но теперь вы можете использовать условия диапазона в нескольких полях, и вы можете реализовать geoqueries
гораздо проще и дешевле.
Однако точек более 1000, и мне не удается понять, как построить эти данные.
Речь идет не о том, как структурировать данные, а о ограничении количества документов возвращаемых запросов, посредством вызова limit(x)
.
Например, если вы ищете «Макдональдс» с помощью приложения Google Maps, оно покажет ближайший Макдональдс, а не Макдональдс, расположенный в 1000 км.
Это правильно. Вы можете добиться того же самого с помощью Cloud Firestore. Хотя ответ @Julian может сработать, обратите внимание, что его решение больше не актуально, поскольку Firebase недавно (4 месяца назад) добавила возможность иметь условия диапазона в нескольких полях в одном и том же запросе Firestore.
Итак, чтобы добиться этого, я рекомендую вам посмотреть:
Кроме того, я также рекомендую вам прочитать отличную статью, написанную @FrankvanPuffelen, в которой сравнивается стоимость geohashes
и более новый подход с условиями диапазона в нескольких полях в Firestore:
Я не знаю, почему вы получили отрицательные голоса. но, на мой взгляд, ваш вопрос очень корректен относительно того, как ограничить данные в Firestore, когда дело касается геолокации.