Sobrepor uma imagem em um mapa de Google

Podemos sobrepor uma imagem em um mapa de Google com os Ground Overlays, classe GGroundOverlay do API de Google Maps.

Por Miguel Angel Alvarez - Tradução de JML


Publicado em: 17/2/09

Valorize este artigo:
Neste artigo do manual de Google Maps vamos explicar o modo de sobrepor uma imagem a um mapa, o que no API de desenvolvimento de mapas de Google chamam "Ground Overlays". . Pode nos servir para oferecer informação gráfica do lugar que se está visualizando, ou adicionar elementos para chamar a atenção do usuário.

A tarefa é muito simples, pois só necessitamos definir o lugar onde se tem que colar a imagem que desejamos mostrar e a URL onde se localiza o arquivo gráfico a sobrepor. A imagem que colocarmos sempre aparecerá sobre o próprio fundo, tapando o que tiver debaixo.

As imagens que se sobrepõem se criam através da classe GGroundOverlay, cujo construtor recebe uma URL ou caminho relativo da imagem e os limites do mapa onde colocá-la.

var imagem = new GGroundOverlay("arquivo-grafico.jpg", limites_imagem);

Os limites da imagem são por sua vez outra classe, chamada GLatLngBounds, que é como um retângulo formado por dois pontos geográficos, as coordenadas Sul-Oeste e Norte-Leste, definidas por sua vez com os valores de latitude e longitude. Podemos ver a seguinte imagem, na que marcamos os dois pontos que necessitamos para definir as bordas ou limites da imagem, que utilizaremos no construtor da classe GLatLngBounds.


No construtor devemos especificar primeiro o ponto X1 e logo o ponto X2.

var limites_imagem = new GLatLngBounds(x1, x2);

Por sua vez, os pontos x1 e x2 são coordenadas latitude e longitude que devemos criar com a classe GLatLng, desta maneira:

var x1 = new GLatLng(valor_latitude, valor_longitude);

Uma vez temos o objeto imagem da classe GLatLngBounds, temos que colocá-lo no mapa com o método do mapa addOverlay(), que havíamos utilizado anteriormente para sobrepor elementos em mapas de google como os polígonos.

map.addOverlay(imagem);

Vemos o código completo para fazer um mapa com uma imagem sobreposta.

var map = new GMap2(document.getElementById("map"));   
map.setCenter(new GLatLng(40.491022,-3.8736677),15);
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());

//crio os pontos dos limites da imagem
var x1 = new GLatLng(40.489259,-3.877358);
var x2 = new GLatLng(40.4923928,-3.8675308);
//defino os limites onde vou colocar a imagem
var limites_imagem = new GLatLngBounds(x1, x2);
//Crio um ground overlay
var imagem = new GGroundOverlay("lasrozas.jpg", limites_imagem);
//coloco a imagem ou ground overlay no mapa
map.addOverlay(imagem);


Como se pode comprovar, sobrepor uma imagem é algo relativamente simples, embora tenhamos que definir bem os limites da imagem para que o renderizado fique bem e não se estique demais na foto.

O exemplo em funcionamento pode ser visto em uma página à parte.






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

Buscar projetos:

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