This question already has an answer here:
How to keep single Info window open at the same time in Google map V3?
(1个答案)
2年前关闭。
当我单击地图上的其他位置或其他标记时,我希望该信息窗口关闭。即,只有一个信息窗口在同一时间打开,而所有其他信息窗口都关闭。
但是我该怎么做呢?
感谢您的回答!
我的代码:
然后,在初始化函数(
将您的
而且,如果您想在用户单击地图时关闭信息窗口,则可以将此事件侦听器添加到地图中:
这是a JSBin的工作示例。
(1个答案)
2年前关闭。
当我单击地图上的其他位置或其他标记时,我希望该信息窗口关闭。即,只有一个信息窗口在同一时间打开,而所有其他信息窗口都关闭。
但是我该怎么做呢?
感谢您的回答!
我的代码:
var map = new google.maps.Map(document.getElementById('map'), options);
addMarker({
coords: { lat: 62.791711, lng: 22.808479 },
content: 'test 1'
});
addMarker({
coords: { lat: 65.799962, lng: 24.497773 },
content: 'test 2'
});
addMarker({
coords: { lat: 62.331629, lng: 22.890667 },
content: 'test 3'
});
function addMarker(props) {
var marker = new google.maps.Marker({
position: props.coords,
map: map
});
if (props.content) {
var infoWindow = new google.maps.InfoWindow({
content: props.content
});
marker.addListener('click', function() {
infoWindow.open(map, marker);
});
}
}
最佳答案
要一次仅打开一个信息窗口,请创建一个将包含一个InfoWindow实例的全局变量。
var infoWindow;
然后,在初始化函数(
initMap
)中,实例化信息窗口:infoWindow = new google.maps.InfoWindow();
将您的
addMarker
函数更改为以下内容:function addMarker(props) {
var marker = new google.maps.Marker({
position: props.coords,
map: map
});
if (props.content) {
marker.addListener('click', function() {
infoWindow.setContent(props.content);
infoWindow.open(map, marker);
});
}
}
而且,如果您想在用户单击地图时关闭信息窗口,则可以将此事件侦听器添加到地图中:
map.addListener('click', function() {
if (infoWindow) infoWindow.close();
});
这是a JSBin的工作示例。
关于javascript - 单击其他标记时如何Google Maps API关闭信息窗口? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49613610/
10-11 05:10