[英]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.