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);
Question
vini_loock
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:
Edited by vini_loockLink to comment
Share on other sites
0 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.