谷歌地图api v3:infowindow的位置

问题描述:

我正在制作一张具有不同标记的地图,应该有不同的信息窗口。但是当我试图将一个infowindow放在多个标记上时,infowindow的位置停留在第一个点击标记上。我究竟做错了什么?谷歌地图api v3:infowindow的位置

<script type="text/javascript"> 
     function initialize() { 
     var latlng = new google.maps.LatLng(53.033117,5.639752); 

     var latingSiton = new google.maps.LatLng(53.0356197730161,5.62613738302669); 
     var SitonImg = 'images/siton.png'; 
     var latingZee = new google.maps.LatLng(53.0360534900284,5.62488617774811); 
     var ZeeImg = 'images/zee.png'; 
     var latingHylkema = new google.maps.LatLng(53.0373853769166,5.62924255777811); 
     var HylkemaImg = 'images/hylkema.png'; 
     var latingDijkstra = new google.maps.LatLng(53.0360125088934,5.62735529113307); 
     var DijkstraImg = 'images/dijkstra.png'; 

     var myOptions = { 
      zoom: 16, 
      center: latlng, 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 

     var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 

     var contentString = 'test'; 

     var infowindow = new google.maps.InfoWindow({ 
      content: contentString 
     }); 

      var marker = new google.maps.Marker({ 
       position: latingSiton, 
       map: map, 
       icon: SitonImg, 
      }); 

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

      var marker = new google.maps.Marker({ 
       position: latingZee, 
       map: map, 
       icon: ZeeImg, 
      }); 

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

      var marker = new google.maps.Marker({ 
       position: latingHylkema, 
       map: map, 
       icon: HylkemaImg, 
      }); 

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

      var marker = new google.maps.Marker({ 
       position: latingDijkstra, 
       map: map, 
       icon: DijkstraImg, 
      }); 

      google.maps.event.addListener(marker, 'click', function() { 
       infowindow.open(map,marker); 
      }); 
     } 
    </script> 

非常感谢!

+0

更改标记的变量名你同名 – Pratik

+0

如果我定义标记更改该变量并更改标记,然后只有1个标记显示没有infowindow。 – Augus

另一方面,不是PRATIK的建议,试试这个:

var marker = new google.maps.Marker({ 
    position: latingSiton, 
    map: map, 
    icon: SitonImg 
}); 

// repeat this line after each new Marker is created: 
bindInfoWindow(marker, map, infowindow); 

然后创建一个新的功能:

function bindInfoWindow(marker, map, infowindow) { 
    marker.addListener('click', function() { 
     infowindow.open(map, marker); 
    }); 
} 
+0

啊,这很好,谢谢你们两位! – Augus