En una de mis aplicaciones php tengo que averiguar la latitud y longitud del lugar a partir de la dirección.
He probado este código:
$json = file_get_contents("http://maps.google.com/maps/api/geocode/json?address=$address&sensor=false®ion=$region");
$json = json_decode($json);
$lat = $json->{'results'}[0]->{'geometry'}->{'location'}->{'lat'};
$long = $json->{'results'}[0]->{'geometry'}->{'location'}->{'lng'};
Pero está mostrando el siguiente error:
Advertencia: file_get_contents(http://maps.google.com/maps/api/geocode/json?address=technopark, Trivandrun, kerala,India&sensor=false®ion=IND) [function.file-get-contents]: failed to open stream: ¡Solicitud HTTP fallida! HTTP/1.0 400 Bad Request en D:\Projects\lon.php en la línea 4
Por favor, ayúdame a resolver este problema.
$address = str_replace(" ", "+", $address);
Utilice el código anterior antes de file_get_content. significa, utilice el siguiente código
$address = str_replace(" ", "+", $address);
$json = file_get_contents("http://maps.google.com/maps/api/geocode/json?address=$address&sensor=false®ion=$region");
$json = json_decode($json);
$lat = $json->{'results'}[0]->{'geometry'}->{'location'}->{'lat'};
$long = $json->{'results'}[0]->{'geometry'}->{'location'}->{'lng'};
y seguramente funcionará. Como la dirección no admite espacios, sólo admite el signo + en lugar del espacio.
//añade urlencode a tu dirección $address = urlencode("technopark, Trivandrun, kerala,India"); $region = "IND"; $json = file_get_contents("http://maps.google.com/maps/api/geocode/json?address=$address&sensor=false®ion=$region");echo $json;
$decoded = json_decode($json);
print_r($decoded);
Dos ideas: