Questa settimana ho dovuto lavorare ad un progetto che comprendeva un motore di ricerca di ristoranti nel mondo.
Il cliente mi aveva espressamene richiesto l'uso di Google Maps, e quindi mi sono messo a studiarlo.
Come sempre il time-to-market era abbastanza stretto... 3 giorni per fare tutto: Analisi, sviluppo, test....
Ho piacevolemente scoperto che utilizzando le Api di Google, con poche righe di Javascript è facile far apparire una mappa, scegliere il livello di zoom, centrarla su una zona specifica, e impostare dei marker in determinate locazioni. Non male!
Il problema più grosso è dato dal fatto che sia la centratura, ma soprattutto i marker, vanno indicati mediante coodinate, ossia latitudine e longitudine.
Esiste un oggetto chiamato geocoder, che consente di ottenere le coordinate a partire da un'indirizzo scritto in testo (es. Via Savoia 84, 00198 Roma) ma per stessa ammissione di Google è abbastanza lento (qualche frazione di secondo) e soprattutto pesante da elaborare sul server di Google, tanto che limitano 5.000 interrogazioni al giorno per ogni sito.
L'idea è stata quindi quella di scrivere un software che partisse da un database di indirizzi e interrogasse ciclicamente Geocoder in modo da ottenere tutte le coordinate. Per farlo funzionare correttamente ho dovuto utilizzare ASP e Javascript, in una sorta di applicazione web automatica: l'asp costruiva la pagina contenente il javascript, e quest'ultimo si interfacciava con le Api di Google per ottenere le coordinate. Queste venivano passate tramite GET ad una pagina che si occupava di salvare i dati in un DB, e avanti così per 3.000 indirizzi.
L'elaborazione complessiva ha impiegato qualche ora, con qualche interruzione dovute a caratteri "strani" nei nomi dei ristoranti, ma alla fine ho ottenuto quello che volevo: una lista di coordinate pronte da sfruttare.
A quel punto il più era fatto, è bastato scrivere un piccolo motore di ricerca che consentisse di ricercare Paese, città e ristorante per aggiornare di conseguenza la mappa. Niente male!
Volete vedere il risultato? ristoranti.asp
01 dicembre 2007
Iscriviti a:
Commenti sul post (Atom)
3 commenti:
Fico! La prossima volta magari fai pure in modo che i box di ricerca non siano bloccati nel bel mezzo della pagina...! ;)
Sei la seconda persona che mi segnalail problema... su qualche decina che l'hanno testato.
Riesci a farmi avere uo screenshot del problema? Credo sia qualcosa relato ai Div, ma ho testato con IE, Firefox e Safari, senza problemi.
Il box dovrebbe essere alla destra della mappa
Il problema appare quando resizi la finestra.. resaiza!!
Posta un commento