2013-03-28 5 views
0

Пожалуйста, мне нужна помощь ... Я хочу отображать окно для каждого маркера, когда я нажимаю на каждый из них. извините за мой плохой английский. спасибо.Google Maps infowindow для маркера

 markers=new Array(); 


     for(i=0;i<res['infos'].length;i++){ 

      var a=new Object(); 
      a.lat=res.infos[i]['lat']; 
      a.lng=res.infos[i]['lng']; 
        var Titre="Véhicule: "+res.infos[i]['NomVehicule']+" Position du: "+res.infos[i]['Date']+" à "+res.infos[i]['Heure']; 
      var NomIcone="IconeVehicule/"+res.infos[i]['Icone']; 
      var point=new google.maps.LatLng(a.lat,a.lng); 
      var marker = new google.maps.Marker({position: point,map: map, title: Titre, icon: NomIcone}); 
      markers.push(marker);  


    google.maps.event.addListener(marker, 'mouseover', (function(marker, i) { 
    return function() { 
     infowindow.setContent(res.infos[i]['NomVehicule']); 
     infowindow.open(map, marker); 
    } 
    })(marker, i)); 



     } 

    </script> 

ответ

0

Вот код, который нужно попробовать. Я думаю, ваша проблема была в обработчике событий.

var infoWindow = new google.maps.InfoWindow({ 
    content: "loading..." 
}); 
var markers=new Array(); 

for(i=0;i<res['infos'].length;i++){ 
    var a=new Object(); 
    a.lat=res.infos[i]['lat']; 
    a.lng=res.infos[i]['lng']; 

    var Titre="Véhicule: "+res.infos[i]['NomVehicule']+" Position du: "+res.infos[i]['Date']+" à "+res.infos[i]['Heure']; 
    var NomIcone="IconeVehicule/"+res.infos[i]['Icone']; 

    var point=new google.maps.LatLng(a.lat,a.lng); 
    var marker = new google.maps.Marker({ 
     position: point, 
     map: map, 
     title: Titre, 
     icon: NomIcone, 
     infoWindowContent: res.infos[i]['NomVehicule'] 
    }); 
    markers.push(marker);  

    google.maps.event.addListener(marker, 'mouseover', function(){ 
     infowindow.setContent(marker.infoWindowContent); 
     infowindow.open(map, marker); 
    }); 
}