Evento zoom em um mapa de Google

Como detectar que mudou o zoom em um mapa de google com o evento zoomend do mapa.
Publicado em: 12/11/08

Valorize este artigo:
Estamos no manual de criação de Google Maps, tratando dos eventos sobre mapas de Google. Neste caso vamos ver um evento que se executa no momento no qual o usuário muda o zoom do mapa. É o evento "zoomend", que se desata no momento que o mapa muda o zoom.

O tratamento de eventos em mapas de Google já o explicamos no artigo Eventos em mapas de Google, neste caso veremos outro exemplo de trabalho com eventos, que servirá para ilustrar melhor o tema.

Como se disse, para criar um tratamento de um evento produzido pelo usuário, se tem que adicionar um escutador de evento com o método addListener da classe GEvent. Este método tem que receber o objeto sobre o qual se escutará o evento, o tipo de evento e a função que se executará como resposta ao evento (o manejador de eventos). Para obter mais explicações deste passo consultar o artigo onde se tratam dos eventos de mapas de google em geral.

O manejador de evento zoomend, ou seja, a função que se executa quando se produz o evento, recebe duas variáveis. Uma é o antigo zoom que tinha o mapa e outra é o novo zoom que se colocou.

Supomos que temos criado um mapa de google e que está declarado no objeto map da classe GMap2. Então, se quiséssemos criar um evento para que nos mostrasse em uma caixa de alerta, as duas variáveis com o antigo zoom e o novo, faríamos algo como isto:

GEvent.addListener(map, "zoomend", function (antigoZoom, novoZoom){
   alert("Mudou o zoom do mapa.\nAntigo Zoom: " + antigoZoom + "\nNovo Zoom: " + novoZoom);
});

Este simples exercício pode ser visto em funcionamento aqui.

Colocamos o zoom em um formulário, quando se produz o evento

Agora, para complicá-lo um pouco mais, mostramos o zoom em um formulário, que se atualiza quando o usuário muda o zoom no mapa. Parte deste exercício foi explicado previamente em outro artigo: Averiguar o zoom em um mapa de Google Maps.

Anteriormente já colocávamos o zoom em um formulário, porém se o zoom mudasse não se atualizava o valor até que não se alterasse a marca clicando qualquer parte do mapa. Podemos ver o que estou dizendo nesta página.

Como se pode ver, há um formulário na parte de baixo, que se atualiza cada vez que se reposiciona a marca. Agora vamos atualizá-lo também quando o usuário mudar o zoom. Para isso, temos que definir um escutador do evento zoomend no mapa.

Realmente, só adicionamos estas linhas para que se produza o comportamento desejado quando se faz zoom no mapa.

GEvent.addListener(map, "zoomend", function (antigoZoom, novoZoom){
   document.posicao.zoom.value=novoZoom
});

Podemos ver o exemplo em funcionamento.

Vendo seu código fonte podemos ter uma idéia do exercício completo. Porém, lembramos que para entendê-lo temos que seguir o artigo Averiguar o zoom em um mapa de Google Maps.



Informe de Miguel Angel Alvarez - Tradução de JML



Usuários :    login / registro
Manuais relacionados
Categorias relacionadas

Home | Sobre nós | Copyright | Anuncie | Entrar em contato