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

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

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

Указал постгре и эластик потому что вижу что у обоих есть функциональность для работы с геоданными, но не могу понять как хранить данные и как сделать такой запрос выборки.
  • Вопрос задан
  • 263 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Fixid
PostgreSQL + PostGIS
У PostGIS есть свой крайне простой синтаксис, например сохраняете объекты как полигоны и можете одной командой выбрать все объекты в которых есть нужная точка.
Полигоны региона можно взять из OSM, дальше простой SELECT
Русская документация
Ответ написан
Комментировать
hOtRush
@hOtRush
Могу сказать за elasticsearch, есть тип данных geoshape https://www.elastic.co/guide/en/elasticsearch/refe... все достаточно просто и быстро. Но с postgresql будет наверное проще, все же это именно база данных, а не поисковый движок, и держать кластер для эластика из минимум трех машин накладней.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы