2010-02-08 113 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; 
}