Как вы запрашиваете все точки, радиус которых содержит другую точку в Firestore Firebase? - PullRequest
0 голосов
/ 12 апреля 2020

Проблема

У вас есть приложение для доставки еды, в котором вам нужно показать пользователю список ресторанов, которые доставят еду в его дом.

Ограничения

  1. У каждого ресторана есть потенциально различный радиус доставки.
  2. Ваша база данных ресторанов - Firefase's Firestore.

Имейте в виду

  1. Это веб-интерфейс проект, и я использую библиотеку Firebase JavaScript. Однако, если вы чувствуете, что можете ответить на вопрос абстрактно или с другой реализацией, пожалуйста, go впереди.
  2. Меня не интересует реализация в реальном времени, просто одноразовая список ресторанов, которые соответствуют критериям.
  3. Я знаком с использованием геохешей для запроса ближайших точек, используя geofirestore- js или geofirex . Есть несколько вопросов StackOverflow об этом . Однако это не то, о чем я спрашиваю, так как необходимо учитывать радиус доставки каждой запрашиваемой точки. Не имеет значения, насколько близки рестораны к пользователю, только если радиус их доставки покрывает их местоположение.
  4. Любая реализация geoha sh должна обеспечить решение для ее крайних случаев .

Пример

enter image description here

У нас есть 3 ресторана: A , B и C. Они хранятся в нашей базе данных Firestore как документ, содержащий положение (широта / долгота, геоха sh, оба, что бы вы ни выбрали) и радиус доставки в км (хотя единица измерения не важна).

У нас также есть текущая позиция пользователя в клиенте клиента нашего приложения доставки.

Вы заметите, что ресторан C - самый близкий к нашему пользователю, но единственный, который не доставляет к местоположению нашего пользователя. Поэтому наш запрос должен возвращать только рестораны A и B .

Итак, мой вопрос:

  1. Как вы запрашиваете все точки , чей радиус содержит другую точку в Firestore Firebase?

Или, в этом сценарии:

Как вы запрашиваете все рестораны , чей радиус доставки содержит местоположение нашего пользователя в Firestore Firebase?

I'm конечно, есть лучшие способы выразить это, но это настолько далеко, насколько мои знания по этому вопросу меня увлекли. Заранее спасибо.


Иконки Smashicons www.flaticon.com

Иконки Freepik от www.flaticon.com
...