Javascript 关闭信息窗口-关闭onclick-谷歌地图
在API的V3中,我不能一次只显示一个信息窗口。我需要一个在下一个开幕前关闭。还希望在单击地图上的任何位置时关闭信息窗口。这是否在初始化函数中 以下是我的完整脚本:Javascript 关闭信息窗口-关闭onclick-谷歌地图,javascript,google-maps,Javascript,Google Maps,在API的V3中,我不能一次只显示一个信息窗口。我需要一个在下一个开幕前关闭。还希望在单击地图上的任何位置时关闭信息窗口。这是否在初始化函数中 以下是我的完整脚本: // defining vars var map = null; var markers = []; var adUnit; var center = new google.maps.LatLng(39.676502,-105.162101); // function that soley initializes the new
// defining vars
var map = null;
var markers = [];
var adUnit;
var center = new google.maps.LatLng(39.676502,-105.162101);
// function that soley initializes the new map object
function initialize() {
var mapOptions = {
zoom: 10,
center: center,
mapTypeControl: true,
mapTypeControlOptions: {
style: google.maps.MapTypeControlStyle.DROPDOWN_MENU,
},
zoomControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.SMALL,
position: google.maps.ControlPosition.LEFT_BOTTOM
},
panControl: false,
mapTypeId: google.maps.MapTypeId.TERRAIN
}
map = new google.maps.Map($('#map_canvas')[0], mapOptions);
// call the loader function
loadXML();
// Adsense Options
var adUnitDiv = document.createElement('div');
var adUnitOptions = {
format: google.maps.adsense.AdFormat.BUTTON,
position: google.maps.ControlPosition.RIGHT_BOTTOM,
publisherId: 'ca-google-maps_apidocs',
map: map,
visible: true
};
adUnit = new google.maps.adsense.AdUnit(adUnitDiv, adUnitOptions);
google.maps.event.addListener(map, 'click', function() {
infowindow.close();
});
} //<-- Initialize
// load (and map) the markers from XML data
function loadXML() {
$.get('data.xml', function(data) {
// var bounds = new google.maps.LatLngBounds(); //<--- Size map to bounds of markers LatLng
$(data).find('marker').each(function() {
var lat = $(this).attr('lat')
var lng = $(this).attr('lng')
var name = $(this).attr('name')
var type = $(this).attr('type')
var LatLng = new google.maps.LatLng(parseFloat($(this).attr('lat')),
parseFloat($(this).attr('lng')));
var myToggleData = { //<---- collecting data to be toggled on/off
type : $(this).attr('type'),
skill : $(this).attr('skill'),
eta_whatever_that_means : parseFloat($(this).attr('eta'))
}
var marker = new google.maps.Marker({
position : LatLng,
map : map,
icon : 'images/marker.png',
title : $(this).attr('name'),
data : myToggleData
});
var html ='<div id="winBackground"> <div class="winTitle">' + name + '</div> <div class="winHead">Type: <div class="winData">' + type + '</div></div> </div>';
// create the infoWindow
var infoWindow = new google.maps.InfoWindow();
// add a listener to open the infoWindow when a user clicks on one of the markers
google.maps.event.addListener(marker, 'click', function() {
infoWindow.setContent(html);
infoWindow.open(map, marker);
});
markers.push(marker);
// bounds.extend(LatLng);
});
// map.fitBounds(bounds);
});
}
// The toggleMarker function
function toggleMarkers(attr,val) {
if (markers){
for (i in markers) {
if(markers[i].data[attr] == val){
var visibility = (markers[i].getVisible() == true) ? false : true;
markers[i].setVisible(visibility);
}
}
}
}
//定义变量
var-map=null;
var标记=[];
var adUnit;
var center=newgoogle.maps.LatLng(39.676502,-105.162101);
//用于初始化新映射对象的函数
函数初始化(){
变量映射选项={
缩放:10,
中心:中心,,
mapTypeControl:true,
mapTypeControlOptions:{
样式:google.maps.MapTypeControlStyle.DROPDOWN_菜单,
},
动物控制:对,
ZoomControl选项:{
样式:google.maps.ZoomControlStyle.SMALL,
位置:google.maps.ControlPosition.LEFT_底部
},
泛控制:错误,
mapTypeId:google.maps.mapTypeId.TERRAIN
}
map=new google.maps.map($('map#u canvas')[0],mapOptions);
//调用loader函数
loadXML();
//Adsense选项
var adUnitDiv=document.createElement('div');
var adUnitOptions={
格式:google.maps.adsense.AdFormat.BUTTON,
位置:google.maps.ControlPosition.RIGHT\u底部,
publisherId:“ca-google-maps_apidocs”,
地图:地图,
可见:正确
};
adUnit=new google.maps.adsense.adUnit(adUnitDiv,adUnitOptions);
google.maps.event.addListener(映射,'click',函数(){
infowindow.close();
});
}//不要为每个标记创建新的信息窗口。仅创建一个信息窗口,然后在更改它时,执行以下操作:
infowin.setContent("");
infowin.open(map, marker);
这将在地图单击时关闭所有信息窗口(无需引用信息窗口对象)
试着这样做:
if(popup) {
popup.close();
}
popup = new google.maps.InfoWindow({
content:'My New InfoWindow',
});
popup.open(map, marker);
试试这个,会有用的
if(popup) {
popup.close();
}
popup = new google.maps.InfoWindow({
content:'My New InfoWindow',
});
popup.open(map, marker);
google.maps.event.addListener(marker, 'click', function() {
if(!marker.open){
infowindow.open(map,marker);
marker.open = true;
}
else{
infowindow.close();
marker.open = false;
}
google.maps.event.addListener(map, 'click', function() {
infowindow.close();
marker.open = false;
});
});