Obtener el c骴igo postal de una direcci髇 mediante la API de Google Maps

Muchas veces necesitamos obtener el c骴igo postal de una direcci髇 en algunos proyectos. Mediante la API de Google Maps es f醕il extraer el c骴igo postal de una direcci髇. Para ello, los chicos de Codexworld han creado una funci髇 que permite obtener el c骴igo postal de una direcci髇.

La funci髇 getZipcode() acepta un solo par醡etro ($address). El valor de la variable address debe ser la direcci髇 completa de la que quieras extraer el c骴igo postal.

La funci髇 getZipcode()

/**
*
* Author: CodexWorld
* Author URI: http://www.codexworld.com
* Function Name: getZipcode()
* $address => Full address.
*
**/
function getZipcode($address){
    if(!empty($address)){
        //Formatted address
        $formattedAddr = str_replace(' ','+',$address);
        //Send request and receive json data by address
        $geocodeFromAddr = file_get_contents('http://maps.googleapis.com/maps/api/geocode/json?address='.$formattedAddr.'&sensor=true_or_false'); 
        $output1 = json_decode($geocodeFromAddr);
        //Get latitude and longitute from json data
        $latitude  = $output1->results[0]->geometry->location->lat; 
        $longitude = $output1->results[0]->geometry->location->lng;
        //Send request and receive json data by latitude longitute
        $geocodeFromLatlon = file_get_contents('http://maps.googleapis.com/maps/api/geocode/json?latlng='.$latitude.','.$longitude.'&sensor=true_or_false');
        $output2 = json_decode($geocodeFromLatlon);
        if(!empty($output2)){
            $addressComponents = $output2->results[0]->address_components;
            foreach($addressComponents as $addrComp){
                if($addrComp->types[0] == 'postal_code'){
                    //Return the zipcode
                    return $addrComp->long_name;
                }
            }
            return false;
        }else{
            return false;
        }
    }else{
        return false;   
    }
}

C髆o utilizarla

Para utilizar la funci髇 getZipcode, lo haremos de este modo:

$address = 'Calle Desenga駉 21, Madrid, Espa馻';
$zipcode = getZipcode($address);
$zipcode = $zipcode?$zipcode:'Not found';

Necesitamos especificar la key de la API de Google en la llamada, como un par醡etro

$geocodeFromAddr = file_get_contents('http://maps.googleapis.com/maps/api/geocode/json?address='.$formattedAddr.'&sensor=true_or_false&key=GoogleAPIKey');

Fuente: codexworld.com

COMPARTE ESTE ARTÍCULO

ENVIAR A UN AMIGO
COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN GOOGLE +
¡SÉ EL PRIMERO EN COMENTAR!
Conéctate o Regístrate para dejar tu comentario.