Извлечение ближайшего местоположения точек при учете водоемов - PullRequest
2 голосов
/ 12 апреля 2019

У меня есть база данных баллов (в данном случае, школ), и в моем приложении пользователи ищут ближайшие к ним. Под капотом мы в настоящее время используем ElasticSearch для фильтрации по широте (используя Geo Distance , который получает расстояние по прямой линии. В большинстве мест это работает нормально, но в некоторых прибрежных районах, это позволит подобрать места, в которые невозможно попасть, в приведенном ниже примере радиус в 20 миль будет подбирать школы в Уэстон-сьюпер-Мэр, в действительности 55 миль:

20 mile radius from Cardiff showing Weston-Super-Mare

Изначально я решил использовать API Google Maps Matrix API для фильтрации своих исходных данных при поиске в прямом эфире, но существует ограничение в 25 пунктов назначения на запрос, и так как запросы будут динамическими и пользовательскими. не стоит разбивать эти запросы на маленькие части и вставлять их в фоновую работу.

Есть ли способ выполнить эти расчеты при учете водоемов на уровне базы данных? Школы хранятся в базе данных Postgres, поэтому я думаю об использовании PostGIS и какой-то точке в запросе полигонов, но я не знаю, с чего начать.

Любые идеи очень ценятся!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...