随着v3 API http://code.google.com/apis/maps/documentation/javascript/,您可以轻松关闭InfoWindow
与InfoWindow.close() http://code.google.com/apis/maps/documentation/javascript/reference.html#InfoWindow方法。您只需要保留对InfoWindow
您正在使用的对象。考虑下面的例子,它打开了一个InfoWindow
并在 5 秒后关闭它:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Google Maps API InfoWindow Demo</title>
<script src="http://maps.google.com/maps/api/js?sensor=false"
type="text/javascript"></script>
</head>
<body>
<div id="map" style="width: 400px; height: 500px;"></div>
<script type="text/javascript">
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: new google.maps.LatLng(-25.36388, 131.04492),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var marker = new google.maps.Marker({
position: map.getCenter(),
map: map
});
var infowindow = new google.maps.InfoWindow({
content: 'An InfoWindow'
});
infowindow.open(map, marker);
setTimeout(function () { infowindow.close(); }, 5000);
</script>
</body>
</html>
如果你有一个单独的InfoWindow
每个对象Marker
,您可能需要考虑添加InfoWindow
对象作为你的财产Marker
对象:
var marker = new google.maps.Marker({
position: map.getCenter(),
map: map
});
marker.infowindow = new google.maps.InfoWindow({
content: 'An InfoWindow'
});
然后你就可以打开和关闭它InfoWindow
如下:
marker.infowindow.open(map, marker);
marker.infowindow.close();
如果您有一组标记,则同样适用:
var markers = [];
marker[0] = new google.maps.Marker({
position: map.getCenter(),
map: map
});
marker[0].infowindow = new google.maps.InfoWindow({
content: 'An InfoWindow'
});
// ...
marker[0].infowindow.open(map, marker);
marker[0].infowindow.close();