更新:下列方法不在適用..
因公司需要解析地理服務…
上網找尋後發現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; }
之後只要將地址傳入此函數…
即可解析出所需要的資訊…