Задать вопрос

Как выбрать объекты из базы данных по geo координате с условием что координата входит в полигоны объектов?

У меня есть список объектов - больницы города. Для каждой больницы задается один или несколько регионов ее обслуживания. Каждый регион представляет собой полигоны описанные географическими координатами.
Таких больниц в базе данных несколько сотен.

Подскажите какую базу данных лучше использовать (PostgreSQL, Elasticsearch или др.) и как строить запрос чтоб выбрать и рекомендовать человеку только те больницы которые относятся к его региону?

Указал постгре и эластик потому что вижу что у обоих есть функциональность для работы с геоданными, но не могу понять как хранить данные и как сделать такой запрос выборки.
  • Вопрос задан
  • 267 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик + ИИ
    9 месяцев
    Далее
  • ProductStar × РБК
    Профессия DevOps-инженер + ИИ
    5 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
@Fixid
PostgreSQL + PostGIS
У PostGIS есть свой крайне простой синтаксис, например сохраняете объекты как полигоны и можете одной командой выбрать все объекты в которых есть нужная точка.
Полигоны региона можно взять из OSM, дальше простой SELECT
Русская документация
Ответ написан
Комментировать
hOtRush
@hOtRush
Могу сказать за elasticsearch, есть тип данных geoshape https://www.elastic.co/guide/en/elasticsearch/refe... все достаточно просто и быстро. Но с postgresql будет наверное проще, все же это именно база данных, а не поисковый движок, и держать кластер для эластика из минимум трех машин накладней.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы