Javascript 谷歌地图API 3中复选框的问题
我试图在我的网站上嵌入的谷歌地图页面上显示大量的标记。目前,我有地图和标记工作,但我也试图通过我添加到代码中的4个复选框对这些标记进行排序 但是,选中复选框时,它们不会执行任何操作。几天来,我一直在试图找出我的代码的问题,但我无法指出这个问题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,
['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;