Как выбрать объекты из базы данных по geo координате с условием что координата входит в полигоны объектов?
У меня есть список объектов - больницы города. Для каждой больницы задается один или несколько регионов ее обслуживания. Каждый регион представляет собой полигоны описанные географическими координатами.
Таких больниц в базе данных несколько сотен.
Подскажите какую базу данных лучше использовать (PostgreSQL, Elasticsearch или др.) и как строить запрос чтоб выбрать и рекомендовать человеку только те больницы которые относятся к его региону?
Указал постгре и эластик потому что вижу что у обоих есть функциональность для работы с геоданными, но не могу понять как хранить данные и как сделать такой запрос выборки.
PostgreSQL + PostGIS
У PostGIS есть свой крайне простой синтаксис, например сохраняете объекты как полигоны и можете одной командой выбрать все объекты в которых есть нужная точка.
Полигоны региона можно взять из OSM, дальше простой SELECT Русская документация
Могу сказать за elasticsearch, есть тип данных geoshape https://www.elastic.co/guide/en/elasticsearch/refe... все достаточно просто и быстро. Но с postgresql будет наверное проще, все же это именно база данных, а не поисковый движок, и держать кластер для эластика из минимум трех машин накладней.
Я недавно поиск не elasticsearch делал - мне он очень понравился, но блин напрягает отсутствие русской документации - читаю, но с огромным скрипом, а гугл-транслейт порой только путает...
Спасибо за наводку, посмотрю