利用 google 取得經緯度

根據標準google推出的做法,我們需要串接
http://maps.googleapis.com/maps/api/geocode/json?address=地址
這支API ,不過這支API是有限制使用量的
最近遇到一個問題就是我要批次轉換地址和經緯度,結果就被封鎖起來了

現在這個問題有解決方案了,亂逛亂逛的結果讓我找到另一支隱藏的API。(正確來源我也不知道打哪來的),順手就寫成一個 function 備用吧!


下面的兩個 function 需要同時使用,因為getLatLng會需要用到object_2_array這個函式
function getLatLng($address)
{       
 // $address = urlencode($address);
    $url = 'http://maps.google.com/maps/geo?q='.$address.'';
    $curl = curl_init() ;
    curl_setopt($curl , 
            CURLOPT_URL , 
            "$url") ;
     
    curl_setopt($curl , CURLOPT_RETURNTRANSFER , 1) ;
         
    $info = curl_exec($curl) ;
 
    curl_close($curl) ;
 // print_r($info);
 
         $a = json_decode($info);
   $b = object_2_array($a->Placemark);
  $c = object_2_array($b[0]->ExtendedData);
  $d = object_2_array($c['LatLonBox']);
  // $b = $a->results[0];
  // print_r($d);
  $r['lat'] = $d['north'];
  $r['lng'] = $d['east'];
 if($r['lat'] == ""){
  return false;
 }else{
  return  $r; 
 }
    
}

function object_2_array($result)
{
    $array = array();
    foreach ($result as $key=>$value)
    {
        if (is_object($value))
        {
            $array[$key]=object_2_array($value);
        }
        if (is_array($value))
        {
            $array[$key]=object_2_array($value);
        }
        else
        {
            $array[$key]=$value;
        }
    }
    return $array;
}  

留言

楊建華寫道…
你好:

請問可以用一個簡單的範,例介紹一下怎麼用嗎? 3Q

可以的話,請寄到 meteor0721@gmail.com
chan寫道…
您好

後學我也需要一個簡單的範例介紹
學習怎麼用

如果可以也請mail一份給我
chanchinsung@gmail.com

謝謝您