2010-04-24 80 views
2

我想解析从谷歌地图地理编码版本3通过JSON数据。我想获得详细信息,如locaityName,AdministrativeAreaName和状态码。我可以知道如何解析这些数据吗?谢谢解析数据从谷歌地图API与PHP与JSON与PHP

+0

男人,2年后,仍然没有人直接回答你的问题。 – Ray 2012-08-07 18:56:29

回答

0

PHP有json_decode(),将一个JSON数据流转换为PHP数组或对象。

+1

我想解析来自Google地理编码的具体数据,正如我上面提到的。你知道解析这些数据的结构吗?谢谢。 – davidlee 2010-04-24 10:10:50

+1

@ben你为什么不直接发出请求,并用'print_r()'找出自己?这是最简单的方法。 – 2010-04-24 10:16:53

+0

我会试试看。谢谢! – davidlee 2010-04-24 17:02:58

3
function getGoogleAddressCoordinates() 
    { 
     //using the google maps api to get the long and lat coordinates of addresss 
     //using form post variables 
     $address =trim($_POST['address']); 
     $city = trim($_POST['city']); 
     $state = trim($_POST['state']); 

     //formats the address add '+' into space 
     $address = str_replace(' ', '+' ,$address); 
     $city = str_replace(' ', '+', $city); 
     $address = preg_replace("[^A-Za-z0-9]", '+', $address); //remove non alpha numeric chars such as extra spaces. 
     $address_str = $address.',+'. $city.',+'.$state; 
     $geo_url = "http://maps.google.com/maps/api/geocode/json?address=$address_str&sensor=false"; 
     //echo $geo_url; 
     //echo file_get_contents($geo_url); 
     $json_result = json_decode(file_get_contents($geo_url)); 

     $geo_result = $json_result->results[0]; 
     $coordinates = $geo_result->geometry->location; 

     //see if the it is locating the real address or just apox location, or in most cases a bad address 
     if($geo_result->types[0] == 'street_address') 
      $coordinates->valid_address = TRUE; 
     else 
      $coordinates->valid_address = FALSE; 

     return $coordinates; 
    }