Ottenere Longitudine E Latidudine Di Un Indirizzo In PHP Con Le Google MAPS API
A meno che non viviate sul cucuzzolo di una montagna e siate completamente all’asciutto di Web 2.0 & Co, conoscerete benissimo Google Maps, il servizio di mappe geografiche di che copra gran parte del Terra, che sicuramente utilizzerete quotidianamente per orientarvi nei vostri frenetici spostamenti. Come ogni servizio 2.0 che si rispetti anche Google Maps mette a disposizione una serie di API per aiutare gli sviluppatori web ad integrare le sue funzionalità all’interno delle loro realizzazioni. Uno degli utilizzi più comuni delle Google Maps API credo sia il Geocoding di un indirizzo.
Che cos’è il Geocoding?
Innanzitutto per Geocoding si intende quel processo che assegna ad un indirizzo le sue coordinate geografiche logitudine e latitudine: in sostanza è quel procedimento che va ad associare all’indirizzo “via Durini, 24 20122 Milano” le coordinate “longitudine:45.464919 latitudine: 9.198268″ Potete farlo manualmente andando a prendere un atlante, uno stradario, una piantina o un qualsiasi altro strumento che vi pertmetta di ottenere queste coordinate una volta localizzato l’indirizzo che vi interessa geolocalizzare, oppure potete farlo molto più comodamente utilizzando per l’appunto le Google Maps API che faranno tutto ciò per voi e vi restituiranno longitudine e latitudine dell’indirizzo in questione.
In quali casi servono Longitudine e Latitudine?
Se siete degli sviluppatori web o comunque vi piace trafficare nella rete sporcandovi le mani con codice di vario genere, saprete benessimo che un’ottima soluzione per interagire con le API offerte dai vari servizi di Google è quella di utilizzare le Google AJAX API Loader che non sono altro che un framework già preconfezionato per interagire comodamente con la stragrande maggioranza delle applicazioni web 2.0 offerte dall’azienda di Mountanin View. Se volete sfruttare le Google AJAX API Loader per interagire con le Google MAPS magari perchè volete visualizzare all’interno della vostra applicazione web 2.0 la mappa corrispondente a ciascun indirizzo geografico del tipo “via Durini, 24 20122 Milano”, avrete bisogno di avere la longitudine e la latitudine di ciascun indirizzo da mandare in pasto successivamente alle Google AJAX API Loader. Quando gli indirizzi da geolocalizzare diventano tanti ecco che una procedura automatizzata per avere le corrispondenti longitudini e latitudine in modo automatizzato è molto comoda.
ll codice
Dopo aver capito che cosa stiamo facendo e perchè lo stiamo capendo è finalmente venuto il momento di sporcarsi le mani con il codice PHP che tutto sommato è abbastanza semplice. Ovviamente prima di effettuare qualsiasi cosa, se non la possedete già, dovrete procurarvi una Google MAPS API Key. Ora che abbiamo tutto il necessario, ecco il codice da salvare in un file .php e da eseguire per avere la geolocalizzazione di un indirizzo.
Per eseguire lo script in PHP dovrete aver installato curl sul vostro server e dovrete averlo abilitato per essere utilizzato da PHP. Ovviamente se si hanno tanti indirizzi da geocodificare bisognerà andarli a prendere dal database e successivamente bisognerà andare a memorizzare longitudine e latitudine associati a ciascun record ma ho omesso questa parte perchè banale e perchè le possibilità sono davvero molteplici (dal file di testo a quello XML al più comune database in SQL
<?php
$key = “Inserisci qui la tua chiave API”;
//Set up our variables
$longitude = “”;
$latitude = “”;
$precision = “”;
//Three parts to the querystring: q is address, output is the format (
$address_to_encode=“via Durini, 24 20122 Milano”
$address = urlencode($address_to_encode);
$url = “http://maps.google.com/maps/geo?q=”.$address.“&output=csv&key=”.$key;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER,0);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
curl_close($ch);
//echo “Data: “. $data.”";
if (strstr($data,‘200′)){
$data = explode(“,”,$data);
$precision = $data[1];
$latitude = $data[2];
$longitude = $data[3];
echo “n: “.$count.” Latitude: “.$latitude.“”;
echo ” Longitude: “.$longitude.“\r\n”;
} else {
echo “Error in geocoding!”;
}
?>
Ecco quanto: come al solito per chiarimenti, correzioni e quant’altro ci sono i commenti qua sotto che vi aspettano

Ciao,
quindi si potrebbe fare anche uno script che rilevi la nazione tramite un ip?
K8 non so se le Google Maps API ti fanno la geolocalizzazione dell’indirizzo IP. Se te lo fanno ovviamente si può benissimo fare lo script.
ok, mi informerò
sul blog di msn viene visualizzato l’ip, con questa procedura si riesce a risalire alle coordinate?
Nico per ricalire dall’indirizzo IP alla nazionalità dello stesso ci sono decine di servizi che fanno tutto questo da anni e non c’è bisogno di scomodare le Google MAPS API.
Uno su tutti http://ws.arin.net/whois/
nn centra con il post… porti troppa sfiga, smettila! Italia olanda 0-3 scometti anche sulla prossima è dura indovinarne 2 di fila!!
Isaac io non porto sfiga… ne capisco semplicemente di calcio.

Trackback/Pingback
[...] Ottenere Longitudine E Latidudine Di Un Indirizzo In PHP Con Le Google MAPS API [...]
[...] Sul suo blog Davide Salerno introduce così un’interesseante articolo in cui mostra come sia facile ottenere preziosi dati in modo semplice attraverso le API di Google. Condividi : Queste icone linkano i siti di social bookmarking sui quali i lettori possono condividere e trovare nuove pagine web. [...]
Lascia un tuo commento!
Rimani aggiornato
Abbonati ai miei Feed RSS
Articoli | Commenti
oppure ricevi gli aggiornamenti via e-mail:
Scopri cosa sono e come usare i Feed RSS
La tua pubblicità qui? Scopri come...
In prima pagina
Commenti Recenti
Ah, ovviemente Toddo90 mi riferisco al FINDER,...
Volevo dire il TAGLIA incolla, ovviamente
il mio commento sopra era sarcastico ovviamente......
non esiste il copia incolla???? non esiste una...
Ho il Macbook da giugno 2006, e...
Ho un mac os x v 10.4.11...
Mi sono convinto passo a mac grazie...
ragazzi ho provato ad installare leopard, però...
Buon giorno Davide, bravo, dovrebbero esserci più...
Il mio computer è questo: http://store.apple.com/it_smb_65532/configure/MB134T/A?mco=NzU0NTU4 però ho...
Meta
Scelti a caso
Più commentati
Qualche scatto
Tutto il materiale è coperto da Licenza Creative Commons | Per maggiori informazioni.
Articoli (RSS) | Commenti (RSS) | Torna su