根據標準google推出的做法,我們需要串接
http://maps.googleapis.com/maps/api/geocode/json?address=地址
這支API ,不過這支API是有限制使用量的
最近遇到一個問題就是我要批次轉換地址和經緯度,結果就被封鎖起來了
現在這個問題有解決方案了,亂逛亂逛的結果讓我找到另一支隱藏的API。(正確來源我也不知道打哪來的),順手就寫成一個 function 備用吧!
下面的兩個 function 需要同時使用,因為getLatLng會需要用到object_2_array這個函式
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
後學我也需要一個簡單的範例介紹
學習怎麼用
如果可以也請mail一份給我
chanchinsung@gmail.com
謝謝您