2010-02-08 66 views
1

我正在构建一个应用程序,它需要'城市','州'(仅适用于美国)和距离(半径)作为用户输入,输出将是该半径内的所有城市。有没有免费或付费的网络服务可用于此?城市附近城市Webservice或PHP代码

感谢您的帮助 问候 卡佛里

+1

我还没有使用一个在一段时间,也仅针对地理编码完整的地址,但我认为几乎任何地图API(谷歌,雅虎等)会允许你这样做。它可能不是一个单一的API调用,但功能应该在那里实现它在你的目的地,一旦你有地理数据的初始点。 – prodigitalson 2010-02-08 21:18:20

+0

感谢您的评论。我检查了谷歌API但困惑了一下。我为我的工作从http://ipinfodb.com/下载了地理数据。它有所有需要的信息。我找到了API来获得两个城市之间的距离(邮政编码),但不幸的是,我必须检查所有的城市,以获得所需的结果。我相信应该有一些方法来让它容易的方式。如果你看看http ://www.geobytes.com/IpLocator.htm在右侧框中,它们提供了距离您的IP更近的所有城市。我是一些寻找相同的东西,但在我的情况下,用户输入城市信息和距离。 -Kaveri – user268982 2010-02-09 20:11:07

回答

1

我个人使用的纬度和经度来定义这样的半径。看看我的代码,如果你需要帮助转换城市来协调谷歌地理编码可以真正有帮助。或者只是回复,我们会看看。

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