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