Как вы определяете, каковы соседние почтовые индексы?

StackOverflow https://stackoverflow.com/questions/1278635

  •  16-09-2019
  •  | 
  •  

Вопрос

У меня ситуация, похожая на то, что происходит в системе поиска работы, где вы вводите почтовый индекс, по которому ищете работу, и приложение возвращает задания по этому почтовому индексу, а также по почтовым кодам, которые находятся в 5, 10, 15, 20 или 25 милях от этого почтового индекса, в зависимости от настроек, установленных пользователем.

Как бы вы рассчитали соседние местоположения для почтового индекса?

Это было полезно?

Решение

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

http://www.geonames.org/export/web-services.html

Другие советы

Вам нужно получить список почтовых индексов с соответствующими координатами долготы / широты. Погуглите это - существует множество поставщиков услуг.

Затем взгляните на этот вопрос для получения алгоритма вычисления расстояния

Я бы не стал его вычислять, я бы сохранил его в виде фиксированной таблицы в базе данных (только для изменения при изменении распределения почтовых индексов в стране).Создайте отношение "is_neighbor_zip", которое имеет пары (меньший, больший).Чтобы определить, являются ли два кода соседними, проверьте в таблице наличие конкретной пары.Если вам нужны все соседние zip-файлы, возможно, было бы лучше сделать таблицу симметричной.

Вам нужно использовать базу данных ГИС и запросить у нее почтовые индексы, которые находятся поблизости от вашего текущего местоположения.

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

Единственным исключением является то, что почтовые индексы + 4 являются подразделами более крупного почтового индекса.Вы можете предположить, что любые почтовые индексы + 4, которые имеют один и тот же почтовый индекс, близки друг к другу.

Раньше я работал над рационализацией обработки почтовых индексов в компании, вот несколько практических замечаний, которые я сделал:

Тестирование почтовых индексов

Надеюсь, есть другая полезная информация.

Всякий раз, когда вы создаете почтовый индекс, геокодируйте его (напримерgoogle geocoder api, сохраняя широту и логитуду) затем загуглите формуляр haversine, он рассчитает расстояние (по прямой) от контрольной точки, которое также может быть геокодировано, если это город или почтовый индекс.

Чтобы прояснить еще кое-что:

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

Вы можете запросить:

SELECT * FROM photos p WHERE p.long < 60 AND p.long > 50 AND p.lat > -10 AND p.lat > 10

Чтобы найти все фотографии Великобритании и т.д., потому что Великобритания находится между 50 и 60 градусами долготы и + -10 широтой (возможно, я переключил long на lat, я нечетко разбираюсь в этом)

Если вы хотите найти расстояние, то вам нужно будет поискать в Google формулу haversine и ввести свои эталонные значения.

Надеюсь, это немного прояснит ситуацию, оставьте комментарий, если вам нужны подробности

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top