sacar - obtener latitud y longitud google maps php
Obtén latitud y longitud automáticamente usando php, API (6)
... y no olvides "$ region" para que el código funcione:
$address = "Salzburg";
$address = str_replace(" ", "+", $address);
$region = "Austria";
$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''};
echo $lat."</br>".$long;
En una de mis aplicaciones de php, debo averiguar la latitud y la longitud del lugar desde la dirección.
Intenté 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 muestra el siguiente error:
Advertencia: file_get_contents (http://maps.google.com/maps/api/geocode/json?address=technopark, Trivandrun, kerala, India & sensor = false & region = IND) [function.file-get-contents]: error al abrir la transmisión : ¡Falló la solicitud HTTP! HTTP / 1.0 400 Solicitud incorrecta en D: / Projects / lon.php en la línea 4
Porfavor ayudame a resolver este problema.
Dos ideas:
- ¿Dirección y región URL están codificadas ?
- Tal vez su computadora que ejecuta el código no permite el acceso http. Intente cargar otra página (como '' http://www.google.com '') y vea si eso funciona. Si eso tampoco funciona, entonces hay algo mal con la configuración de PHP.
Use curl
lugar de file_get_contents
:
$address = "India+Panchkula";
$url = "http://maps.google.com/maps/api/geocode/json?address=$address&sensor=false®ion=India";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PROXYPORT, 3128);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$response = curl_exec($ch);
curl_close($ch);
$response_a = json_decode($response);
echo $lat = $response_a->results[0]->geometry->location->lat;
echo "<br />";
echo $long = $response_a->results[0]->geometry->location->lng;
//add urlencode to your address $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);
$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''};
$address = str_replace(" ", "+", $address);
Utilice el código anterior antes del archivo_get_content. significa, use 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 funcionará seguramente Como la dirección no admite espacios, solo admite el signo + en lugar del espacio.