2013-09-14 7 views
-1

в следующем коде генерируется неопределенное количество маркеров, это хорошо работает.получить выбранный маркер google maps api 3

for(i=0;i<idr.length;i++){ 
var LatLng = new google.maps.LatLng(lat[i], lng[i]); 
m[i] = new google.maps.Marker({ 
    position: LatLng, 
    icon: image, 
    map: map, 
    draggable: false, 
    val: idr[i] 
});   

}

Я хочу, чтобы получить свойства соответствующих маркеров, когда мышь проходит над этим

Это не относится к вам следует создать функцию для каждых маркеров и не могу быть, многие Эта функция доступа только первый маркер

google.maps.event.addListener(m[0], "click", function(e) { 
     var latitud = e.latLng.lat(); 
     alert(latitud); 

});

ответ

1
for(i=0;i<idr.length;i++){ 
var LatLng = new google.maps.LatLng(lat[i], lng[i]); 
m[i] = new google.maps.Marker({ 
    position: LatLng, 
    icon: image, 
    map: map, 
    draggable: false, 
    val: idr[i] 
}); 
    google.maps.event.addListener(m[i], 'mouseover', function() { 
     //Do stuff 
    }); 
} 

Выше было то, как я это сделаю.

+0

Как я получить переменную? – Charles90

+0

Я бы переключил m [i] на «маркер var» и передал маркер в ваш слушатель и выполнил операции над маркером внутри addlistener –

2

использование this внутри обратного вызова, чтобы получить доступ к текущему маркеру (m[i] не будет работать там, потому что он всегда будет ссылаться на последний созданный маркер)

 google.maps.event.addListener(m[i], 'mouseover', function() { 
     alert(this.val) 
    }); 
Смежные вопросы