Obtener coordenadas GPS a partir de una dirección con PHP
Con esta sencilla función en PHP podremos obtener las coordenadas GPS a partir de una dirección.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | <?php function getCoordinates($address){ $address = urlencode($address); $url = "http://maps.google.com/maps/api/geocode/json?sensor=false&address=" . $address; $response = file_get_contents($url); $json = json_decode($response,true); $lat = $json['results'][0]['geometry']['location']['lat']; $lng = $json['results'][0]['geometry']['location']['lng']; return array($lat, $lng); } $coords = getCoordinates("Passeig de Gracia, Barcelona, Barcelona"); print_r($coords); /* Resultado: Array ( [0] => 41.3936254 [1] => 2.1634189 ) */ |
Cómo hacer que sea más preciso el número de coordenadas? Es que no coincide exactamente, se puede hacer más preciso?…
Es posible que el resultado devuelvo por el API sea con un estado ZERO_RESULTS con lo cual no encontraria el valor del array ‘geometry’.
En mi caso, he añadido lo siguiente para finiquitarlo:
if ($json['status'] == 'ZERO_RESULTS') {
return array();
}
Me vino de perlas, gracias
$coords=utf8_encode($coords);
Añadir para que busque direcciones con acentos y Ñ