2013-03-13 135 views
1

我想要获取谷歌地图API的地址的纬度/经度。我无法解析JSON结果,只是将lat和lng值存储为PHP变量。任何人都可以帮我解析这个?解析谷歌地图API的纬度和经度

这是我到目前为止有:

<?php 

$jsonObject = file_get_contents(
"http://maps.googleapis.com/maps/api/geocode/json? 
address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true"); 

$object = json_decode($jsonObject); 

$lat = $object->results[0]->geometry[0]->location[0]->lat; 
$lng = $object->results[0]->geometry[0]->location[0]->lng; 

echo "$lat, $lng"; 

?> 

这是JSON饲料(纬度/经度值约三分之二下来的代码的方式):

{ 
"results" : [ 
    { 
    "address_components" : [ 
     { 
      "long_name" : "1600", 
      "short_name" : "1600", 
      "types" : [ "street_number" ] 
     }, 
     { 
      "long_name" : "Amphitheatre Parkway", 
      "short_name" : "Amphitheatre Pkwy", 
      "types" : [ "route" ] 
     }, 
     { 
      "long_name" : "Mountain View", 
      "short_name" : "Mountain View", 
      "types" : [ "locality", "political" ] 
     }, 
     { 
      "long_name" : "Santa Clara", 
      "short_name" : "Santa Clara", 
      "types" : [ "administrative_area_level_2", "political" ] 
     }, 
     { 
      "long_name" : "California", 
      "short_name" : "CA", 
      "types" : [ "administrative_area_level_1", "political" ] 
     }, 
     { 
      "long_name" : "United States", 
      "short_name" : "US", 
      "types" : [ "country", "political" ] 
     }, 
     { 
      "long_name" : "94043", 
      "short_name" : "94043", 
      "types" : [ "postal_code" ] 
     } 
    ], 
    "formatted_address" : "1600 Amphitheatre Parkway, Mountain View, CA 94043, USA", 
    "geometry" : { 
     "location" : { 
      "lat" : 37.4216410, 
      "lng" : -122.08550160 
     }, 
     "location_type" : "ROOFTOP", 
     "viewport" : { 
      "northeast" : { 
       "lat" : 37.42298998029150, 
       "lng" : -122.0841526197085 
      }, 
      "southwest" : { 
       "lat" : 37.42029201970850, 
       "lng" : -122.0868505802915 
      } 
     } 
    }, 
    "types" : [ "street_address" ] 
    } 
], 
"status" : "OK" 
} 

回答

3

geometrylocation不是数组,尝试

$lat = $object->results[0]->geometry->location->lat; 
$lng = $object->results[0]->geometry->location->lng; 
+0

谢谢穆萨。你钉了它! – Brandon 2013-03-13 07:48:45