Проблема
У вас есть приложение для доставки еды, в котором вам нужно показать пользователю список ресторанов, которые доставят еду в его дом.
Ограничения
- У каждого ресторана есть потенциально различный радиус доставки.
- Ваша база данных ресторанов - Firefase's Firestore.
Имейте в виду
- Это веб-интерфейс проект, и я использую библиотеку Firebase JavaScript. Однако, если вы чувствуете, что можете ответить на вопрос абстрактно или с другой реализацией, пожалуйста, go впереди.
- Меня не интересует реализация в реальном времени, просто одноразовая список ресторанов, которые соответствуют критериям.
- Я знаком с использованием геохешей для запроса ближайших точек, используя geofirestore- js или geofirex . Есть несколько вопросов StackOverflow об этом . Однако это не то, о чем я спрашиваю, так как необходимо учитывать радиус доставки каждой запрашиваемой точки. Не имеет значения, насколько близки рестораны к пользователю, только если радиус их доставки покрывает их местоположение.
- Любая реализация geoha sh должна обеспечить решение для ее крайних случаев .
Пример
У нас есть 3 ресторана: A , B и C. Они хранятся в нашей базе данных Firestore как документ, содержащий положение (широта / долгота, геоха sh, оба, что бы вы ни выбрали) и радиус доставки в км (хотя единица измерения не важна).
У нас также есть текущая позиция пользователя в клиенте клиента нашего приложения доставки.
Вы заметите, что ресторан C - самый близкий к нашему пользователю, но единственный, который не доставляет к местоположению нашего пользователя. Поэтому наш запрос должен возвращать только рестораны A и B .
Итак, мой вопрос:
- Как вы запрашиваете все точки , чей радиус содержит другую точку в Firestore Firebase?
Или, в этом сценарии:
Как вы запрашиваете
все рестораны , чей
радиус доставки содержит
местоположение нашего пользователя в Firestore Firebase?
I'm конечно, есть лучшие способы выразить это, но это настолько далеко, насколько мои знания по этому вопросу меня увлекли. Заранее спасибо.
Иконки Smashicons www.flaticon.com
Иконки
Freepik от
www.flaticon.com