Quando geramos um mapa de Google, utilizando o API dos Google Maps, definimos o zoom com o qual tem que começar o mapa. Esta é uma tarefa que repetimos numerosas vezes ao longo do
Manual de API de Google Maps. Porém, o mapa é interativo e o usuário ao utilizá-lo pode mudar o zoom, para ampliar ou reduzir a definição. Neste artigo vamos aprender a obter o zoom atual de um mapa quando se produza um evento, ou seja, como resposta a uma ação de um usuário.
Os eventos em mapas de Google já foram tratados anteriormente neste manual, de fato, este artigo irá ampliar outro que já havíamos realizado:
Mostrar a posição de uma marca de Google Maps em um formulário. Neste caso mostraremos o zoom atual do mapa de google ao clicar o usuário no mapa e o escreveremos em um formulário na própria página.
Na verdade, saber o zoom em um mapa é simples, só temos que utilizar o método getZoom() da classe GMap2. getZoom() devolve um número inteiro, que é o zoom atual do mapa.
Coloquemos que temos o objeto mapa em uma variável chamada "map". Sendo assim, executaremos o método com isto:
zoom_atual = map.getZoom();
Assim, teríamos salvo em uma variável zoom_atual o valor inteiro do zoom do mapa.
Se quisermos mostrar em um formulário na página o zoom atual, como resposta ao evento clique, faremos algo como isto:
GEvent.addListener(map, "click", function (overlay,point){
if (point){
marker.setPoint(point);
document.posicion.x.value=point.x
document.posicion.y.value=point.y
zoom_atual = map.getZoom();
document.posicao.zoom.value=zoom_atual
}
});
Lembrar que para entender bem este código teremos que ler o
artigo anterior, assim como possivelmente os precedentes deste manual que tratam sobre eventos.
Bom, ademais teremos que colocar no formulário um campo novo para escrever o zoom do mapa:
zoom atual:
<input type="text" name="zoom" value="" />
Isto é tudo. Podemos ver o exercício em funcionamento
neste link.
Para ver o código completo do exercício simplesmente mostre o código fonte da página do exemplo.