Dynamick Web [Design,Marketing,SEO]

Ottenere il massimo zoom per Google Maps


Mi è capitato spesso, lavorando con le API di Google Maps, di dover impostare il massimo zoom disponibile per una certa località. Questo è un problema perchè Google Maps non offre lo stesso dettaglio per tutte le zone del mondo. La spiaggia di Bondi di Sydney, per esempio, arriva al livello di zoom 22, mentre nelle zone interne dell’Oceano Pacifico arriviamo al massimo al livello 9. Fino ad oggi non ci era fornito il massimo livello di zoom disponibile e di conseguenza si doveva scegliere un livello “politico” che potesse statisticamente andar bene alla gran parte dei luoghi.

foto Ottenere il massimo zoom per Google Maps

La soluzione al problema è data da una nuova funzione asincrona che fa parte della classe GMapType: getMaxZoomAtLatLng. La funzione prende una coordinata geografica GLatLng e restituisce il massimo livello di zoom per cui esiste la mappa fotografica satellitare. Siccome la funzione richiede una richiesta ai server di Google (simile alla chiamata  GClientGeocoder.getLocations()), è stata messa a disposizione una callback che si attiva all’arrivo della risposta dai server.

Come esempio, ecco una funzione che imposta il centro e il massimo livello di zoom di una data mappa (un oggetto GMap2):

[code lang="javascript"]
function setMaxZoomCenter(map, latlng) {
map.getCurrentMapType().getMaxZoomAtLatLng(latlng, function(response) {
if (response && response['status'] == G_GEO_SUCCESS) {
map.setCenter(latlng, response['zoom']);
}
});
}
[/code]

Come si può vedere, la risposta response contiene un codice di stato (status), e, se la risposta è andata a buon fine, viene restituito un campo response["zoom"] che contiene il livello di zoom.

Se volete vedere un esempio funzionante, andate alla pagina predisposta per illustrare la nuova funzione sul sito ufficiale di Google Code.

Chiaramente la funzione getMaxZoomAtLatLng è applicabile solo a mappe di tipo G_SATELLITE_MAP e G_HYBRID_MAP, mentre per le cartine senza immagini satellitare si può sempre raggiungere il massimo dettaglio. La guida completa è possibile leggerla nella pagina ufficiale delle API di Google Maps.


6 commenti Aggiungi un commento

  1. Byteros

    Ho creato un app per iPhone, si chiama Strangeness from Earth.
    Sto cercando di fare la stessa cosa in objective-C ma mi risulta complicato.
    Idee?


  2. zoomer

    ciao, ottimo articolo. ma tradotto in termini pratici come faccio a zoomare di più con google?
    grazie
    zoomer
    :)


  3. #1 Il meglio del Web! - Luca Mercatanti

    [...] @Web@ Ring2Skype: numero telefonico gratis per Skype La storia di Facebook nel libro “I miliardari accidentali” Ottenere il massimo zoom per Google Maps [...]


  4. Mick

    oh.. finalmente qualcuno che mi capisce :-) Grazie Giacomo!


  5. Giacomo Ratta

    Ma quale articolo troppo tecnico?!? Meno male che c’è qualcuno che le scrive ste cose!!!

    A proposito dei salti di gioia… anch’io! :-)


  6. Mick

    Ragazzi, scusate per l’articolo un po’ troppo tecnico… ma quando ho scoperto questa cosa, ho fatto i salti di gioia!!!


Aggiungi un commento





Seguimi su Facebook

Scarica gratis eBook

Scarica gratis il mio eBook
"Scrivere in Googlese",

guida pratica per imparare a
scrivere come piace a Google.

econtent per google

Get in Touch!

Scarica la Toolbar di Dynamick e mantieniti aggiornato sulle ultime notizie e gli ultimi commenti sul sito.

...oppure ricevi via email gli articoli di Dynamick

iscriviti via email

Scrivimi

Michele Gobbi
Web Developer
Verona, Italy

Vuoi acquistare spazi pubblicitari? Vuoi un preventivo per un sito web o un blog? Contattami!