Как я могу получить соседние города из данного города? - PullRequest
1 голос
/ 10 января 2011

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

Мой скрипт должен быть на PHP ... Есть ли API, чтобы это выяснить ....

Пожалуйста, помогите мне ...

Спасибо ...

Ответы [ 2 ]

5 голосов
/ 10 января 2011

Это отличный ресурс: code.google.com / apis / maps / article / phpsqlsearch.html # findnearsql

Базовый город: Lat: 37 Lng: -122

SELECT id, ( 6371 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < 50 ORDER BY distance LIMIT 0 , 20;

Тот же принцип, что и у решения Tricker.

0 голосов
/ 10 января 2011

Я написал что-то вроде скриптов, которые вычисляют расстояния между координатами. Вы можете сделать это, когда у вас есть 2 координаты:

base :
 - latitude
 - longitude

city :
 - latitude
 - longititude

Вы должны передать гео-координаты базового города, затем вам нужно отправить cURL на сервер Google или Yahoo (зависит от того, какой геокодер api вы хотите), чтобы получить координаты города.

Теперь вопрос, из каких городов у вас есть координаты? если у вас его нет, вы можете купить базу данных почтового индекса (тогда вы можете получить свои координаты за пределами города, который хотите иметь). когда у вас есть координаты от города, вы можете выполнить сложный расчет как результат расстояния. После этого вы можете посмотреть, будет ли результат / расстояние больше или меньше 50. Если меньше, вы можете вернуть его как город в диапазоне.

это не то, что вы делаете за несколько минут

...