Следующий код перебирает объект json для размещения маркера на карте google. Что хорошо работает.Есть ли способ определить, какой маркер карты Google был нажат?
function displayMarkers(data){
for(var i = 0; i < data.Lat.length; i++){
var point = new GLatLng(data.Lat[i],data.Lng[i]);
marker = new GMarker(point);
map.addOverlay(marker);
// here's the problem
GEvent.addListener(marker, "click", function(){
alert(data.Name[i]);
});
}
}
Проблема в том, что каждый маркер всегда отвечает последним значением «i». Я застрял, пытаясь выяснить способ идентификации маркера, который был нажат, чтобы каким-то образом получить нужную информацию от объекта данных.
Я подумываю о создании массива маркеров при создании для циклического перехода на основе расположения маркеров, но для меня это действительно неэффективно.
Любая помощь, как всегда, очень ценится.
Ах, вы совершенно правы. Проблема в том, что мы добавляем слушателя к маркеру, а не к карте. Если вы добавите слушателя на карту, он будет работать так, как ожидалось, - и вам нужно только добавить слушателя один раз. –
Прохладный, спасибо за это. – gargantuan