PHP Decode di Google Geocode API JSON pause quando risposta contiene "/"

voti
0

Di seguito è riportato il codice in questione nella mia applicazione .....

<?
$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];
    }
}
?>

Qui di seguito è la risposta JSON Da Geocoder API di Google (uno degli esempi che ha rotto)

{
   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---
}

Il problema sembra accadere con il quartiere 'Oakland / Winchell', la mia teoria è che contiene un '/' che sembra farla tornare nulla ... Come faccio a risolvere questo problema?

È pubblicato 23/02/2013 alle 21:05
fonte dall'utente
In altre lingue...                            


1 risposte

voti
-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'];
Risposto il 14/10/2013 a 23:33
fonte dall'utente

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