我正在编写一个脚本,在我的网站上创建一个带有多个标记的谷歌地图画布。当你点击标记时,我想要弹出信息窗口。我已经实现了这个功能,目前的代码如下:
var latlng = new google.maps.LatLng(-34.397, 150.644);
var myOptions = {
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
function addMarker(map, address, title) {
geocoder = new google.maps.Geocoder();
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
position: results[0].geometry.location,
map: map,
title:title
});
google.maps.event.addListener(marker, 'click', function() {
var infowindow = new google.maps.InfoWindow();
infowindow.setContent('<strong>'+title + '</strong><br />' + address);
infowindow.open(map, marker);
});
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
}
addMarker(map, 'Address', 'Title');
addMarker(map, 'Address', 'Title');
这段代码已经100%可用。但是我想实现当一个信息窗口打开时,如果你想打开第二个,第一个会自动关闭。但我还没有找到解决方法。infowindow.close()不管用。有人有这个问题的例子或解决方案吗?
setContent()
方法。如果您不需要同时打开多个Infowindow,请仅使用一个实例并动态设置其内容。这段代码在性能方面很差。 - MrUpsidown