1
我想知道是否有人可以用我有的代碼來幫助我。PHP - 從Google Maps API返回值
我有一個函數,如下所示:
function getAddressComponent($lat, $lng, $field) {
$returnValue = '-';
$url = 'http://maps.googleapis.com/maps/api/geocode/json?latlng='.trim($lat).','.trim($lng).'&sensor=false';
$data = @file_get_contents($url);
$json = json_decode($data, TRUE);
if (isset($json['results'])) {
foreach($json['results'] as $result) {
foreach ($result['address_components'] as $address_component) {
$types = $address_component['types'];
if (in_array($field, $types) && sizeof($types) == 1) {
$returnValue = $address_component['short_name'];
}
}
}
}
return $returnValue;
}
我這樣調用該函數:
$returnAddress = $this->getAddressComponent(-34.872693, 138.490391, 'administrative_area_level_1');
如果我跑了administrative_area_level_1類型的函數,它沒有返回,但如果我使用$ url並在url中輸入lat和lng,它返回該類型的結果...數組看起來像這樣。
{
"results" : [
{
"address_components" : [
{
"long_name" : "22",
"short_name" : "22",
"types" : [ "street_number" ]
},
{
"long_name" : "Blue-Sails Court",
"short_name" : "Blue-Sails Ct",
"types" : [ "route" ]
},
{
"long_name" : "West Lakes",
"short_name" : "West Lakes",
"types" : [ "locality", "political" ]
},
{
"long_name" : "South Australia",
"short_name" : "SA",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "Australia",
"short_name" : "AU",
"types" : [ "country", "political" ]
},
{
"long_name" : "5021",
"short_name" : "5021",
"types" : [ "postal_code" ]
}
],
它還爲當地和國家返回'-'
。
我希望它返回一個'-'
如果它不存在,但在這種情況下,它確實存在,它做我的頭。
任何幫助將不勝感激。
乾杯,
美麗...這已經完成了...非常感謝! – BigJobbies 2014-10-30 04:32:39
@BigJobbies確定男人很高興這有幫助 – Ghost 2014-10-30 04:33:18