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.