Javascript 谷歌地图API 3中复选框的问题

Javascript 谷歌地图API 3中复选框的问题,javascript,google-maps,checkbox,google-maps-markers,Javascript,Google Maps,Checkbox,Google Maps Markers,我试图在我的网站上嵌入的谷歌地图页面上显示大量的标记。目前,我有地图和标记工作,但我也试图通过我添加到代码中的4个复选框对这些标记进行排序 但是,选中复选框时,它们不会执行任何操作。几天来,我一直在试图找出我的代码的问题,但我无法指出这个问题 ['Anchorage Air Route Traffic Control Center (ZAN)', 61.228391,-149.779551,1], ['Anchorage TRACON (A11)', 61.17736,-149.979644,

我试图在我的网站上嵌入的谷歌地图页面上显示大量的标记。目前,我有地图和标记工作,但我也试图通过我添加到代码中的4个复选框对这些标记进行排序

但是,选中复选框时,它们不会执行任何操作。几天来,我一直在试图找出我的代码的问题,但我无法指出这个问题

['Anchorage Air Route Traffic Control Center (ZAN)', 61.228391,-149.779551,1], 
['Anchorage TRACON (A11)', 61.17736,-149.979644,2],
['Allentown Tower (ABE)', 40.658666,-75.440991,3],
['Anchorage ATCT (ANC)', 61.177515,-149.979644,4],
var markers = [];     
var i, newMarker;     
for (i = 0; i < facilities.length; i++) 
{newMarker = new google.maps.Marker({        
position: new google.maps.LatLng(facilities[i][1], facilities[i][2]),    
map: map,
title: facilities[i][0],
clickable:true,
zindex: 10,      
});
newMarker.category = facilities[i][3];      
newMarker.setVisible(true);       
markers.push(newMarker);

}   


 function displayMarkers(categ) {      
var i, categ;       
for (i = 0; i < markers.length; i++) {        
if (markers[i].category === categ && markers[i].getVisible()== true) 
{         
 markers[i].setVisible(false);        
 } 
else if (markers[i].category === categ && markers[i].getVisible()== false) 
{
    markers[i].setVisible(true);        
}
 }    
}
[“安克雷奇航线交通控制中心(ZAN)”,61.228391,-149.779551,1],
[Anchorage-TRACON(A11)”,61.17736,-149.979644,2],
['Allentown Tower(ABE)'40.658666,-75.440991,3],
[Anchorage ATCT(ANC)”,61.177515,-149.979644,4],
var标记=[];
var i,新标记;
对于(i=0;i
然后,在页面正文中,我有: id=“artccb”value=“ARTCC”onclick=“显示标记(1)”>
ARTCC

<input type="checkbox" checked="checked"           
id="traconb" value="TRACON" onclick="displayMarkers(2)">     
<label>TRACON</label>  

<input type="checkbox" checked="checked"           
id="bothb" value="ATCT/TRACON" onclick="displayMarkers(3)">     
<label>ATCT/TRACON</label> 

 <input type="checkbox" checked="checked"           
id="atctb" value="ATCT" onclick="displayMarkers(4)">     
<label>ATCT</label> 

</div> 

<body onload="initialize()">

特雷肯
ATCT/TRACON
ATCT

在地图中添加标记的部分是否具有单独的功能?如果是,则
标记
数组在
显示标记
函数中不可见。 放置
var标记=[]在全局范围内,它应该可以工作。
编辑:我所说的全局范围是指:

var markers = [];
function initialize() {
...
}
function displayMarkers(...
编辑2: 同样在
显示标记中
替换:

var i, categ;


您不应该重新定义
categ
变量,因为它是作为参数传递的。

感谢您的快速响应。我对这种编程是新手,不知道你所说的全局范围是什么意思。添加到地图中的标记是一个单独的函数,因此这似乎是一个问题。你能再解释一下全球范围吗?谢谢。如果您在任何函数之外定义变量,那么它就在全局范围内。所以把
var标记=[]在开始定义init函数之前。我尝试在init函数之前定义markers变量,但复选框仍然无法切换标记。仍然不确定问题出在哪里。你还有其他建议吗?
var i;