Jump to content
Fórum Script Brasil
  • 0

Problema com google maps API


vini_loock

Question

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);

Edited by vini_loock
Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...