Google maps api 3 谷歌地图Api v3,如何获取自定义信息框列表(自定义覆盖)?
我创建了自定义覆盖使用 如何获取已创建覆盖(或数组,或其他)的列表Google maps api 3 谷歌地图Api v3,如何获取自定义信息框列表(自定义覆盖)?,google-maps-api-3,overlay,Google Maps Api 3,Overlay,我创建了自定义覆盖使用 如何获取已创建覆盖(或数组,或其他)的列表 我需要它,因为我需要能够关闭其中的一些。您需要跟踪在数组中创建的覆盖,如果需要关闭其中的一些覆盖,您可以在数组中找到它们,并在它们上设置映射(null)或另一个除去它们的方法(下面示例中的close())。为阵列中的标记或覆盖创建自定义id非常有用,这样可以快速定位它们 下面是一个从Google Maps Utils库关闭自定义信息框的示例 <html> <head> <script type=
我需要它,因为我需要能够关闭其中的一些。您需要跟踪在数组中创建的覆盖,如果需要关闭其中的一些覆盖,您可以在数组中找到它们,并在它们上设置映射(null)或另一个除去它们的方法(下面示例中的close())。为阵列中的标记或覆盖创建自定义id非常有用,这样可以快速定位它们 下面是一个从Google Maps Utils库关闭自定义信息框的示例
<html>
<head>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script src="http://google-maps-utility-library-v3.googlecode.com/svn/tags/infobox/1.1/src/infobox.js"></script>
<script type="text/javascript">
//this is the array to store our custom objects in
ibArray = [];
//standard stuff
function initialize() {
var secheltLoc = new google.maps.LatLng(49.47216, -123.76307);
var myMapOptions = {
zoom: 15
,center: secheltLoc
,mapTypeId: google.maps.MapTypeId.ROADMAP
};
var theMap = new google.maps.Map(document.getElementById("map_canvas"), myMapOptions);
var marker = new google.maps.Marker({
map: theMap
,position: new google.maps.LatLng(49.47216, -123.76307)
,visible: true
});
var boxText = document.createElement("div");
boxText.style.cssText = "border: 1px solid black; margin-top: 8px; background: yellow; padding: 5px;";
boxText.innerHTML = "City Hall, Sechelt<br>British Columbia<br>Canada";
var myOptions = {
content: boxText
,disableAutoPan: false
,maxWidth: 0
,pixelOffset: new google.maps.Size(-140, 0)
,zIndex: null
,boxStyle: {
background: "url('tipbox.gif') no-repeat"
,opacity: 0.75
,width: "280px"
}
,closeBoxMargin: "10px 2px 2px 2px"
,closeBoxURL: "http://www.google.com/intl/en_us/mapfiles/close.gif"
,infoBoxClearance: new google.maps.Size(1, 1)
,isHidden: false
,pane: "floatPane"
,enableEventPropagation: false
};
var ib = new InfoBox(myOptions);
//store your info box in the array with a custom id - there are number of ways you can index this - it really depends on what you are doing
//you will need to all your objects that you want to close later.
ibArray.push({myId:"1234",box: ib});
//open the box
ib.open(theMap, marker);
}
//close the box with an id passed to this function
function closeBox(id){
for (i=0;i<ibArray.length;i++) {
if (ibArray[i].myId==id){
myBox = ibArray[i].box;
myBox.close();
}
}
}
</script>
</head>
<body onload="initialize()">
<div id="map_canvas" style="width:100%; height:50%"></div>
<p>
<input type="button" value="close box with custom id" onclick="javascript:closeBox('1234')">
</body>
</html>
//这是存储自定义对象的数组
ibArray=[];
//标准材料
函数初始化(){
var secheltLoc=new google.maps.LatLng(49.47216,-123.76307);
var myMapOptions={
缩放:15
,中心:secheltLoc
,mapTypeId:google.maps.mapTypeId.ROADMAP
};
var theMap=new google.maps.Map(document.getElementById(“Map_canvas”),myMapOptions);
var marker=new google.maps.marker({
地图:主题地图
,位置:new google.maps.LatLng(49.47216,-123.76307)
,可见:真
});
var-boxText=document.createElement(“div”);
boxText.style.cssText=“边框:1px纯黑色;页边距顶部:8px;背景:黄色;填充:5px;”;
boxText.innerHTML=“加拿大不列颠哥伦比亚省第二市政厅”;
变量myOptions={
内容:boxText
,disableAutoPan:false
,最大宽度:0
,pixelOffset:new google.maps.Size(-140,0)
,zIndex:null
,boxStyle:{
背景:“url('tipbox.gif')不重复”
,不透明度:0.75
,宽度:“280px”
}
,closeBoxMargin:“10px 2px 2px 2px”
,closeBoxURL:“http://www.google.com/intl/en_us/mapfiles/close.gif"
,infoBoxClearance:newgoogle.maps.Size(1,1)
,isHidden:错
,窗格:“浮动窗格”
,enableEventPropagation:false
};
var ib=新信息框(myOptions);
//使用自定义id将您的信息框存储在数组中-您可以使用多种方法对此进行索引-这实际上取决于您正在执行的操作
//以后需要关闭所有要关闭的对象。
推送({myId:“1234”,框:ib});
//打开盒子
ib.open(地图、标记);
}
//关闭传递给此函数的id的框
功能关闭盒(id){
对于(i=0;i