更新:下列方法不在適用..
因公司需要解析地理服務…
上網找尋後發現Google有好物…
因此在此紀錄一下…
如果無申請API,一天上限2500次…
以下為google的連結範例…
http://maps.googleapis.com/maps/api/geocode/json?address=%E5%AD%94%E6%98%8E&sensor=false
接者示範在 PHP SERVER 時候該如何操作並取回資料…
支援顯示的語言 請參照 如未設定預設為英文
function get_Adr_spilt($googleQuery)
{
//再傳送地址去分析時,要先將文字轉換成URL格式
$url = 'https://maps.googleapis.com/maps/api/geocode/json?address='.urlencode($googleQuery).'&sensor=false&language=zh-TW&key=Your_API_KEY';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //使用https方式POST
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //但關閉驗證SSL憑證
//將資料JSON PARSE出來
$result = json_decode(curl_exec($ch),TRUE);
//關閉連線
curl_close($ch);
//宣告需要儲存的地方 直接預設值
$objTemp;
$objTemp["ZIP"] = ""; //郵遞號碼
$objTemp["Cnty"] = "--"; //國家
$objTemp["Counties"] = "--"; //縣市
$objTemp["City"] = "--"; //區域
if($result["status"] == "OK") //如果回傳OK執行
{
//將資料取出 (Google 資料可能回傳多筆,請依據自己所需做調整)
$Data = $result["results"][0]["address_components"];
for($i = 0 ; $i < count($Data) ; $i++)
{
//參照手冊依續取出所需資料
switch(strval($Data[$i]["types"][0]) )
{
case "postal_code": //郵遞區號
$objTemp["ZIP"] = $Data[$i]["long_name"];
break;
case "country": //國家
$objTemp["Cnty"] = $Data[$i]["long_name"];
break;
case "administrative_area_level_1" ://縣市
$objTemp["Counties"] = $Data[$i]["long_name"];
break;
case "locality" : //區域
$objTemp["City"] = $Data[$i]["long_name"];
break;
}
}
}
//回傳
return $objTemp;
}
之後只要將地址傳入此函數…
即可解析出所需要的資訊…