Eventos e polígonos em Google Maps

Controle de polígonos de mapas de google com resposta a eventos do usuário, no API de Google Maps.

Por Miguel Angel Alvarez - Tradução de JML


Publicado em: 05/2/09
Valorize este artigo:
Para desenvolver alguma funcionalidade adicional dos polígonos nos mapas de Google vamos programar um acréscimo ao script que cria um polígono, que vimos no artigo anterior, para ocultar e mostrar o polígono por resposta a um evento de usuário.

Esta funcionalidade de mostrar e ocultar polígonos é comum às distintas overlays que tratamos anteriormente no manual de mapas de Google (API de Google Maps).

O exercício trata de colocar uma marca e um polígono em um mapa de Google. Ao clicar a marca se ocultará o polígono e ao voltar a clicar se mostrará de novo, e assim sucessivamente. Podemos ver o exemplo em funcionamento para entender bem o objetivo deste manual de Google Maps.

Como dissemos, no artigo anterior vimos como colocar um polígono em um mapa de Google. A única diferença com este caso é que definimos a variável onde vamos colocar o objeto polígono, da classe GPolygon, como global a toda a página. Isto é porque teremos que acessar este objeto polygon através de outras funções para mostrá-lo ou ocultá-lo e se não estiver como variável global será impossível referenciá-lo. (Para criar uma variável global basta declará-la fora de qualquer função, olhe o código fonte do exercício terminado para ver como fazê-lo.)

Criamos também, como dizíamos uma marca:

var ponto_marca = new GPoint (-4.702, 40.6570);
var marca = new GMarker(ponto_marca);
map.addOverlay(marca);

Logo, temos que criar o evento "click" à marca, para que quando se clique sobre ela se chame uma função que se encarregue de mostrar ou ocultar o polígono. Com o API de Google Maps se define um evento da seguinte maneira:

GEvent.addListener(marca, "click", ocultar_mostrar_poligono);

Isto adiciona o escutador de evento "click" associado ao objeto contido na variável marca. Quando se detecte o evento se executa a função ocultar_mostrar_poligono(). Com outras palavras, definimos um evento click sobre uma marca, para executar a função ocultar_mostrar_poligono() quando se produza.

Agora nos faltaria ver o código da função que mostra ou oculta o polígono. Esta função faz uso da variável global onde armazenamos o objeto polígono, para acessar aos métodos de tal objeto.

function ocultar_mostrar_poligono(){
   if (polygon.isHidden()){
      //alert("Estava oculto");
      polygon.show();
   }else{
      //alert("Estava se mostrando");
      polygon.hide();
   }
}

O primeiro que se faz é ver se o polígono está ou não oculto, com o método isHidden(), com polygon.isHidden(), que devolve true no caso em que esteja oculto e false no caso em que esteja se mostrando.

No caso de estar oculto, chamamos ao método que o mostra, com polygon.show().

No caso de estar visualmente ativo, chamamos ao método para ocultá-lo, com polygon.hide().

E não há mais mistérios que não tenhamos visto anteriormente no manual do API de Google Maps.

Deixo novamente o link para ver o exemplo em funcionamento em uma janela à parte. Observar seu código fonte para obter mais informação.






Usuários :    login / registro
Manuais relacionados
Categorias relacionadas
O autor

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