Необходимо отсортировать почтовые адреса в таблице базы данных в последовательности - PullRequest
0 голосов
/ 29 ноября 2011

Я разрабатываю приложение для Android с маршрутизацией почтовых адресов.

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

Я думал как-то создать первичный ключ в таблице для числа, которое мы можем легко отсортировать в порядке возрастания. Это облегчило бы создание манифеста для драйвера.

Я исследовал и обнаружил, что существует нечто, называемое WOEID (Где на Земле ID), который, я думаю, представляет регион, но я не уверен, будет ли это хорошо для нас, так как 2 почтовых адреса в одном районе могут использовать тот же WOEID.

Например, эти 3 адреса имеют одинаковый WOEID:

100 Bowden St., Lowell, MA
131 Stedman St., Lowell, MA
50 Stromquest Ave., Lowell, MA

Идея использования единственного числа, такого как WOEID, идеально подходит для нас, но нам нужно отсортировать адреса, подобные этим, чтобы мы знали, какие из них ближе всего друг к другу.

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

Может быть, есть способ геокодировать или преобразовать значения широты и долготы в одно число, которое мы можем использовать.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 03 декабря 2011

Я нашел веб-сайт, который позволяет мне делать обратное геокодирование.Он возвращает широту и долготу.

Я немного поэкспериментировал и обнаружил, что могу добавить широту и долготу вместе, чтобы получить одно число.Поскольку точный адрес веб-сайта даст не совсем то, что я ищу, я просто указываю улицу, город и штат США.Затем я могу использовать возвращенную широту и долготу, а затем отсортировать домашние адреса в порядке возрастания чисел.

Например, у нас есть много улиц, которые очень похожи на сетки, поэтому 1 число от сложения широты и долготы представляет множество домов на 1 конкретной улице.На другой улице в одном квартале я сделал то же самое.Теперь все, что мне нужно сделать, это просто перечислить все в таблице базы данных следующим образом: город, выбранный из раскрывающегося списка, штат США, также выбранный из раскрывающегося списка, затем номер геокодирования для каждой улицы, за которым следуют номера домов.

Вот веб-сайт, который я использовал, чтобы получить Геокодирование вместе с примером адреса улицы:

http://where.yahooapis.com/geocode?q=stedman+st,+lowell,+ma
0 голосов
/ 29 ноября 2011

То есть проблемы возникают, когда несколько адресов используют один и тот же WOEID? Я не знаю, сколько ресурсов доступно, но не может ли быть идеей передать эти данные какому-то API, например, Google Maps, и рассчитать расстояние от вашей позиции до них?

Если вы хотите избежать Google, то по-настоящему базовым подходом может быть расчет самостоятельно. (Хотя это было бы больше оценки.)

Однако у меня сложилось впечатление, что вы хотите найти лучший маршрут по общему расстоянию, поэтому я думаю, что ваша проблема также связана с проблемой путешествующего продавца

Учитывая список городов и их попарных расстояний, задача состоит в том, чтобы найдите самый короткий тур, который посещает каждый город ровно один раз.

...