Я хотел бы реализовать способ отображения списка сохраненных адресов, отсортированных по близости к заданному адресу.
Адреса в списке будут храниться в таблице базы данных. Отдельные части имеют отдельные поля (у нас есть поля для почтового индекса, названия города и т. Д.), Поэтому это не просто гигант varchar
. Они вводятся пользователем и из-за особенностей системы не всегда могут быть завершены (некоторые могут не указывать почтовый индекс, а другие могут иметь немного больше, чем город и штат).
Несмотря на то, что это приложение для интрасети, у меня нет проблем с использованием внешних ресурсов, включая доступ к веб-службам в Интернете и тому подобное. Я бы на самом деле предпочел бы это вместо того, чтобы кататься, если это не будет тривиально. Если Google или Yahoo! уже предоставляет бесплатный сервис, я более чем готов его проверить. Ключевое слово: оно должно быть бесплатным, так как я не вправе вносить какие-либо дополнительные затраты в этот проект для этой функции, так как это уже, так сказать, бонусный бонус.
Я думаю об этом так же, как многие кирпичные и минометные магазины делают свою функцию "Найти место". Показывать его в простой таблице, отсортированной соответствующим образом, и отображать расстояние (скажем, в милях) - это здорово. Показывать составление карты еще круче, но я определенно могу смириться с возвращением расстояния и обработкой всех последующих отображений и сортировок.
Проблема простых алгоритмов расстояния заключается в природе данных. Поскольку весь адрес или его часть могут быть неопределенными, у меня нет ничего удобного, как координаты широты и долготы. Кроме того, даже если я сделаю необходимые почтовые индексы, 90% адресов, вероятно, будут иметь те же пять почтовых индексов.
Хотя это не должно быть невероятно быстрым, все, что, как мы знаем, может показаться на странице более чем на семь секунд из-за задержки, может оказаться слишком долгим для обычного пользователя. Если такой гипотетический сервис поддерживает одновременную отправку пакета адресов, а не запросы по одному, это было бы здорово. Тем не менее, я не должен думать, что список адресов будет превышать 50 всего, если так много.