Города рядом с городом Веб-сервис или PHP-код

Я создаю приложение, которое принимает «Город», «Штат» (только для США) и расстояние (радиус) в качестве входных данных пользователя, а на выходе будут все города в этом радиусе. Есть ли бесплатный или платный веб-сервис для этого?

Спасибо за вашу помощь С уважением Кавери


person user268982    schedule 08.02.2010    source источник
comment
Я не использовал его некоторое время, и даже тогда только для геокодирования полных адресов, но я думаю, что почти любой API карт (google, yahoo и т. д.) позволит вам сделать это. Вероятно, это не единственный вызов API, но функциональность должна быть там, чтобы реализовать его на вашей стороне, когда у вас есть геоданные для начальной точки.   -  person prodigitalson    schedule 09.02.2010
comment
Спасибо за ваш комментарий. Я проверил Google API, но немного запутался. Для работы я скачал геоданные с сайта ipinfodb.com . В нем есть вся необходимая информация. Я нашел API, чтобы получить расстояние между двумя городами (почтовые индексы), но, к сожалению, мне нужно проверить все города, чтобы получить требуемый результат. Я уверен, что должен быть какой-то способ получить его простым способом. Если вы посмотрите на < href="http://www.geobytes.com/IpLocator.htm" rel="nofollow noreferrer">geobytes.com/IpLocator.htm в правой части окна, они предоставляют все города ближе к вашему ИП . Я ищу то же самое, но в моем случае пользователь вводит информацию о городе и расстоянии. -Кавери   -  person user268982    schedule 09.02.2010


Ответы (1)


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

/**
 * @author Stefano Groenland
 * @return string
 *
 * Uses the geobyte API for nearby cities in a radius arround the lat & long coords of a given location.
 */
public function getLocationsInRadius(){
    $radius = Input::get('radius');
    $lat = Input::get('lat');
    $lng = Input::get('lng');

    $radius = $radius * 0.62137; //km to miles
    $url = 'http://gd.geobytes.com/GetNearbyCities?radius='.$radius.'&Latitude='.$lat.'&Longitude='.$lng.'&limit=999';

    $response_json = file_get_contents($url);

    $response = json_decode($response_json, true);

    return $response;
}
person Stefano Groenland    schedule 05.04.2016