У меня есть сайт, на котором пользователи начинают вводить свой почтовый индекс.
У меня есть стол с разными магазинами, в котором также есть почтовые индексы, принадлежащие магазинам.
Можно ли получить почтовые индексы внутри, скажем, радиус шириной 5 км от пользователя, введенного пользователем?
Поэтому я могу запросить базу данных и найти все магазины рядом с пользователем.
Могу ли я использовать Карты Google для этого? Должен ли я получить предварительно рассчитанный список всех zipcodes (одна страна) и их координаты? Любые другие предложения?
Вам понадобится эта широта и долгота каждого почтового индекса , а затем используйте Формулу Хаверсина, чтобы получить приблизительное расстояние.
вы можете хранить долготу / широту для каждого почтового индекса. Эти данные доступны бесплатно в сети, например, здесь http://www.boutell.com/zipcodes/ . Затем вы найдете zipcodes в радиусе, используя большую функцию расстояния по кругу, которая обсуждается здесь MySQL Great Circle Distance (формула Хаверсина)
В Google есть руководство по этому вопросу, которое должно указывать на вас в правильном направлении. Бит тригонометрии в запросе SQL является единственной трудной частью. На первый взгляд, есть два способа сделать это:
Первое было бы более точным, но либо работает. Если вы вычисляете расстояние от почтового индекса, а не от адреса, вам все равно нужно искать координаты lat / long для этого почтового индекса.
вам нужно получить широту / долготу от почтового индекса, а затем вы можете найти места рядом с помощью карт или геометрий api. перейдите на google maps api или YQL geo api.