PHP Decode Google Geocodificarea API JSON Breaks Când Response Conține "/"

voturi
0

Mai jos este codul relevant în cererea mea .....

<?
$jsonData   = file_get_contents($url);
        $data = json_decode($jsonData, TRUE);
        $lat = $data['results']['0']['geometry']['location']['lat'];
        $lng = $data['results']['0']['geometry']['location']['lng'];
        $formattedAddress = $data['results']['0']['formatted_address'];
        $acomp = $data['results']['0']['address_components'];
        foreach ($acomp as $acompArray) {
            if (in_array(neighborhood, $acompArray[types])) {
                $neighborhood = $acompArray[long_name];
            }
        }
$acomp = $data['results']['0']['address_components'];
foreach ($acomp as $acompArray) {
    if (in_array(neighborhood, $acompArray[types])) {
         $neighborhood = $acompArray[long_name];
    }
}
?>

Mai jos este răspunsul JSON De la API-ul geocoder Google (unul dintre exemplele care au izbucnit)

{
   results : [
      {
         address_components : [
            {
               long_name : 3900,
               short_name : 3900,
               types : [ street_number ]
            },
            {
           long_name : Winchell Avenue,
           short_name : Winchell Ave,
           types : [ route ]
        },
        {
           long_name : Oakland/Winchell,
           short_name : Oakland/Winchell,
           types : [ neighborhood, political ]
        },
        {
           long_name : Kalamazoo,
           short_name : Kalamazoo,
           types : [ locality, political ]
        },
        {
           long_name : Kalamazoo,
           short_name : Kalamazoo,
           types : [ administrative_area_level_2, political ]
        },
        {
           long_name : Michigan,
           short_name : MI,
           types : [ administrative_area_level_1, political ]
        },
        {
           long_name : United States,
           short_name : US,
           types : [ country, political ]
        },
        {
           long_name : 49008,
           short_name : 49008,
           types : [ postal_code ]
        }
     ],
     ---A LOT MORE BUT DELETED THE IRRELEVANT PORTIONS---
}

Problema pare să se întâmple cu cartier „Oakland / Winchell“, teoria mea este că ea conține un „/“, care pare să-l întoarcă nimic ... Cum pot remedia această problemă?

Întrebat 23/02/2013 la 21:05
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
-1
$json_url = "http://maps.googleapis.com/maps/api/geocode/json?latlng=".$row2[lat].",".$row2[lng]."&sensor=true";
// Initializing curl
$ch = curl_init( $json_url );

// Setting curl options
curl_setopt_array( $ch, $options );

// Getting results                                                                     
    $data = curl_exec($ch);
    curl_close($ch);

// parse the json response
    $jsondata = json_decode($data,true);
    $results = $jsondata['results'][0];
    $addr =$results['formatted_address'];
Publicat 14/10/2013 la 23:33
sursa de către utilizator

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more