У меня есть база данных событий (в Великобритании) и их почтовые индексы (почтовые индексы).
Пользователь вводит свой почтовый индекс на веб-страницу и нажимает клавишу ввода, после чего какой-то удивительный алгоритм / система впоследствии выдаст список событий в пределах x миль пройденное расстояние от почтового индекса пользователя.
Возможно ли это в режиме реального времени?
Решения, которые я рассмотрел:
Кэширование всех расстояний между областями почтовых индексов (4100 из них) и их использование. Несовершенный, потому что почтовые индексы имеют площадь в несколько миль, но пока все в порядке. Самая большая проблема заключается в том, что мне потребуется около 8403000 поездок, и у Google Maps есть ограничения на использование, а API Map Quest медленный, несовершенный для поиска почтовых индексов, и я не хочу проводить на нем атаку DOS.
Кэширование всех расстояний между почтовыми индексами событий и моим списком областей почтовых индексов. Все еще несовершенен, потому что будет 1000 событий, и поиск добавленных событий займет слишком много времени.
Ограничьте количество кэширования в пути почтовыми индексами в пределах 100 или 200 миль по мере того, как летит ворона. Я не исследовал это, но учитывая размер Великобритании, он может сократить общее количество требуемой поездки на событие на 1/2 или даже на 2/3 ... что лучше, но все равно займет слишком много времени для поиска при добавлении события.
Сохраните некоторый график местоположений почтовых индексов с расстояниями пути до следующей области почтовых индексов и используйте что-то вроде A * для поиска на лету близких почтовых индексов. Проблема в том, что у меня нет времени / доступности для внедрения и размещения системы, подобной этой.
Есть ли лучшие решения? Я что-то упустил очевидное?
РЕДАКТИРОВАТЬ: MapQuest поддерживает поддержку поиска расстояния пробега с использованием пользовательских наборов данных POI .
Не дубликат поиска близости , так как я хочу близости расстояния езды, а не близости широты / долготы.