简体   繁体   English

如何更新标记的信息窗口?

[英]How to update infowindow of a marker?

在此处输入图像描述

 for(i=0; i<locations.length; i++) {
        var position = new google.maps.LatLng(locations[i][2], locations[i][3]);
        var marker = new google.maps.Marker({
            position: position,
            map: map,
        });
        google.maps.event.addListener(marker, 'click', (function(marker, i) {
            return function() {
                infowindow.setContent(locations[i][1]);
                infowindow.setOptions({maxWidth: 200});
                infowindow.open(map, marker);               
            }
        }) (marker, i));
        Markers[locations[i][4]] = marker;
    }

I have map has multiple markers with infowindows my aim is to update marker infowindow but could not manage to find a solution.我有 map 有多个带有信息窗口的标记我的目标是更新标记信息窗口但无法找到解决方案。

If you are trying to store i in closure then you can do it like this: Demo JsFiddle如果您尝试将i存储在闭包中,那么您可以这样做: Demo JsFiddle

  for (let i = 0; i < locations.length; i++) {
    let position = new google.maps.LatLng(locations[i][1], locations[i][2]);
    let marker = new google.maps.Marker({
      position: position,
      map: map,
      title: locations[i][0]
    });

    google.maps.event.addListener(marker, 'click', function (event) {
      let content = `<b>${locations[i][0]} </b><br>
            ${locations[i][3]}<br>
            Position: ${event.latLng.lat()}, ${event.latLng.lng()}`;

      infowindow.setContent(content);
      infowindow.setOptions({ maxWidth: 200 });
      infowindow.open(map, marker);
    });
  }

Or you can get position from event object event.latLng.lat() and get the location using it.或者您可以从事件 object event.latLng.lat()获取 position 并使用它获取位置。


Or you can have separate info window for each marker .或者您可以为每个标记单独提供信息 window。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM