Ir para conteúdo
Fórum Script Brasil
  • 0

Problema com google maps API


vini_loock

Pergunta

Estou fazendo uma aplicação com o google maps, mas estou com um problema na horade adicionar um evento a um marcador.

Como são vários marcadores, guardo eles em um array. Os eventos devem ser adicionados(pelo que eu sei) depois de cria-los, então em um for, eu adiciono um evento para cada marcador.

O problema é que cada marcador tem seu conteúdo, logo tenho que guardar as informações em um array e quando faço isso, não consigo associar o marcador com a informação.

Mas como tudo está em arrays separados e onde adiciono o evento é em um for, a variavel(no caso "i"), terá sempre o maior valor possível(no caso 2(points.length)) e então , na linha 46 ocorre o problema: info é undefined

O código:

(function($, google){
    $(function(){
        
        // dados do mapa
        var points = [
            {
                title: 'teste title 1',
                content: '<p><b>teste</b></p>',
                x: 20,
                y: 10
            }, {
                title: 'teste title 2',
                content: '<p><b>teste</b></p>',
                x: 0,
                y: 0
            }
        ];
        
        // posição central do mapa
        var centerPos = new google.maps.LatLng(0, 0);
        
        // cria o mapa
        var mapa = new google.maps.Map(document.getElementById('main-google-maps-map'), {
            zoom: 1,
            center: centerPos,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        });
        
        var infos = [],
            markers = [];
        
        // exibe os marcadores no mapa
        for(i = 0; i < points.length; i++){
            markers.push(new google.maps.Marker({
                position: new google.maps.LatLng(points[i].x, points[i].y),
                map: mapa,
                title: points[i].title
            }));
            
            infos.push(new google.maps.InfoWindow({
                content: points[i].content
            }));
            
            // Erro aqui:
            google.maps.event.addListener(markers[i], 'click', function(){
                infos[i].open(mapa, markers[i]);
            });
        }
        
    });
})(jQuery, google);

Editado por vini_loock
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...