Как я могу в режиме реального времени искать результаты, основанные на расстоянии вождения? - PullRequest
1 голос
/ 01 марта 2012

У меня есть база данных событий (в Великобритании) и их почтовые индексы (почтовые индексы).

Пользователь вводит свой почтовый индекс на веб-страницу и нажимает клавишу ввода, после чего какой-то удивительный алгоритм / система впоследствии выдаст список событий в пределах x миль пройденное расстояние от почтового индекса пользователя.

Возможно ли это в режиме реального времени?

Решения, которые я рассмотрел:

  • Кэширование всех расстояний между областями почтовых индексов (4100 из них) и их использование. Несовершенный, потому что почтовые индексы имеют площадь в несколько миль, но пока все в порядке. Самая большая проблема заключается в том, что мне потребуется около 8403000 поездок, и у Google Maps есть ограничения на использование, а API Map Quest медленный, несовершенный для поиска почтовых индексов, и я не хочу проводить на нем атаку DOS.

  • Кэширование всех расстояний между почтовыми индексами событий и моим списком областей почтовых индексов. Все еще несовершенен, потому что будет 1000 событий, и поиск добавленных событий займет слишком много времени.

  • Ограничьте количество кэширования в пути почтовыми индексами в пределах 100 или 200 миль по мере того, как летит ворона. Я не исследовал это, но учитывая размер Великобритании, он может сократить общее количество требуемой поездки на событие на 1/2 или даже на 2/3 ... что лучше, но все равно займет слишком много времени для поиска при добавлении события.

  • Сохраните некоторый график местоположений почтовых индексов с расстояниями пути до следующей области почтовых индексов и используйте что-то вроде A * для поиска на лету близких почтовых индексов. Проблема в том, что у меня нет времени / доступности для внедрения и размещения системы, подобной этой.

Есть ли лучшие решения? Я что-то упустил очевидное?


РЕДАКТИРОВАТЬ: MapQuest поддерживает поддержку поиска расстояния пробега с использованием пользовательских наборов данных POI .

Не дубликат поиска близости , так как я хочу близости расстояния езды, а не близости широты / долготы.

Ответы [ 2 ]

0 голосов
/ 09 марта 2012

Как я добавил в качестве редактирования:

Похоже, что MapQuest поддерживает поиск пробега с использованием пользовательских наборов данных POI .

К сожалению, как и должно было случиться, из-за ограничений данных в MapQuest заказчик решил использовать менее интересное решение!

0 голосов
/ 06 марта 2012

Я не знаю о качестве OpenStreetMap в Великобритании, но вы можете скачать их данные.Если качество данных достаточно хорошее и содержит информацию почтового индекса, вы можете рассчитать все, что вы хотите, используя их данные, не совершая DOS-атаку на какое-либо онлайн-хранилище данных.

...