Javascript 谷歌地图api v3:信息窗口位置

Javascript 谷歌地图api v3:信息窗口位置,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我正在用不同的标记制作地图,这些标记应该有不同的信息窗口。但是当我试图在多个标记上放置一个信息窗口时,信息窗口的位置停留在第一个单击的标记上。我做错了什么 <script type="text/javascript"> function initialize() { var latlng = new google.maps.LatLng(53.033117,5.639752); var latingSiton = new google.m

我正在用不同的标记制作地图,这些标记应该有不同的信息窗口。但是当我试图在多个标记上放置一个信息窗口时,信息窗口的位置停留在第一个单击的标记上。我做错了什么

<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>

谢谢转发

或者,代替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);
    });
} 

或者,代替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);
    });
} 

更改标记的变量名称您定义具有相同名称的标记如果我更改该变量并更改标记,则只有一个标记显示无信息窗口。更改标记的变量名称您定义具有相同名称的标记如果我更改该变量并更改标记,则只有一个标记显示无信息窗口。