Soy bastante nuevo en JSON, y estoy tratando de obtener la latitud y la longitud de una ciudad geocodificada de la API de Google Maps usando curl. La función que estoy usando es:Uso de PHP (curl) para extraer datos de JSON (Google Maps API)
function geocode($city){
$cityclean = str_replace (" ", "+", $city);
$details_url = "http://maps.googleapis.com/maps/api/geocode/json?address=" . $cityclean . "&sensor=false";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $details_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$geoloc = json_decode(curl_exec($ch), true);
$step1 = $geoloc['results'];
$step2 = $step1['geometry'];
$coords = $step2['location'];
print $coords['lat'];
print $coords['lng'];
}
El objetivo de todo esto es para tirar de los valores de latitud y de GNL de los Resultados -> Geometría -> Localización conjunto de la siguiente JSON:
{
"status": "OK",
"results": [ {
"types": [ "locality", "political" ],
"formatted_address": "Westminster, London, UK",
"address_components": [ {
"long_name": "London",
"short_name": "London",
"types": [ "locality", "political" ]
}, {
"long_name": "Westminster",
"short_name": "Westminster",
"types": [ "administrative_area_level_3", "political" ]
}, {
"long_name": "Greater London",
"short_name": "Greater London",
"types": [ "administrative_area_level_2", "political" ]
}, {
"long_name": "England",
"short_name": "England",
"types": [ "administrative_area_level_1", "political" ]
}, {
"long_name": "United Kingdom",
"short_name": "GB",
"types": [ "country", "political" ]
} ],
"geometry": {
"location": {
"lat": 51.5001524,
"lng": -0.1262362
},
"location_type": "APPROXIMATE",
"viewport": {
"southwest": {
"lat": 51.3493528,
"lng": -0.3783580
},
"northeast": {
"lat": 51.7040647,
"lng": 0.1502295
}
},
"bounds": {
"southwest": {
"lat": 51.3493528,
"lng": -0.3783580
},
"northeast": {
"lat": 51.7040647,
"lng": 0.1502295
}
}
}
} ]
}
Sin embargo, no imprime nada. Sé que la función recupera con éxito el JSON de Google y lo trae a mi servidor, como hice una declaración de impresión para el valor 'estado' y me devolvió 'OK'. El problema parece ser cuando trato de profundizar en el JSON.
Disculpa si es un problema sencillo, pero como dije, soy nuevo en esto y me está volviendo loco ahora.
¡Muchas gracias! :)
Funciona muy bien, muchas gracias :) pensé que sería algo que ver con las matrices, como lo había utilizado anteriormente sólo JSON para obtener datos de los contenedores. ¡Gracias de nuevo! : D –
De nada :-) Diviértete! –
Hola, ¿hay forma de obtener latitud larga usando ip del usuario? –