Archivio per Google

Google Map

Di seguito una funzione per ricavare la latitudine e la longitudine dato un indirizzo con il servizio di Google Map. Ormai le mappe di Google sono come il prezzemolo e tutti le vogliono, e anche da me non sono da meno. Devo passare i dati di latitudine e longitudine in alcune procedure pianificate, io principalmente lavoro in asp e questo fa storcere il naso a molti giovani rampanti.

Scrivo qui la funzione, perchè non ho trovato da nessuna parte un pezzo di codice già pronto, magari a qualche misero tapino che passa di qui e si trova nelle mie stesse condizioni può far comodo.

Ho scelto l’output in csv perchè è quello che ha meno ritorno di dati in assoluto e, avendo bisogno solo di latitudine e longitudine, i 4 dati di ritorno sono già 2 di troppo.

In breve la funzione fa una chiamata alla pagina del servizio di Google e ne salva il contenuto in una variabile, da lì lo split in array e la restituzione dei 2 soli dati necessari.

L’unico problema riscontrato è che in caso di massicce chiamate Google dopo un po’ blocca la chiave API utilizzata per circa 24 ore (occorre registrare gratuitamente il sito per ottenere la chiave API), dopodichè è possibile ricominciare con le chiamate.

function get_latitude_longitude(indirizzo,comune,nazione)
  dim StrURL, objXMLHTTP, contenuto, latlon
  ‘latitudine [coord (2)]
  ‘longitudine [coord (3)]
  StrURL=”http://maps.google.com/maps/geo?q=”&indirizzo&”,+”&comune&”,+”&nazione&”
&key=”&google_api&”&sensor=false&output=csv”
  Set objXMLHTTP = Server.CreateObject(“Microsoft.XMLHTTP”)
  objXMLHTTP.Open “GET”, StrURL, false
  objXMLHTTP.Send
  contenuto = CStr(objXMLHTTP.ResponseText)
  Set objXMLHTTP = Nothing
  latlon = split(contenuto, “,”)
  get_latitude_longitude = latlon(2)&”|”&latlon(3)
end function

sLatLon = get_latitude_longitude(indirizzo,comune,nazione)
aLatLon = split(sLatLon, “|”)
latitudine = aLatLon(0)
longitudine = aLatLon(1)