#elasticsearch #geospatial #postgis #google-distancematrix-api
#elasticsearch #геопространственный #postgis #google-distancematrix-api
Вопрос:
У меня есть база данных точек (в данном случае школ), и в моем приложении пользователи ищут ближайшие к ним. В настоящее время мы используем ElasticSearch для фильтрации по latlng (используя гео расстояние, которое получает расстояние по мере полета вороны. Для большинства мест это работает нормально, но в некоторых прибрежных районах это приведет к обнаружению мест, до которых невозможно добраться, в приведенном ниже примере в радиусе 20 миль будут расположены школы в Уэстон-Супер-Маре, в действительности 55 миль:
Изначально я решил использовать API-интерфейс матрицы расстояний Google Maps для фильтрации моего начального поиска, но для каждого запроса существует ограничение в 25 пунктов назначения, а поскольку запросы будут динамическими и ориентированными на пользователя, нецелесообразно разбивать эти запросы на мелкие кусочки и вставлять их в список.фоновое задание.
Есть ли какой-либо способ выполнить эти вычисления при учете водоемов на уровне базы данных? Школы хранятся в базе данных Postgres, поэтому я подумал об использовании PostGIS и какой-то точки в запросе полигона, но я понятия не имею, с чего начать поиск.
Любые идеи приветствуются!
Комментарии:
1. Я использовал openrouteservice для создания изохрон. Вы могли бы получить изохрону и пересечь ее с вашими точками, например: digital-geography.com /…