2010-02-08 8 views
1

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

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

+1

Я гавань использовать один в то время, и даже тогда только геокодируете полные адреса, но я думаю, что почти любая карта API (Google, Yahoo, и т.д ..) собирается, чтобы позволить вам сделать это. Вероятно, это не один вызов api, но функциональность должна быть там, чтобы реализовать его на вашем конце, как только у вас есть геоданные для начальной точки. – prodigitalson

+0

Спасибо за ваш комментарий. Я проверил API Google, но немного смутился. Я загрузил геоданные из http://ipinfodb.com/ для моей работы. Он имеет всю необходимую информацию. Я нашел API, чтобы получить расстояние между двумя городами (почтовые индексы), но, к сожалению, я должен проверить все города, чтобы получить требуемый результат. Я уверен, что должен быть какой-то способ получить его простым способом. Если вы посмотрите на http : //www.geobytes.com/IpLocator.htm в правой части окна они обеспечивают все города ближе к вашему IP. Я немного искал то же самое, но в моем случае пользователь вводит информацию о городе и расстояние. -Kaveri – user268982

ответ

1

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

/** 
* @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; 
}