Как выбрать почтовые индексы в определенной области / диапазоне?

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

например:

user - zip code
1    - 24533
2    - 56924
3    - 35993
4    - 13435

почтовый индекс администратора 39824

Ему нужно отобрать людей в районе 5 километров по почтовому индексу. Как это может произойти с использованием PHP или каких-либо других решений?

3 ответа

Решение

поиск по почтовому индексу php/mysql

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

http://www.micahcarrick.com/php-zip-code-range-and-distance-calculation.html

Очень просто Вам просто нужны широта и долгота почтовых индексов, по отношению к которым почтовый индекс вы хотите получить почтовые индексы. Если у вас нет долготы и широты, получите это от Google, это бесплатно. Вы можете легко получить широту и долготу по почтовому индексу.

Например, вы хотите получить почтовые индексы за 100 миль от "H8t"

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

Сначала я пишу запрос к моей таблице, чтобы получить широту и долготу

SELECT * FROM Tbl_Master_ZIPCodes WHERE ZIPcode ='H8T' 

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

SELECT distinct zipcode, 
3963 * (ACOS((SIN(45.456700/57.2958) * SIN(latitude/57.2958)) + (COS(45.456700/57.2958) * COS(latitude/57.2958) * COS(longitude/57.2958 - -73.712000/57.2958)))) AS distance 
FROM Tbl_Master_ZIPCodes 
WHERE 3963 * (ACOS((SIN(45.456700/57.2958) * SIN(latitude/57.2958)) + (COS(45.456700/57.2958) * COS(latitude/57.2958) * COS(longitude/57.2958 - -73.712000/57.2958)))) <= 100 Order by Distance 

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

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

Другие вопросы по тегам