Porém, há que assinalar que o API de Google Maps incorpora vários eventos que são próprios dos mapas de Google e que não fazem parte dos eventos básicos de Javascript. Ademais, assim como as peculiaridades de cada navegador podem fazer o tratamento de eventos distinto entre diferentes plataformas, o API dos mapas de Google é único e funciona em qualquer navegador da mesma maneira, ou seja, é o que chamamos cross-browser.
Os eventos no API se manejam usando funções que se chamam escutadores de eventos, que se têm que registrar dentro do espaço de nomes de GEvent. Cada objeto do API dos mapas de google dispõe de uma série de eventos já definidos, que ademais se executa dentro de um contexto e passam distintos parâmetros para identificar tal contexto. Por exemplo, um mapa de Google tem o evento click (a classe GMap2 tem uma infinidade de eventos diferentes), que se desata quando o usuário clica sobre o mapa. Tal evento passa os argumentos overlay e point, o primeiro para passar uma marca (se é que o usuário clicou em uma marca) e o segundo para passar o ponto geográfico onde se fez o clique, se clicou sobre qualquer área vazia do mapa.
Todos os eventos que suporta o API de Google Maps, para cada classe, estão perfeitamente documentados na referência que oferece Google.
Obter o ponto onde clicou o usuário
Vamos mostrar um primeiro exemplo de tratamento de eventos, muito simples, para extrair o ponto onde o usuário clicou no mapa.
Primeiro, teríamos que criar o mapa, tal como fizemos em anteriores ocasiões, e adicionar-lhe a GEvent um escutador de eventos (Event listener) para quando se clique sobre o mapa.
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(33,0),3);
map.addControl(new GLargeMapControl());
map.setMapType(G_NORMAL_MAP);
GEvent.addListener(map, "click", tratamento_clique);
A linha que temos que ver agora é a última, onde se adiciona o escutador de eventos.
GEvent é a classe que adicionamos o event listener. Ao adicionar um evento para ser escutado temos que prover de três parâmetros:
function tratamento_clique(overlay,point){
alert ("Olá amigo! Vejo que está aí porque fez um clique!");
alert ("O ponto onde você clicou é: " + point.toString());
}
Como vemos, a função recebe um par de parâmetros, que são o contexto no qual se detectou o evento. Estes dois parâmetros são:
Pode-se ver o exemplo em funcionamento em uma página a parte.
![]() | Inserir uma marca em um mapa de Google | Manejar um evento em um mapa de Google para reposicionar uma marca | ![]() |