Javascript 根据类型属性隐藏/显示某些标记,google maps api v3
我试图根据标记的“类型”在谷歌地图上隐藏/显示标记。我从JSON获取“类型”。我已经搜索了google文档(如果我错了,请纠正我),但他们的示例似乎不起作用,并且没有解释如何根据从JSON中提取的属性删除/显示标记。这是他们的例子 通过使用if语句,根据每种类型,我已经有了不同的标记,但仍然无法选择隐藏或显示它们。下面我写了我的jquery尝试,但它不起作用Javascript 根据类型属性隐藏/显示某些标记,google maps api v3,javascript,google-maps,Javascript,Google Maps,我试图根据标记的“类型”在谷歌地图上隐藏/显示标记。我从JSON获取“类型”。我已经搜索了google文档(如果我错了,请纠正我),但他们的示例似乎不起作用,并且没有解释如何根据从JSON中提取的属性删除/显示标记。这是他们的例子 通过使用if语句,根据每种类型,我已经有了不同的标记,但仍然无法选择隐藏或显示它们。下面我写了我的jquery尝试,但它不起作用 var type_1_icon = 'img/icon_1.png'; var type_2_icon =
var type_1_icon = 'img/icon_1.png';
var type_2_icon = 'img/icon_2.png';
this.display_markers = function(){
downloadUrl ("xml_output.php", function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var site_name = markers[i] .getAttribute("site_name");
var site_country = markers[i] .getAttribute("site_country");
var site_state = markers[i] .getAttribute("site_state");
var site_desc = markers[i] .getAttribute("site_desc");
var type = markers[i] .getAttribute("type");
var site_lat = markers[i] .getAttribute("site_lat");
var site_lng = markers[i] .getAttribute("site_lng");
var point = new google.maps.LatLng(
parseFloat(markers[i] .getAttribute("site_lat")),
parseFloat(markers[i] .getAttribute("site_lng")));
var html = " /* HTML CONTENT */ ";
if (type == 'type_1')
{
var marker = new google.maps.Marker({
position: point,
map: map,
icon: type_1_icon
});
}
else if (type == 'Type_2')
{
var marker = new google.maps.Marker({
map: map,
position: point,
icon: type_2_icon
});
}
else
{
var markericon ='images/icon_yellow.png';
var marker = new google.maps.Marker({
map: map,
position: point,
icon: markericon
});
}
var hidden_marker = false;
function toggleGroup(type) {
for (var i = 0; i < markers[type].length; i++) {
var marker = markers[type][i];
if (hidden_marker == true) {
marker.setMap(map);
hidden_marker = false;
} else {
marker.setMap(null);
hidden_marker = true;
}
}
}
// UI Click buttons
$('#fltr_btn').click(function(){
toggleGroup('type_1');
});
bindInfoWindow(marker, map, InfoWindow, html);
}
});
var type_1_icon='img/icon_1.png';
var type_2_icon='img/icon_2.png';
this.display_markers=函数(){
下载URL(“xml_output.php”,函数(数据){
var xml=data.responseXML;
var markers=xml.documentElement.getElementsByTagName(“标记”);
对于(var i=0;i
site\u dive\u类型看起来有误。如果(marker.ishiden)看起来是错误的-您只是将地图设置为null以隐藏标记,但这不会将其状态更改为hidden它只是意味着您无法看到它。感谢该标记,我编辑了site_dive_类型。这是问题中的一个错误。您需要一个变量来跟踪标记是否可见,然后将其地图设置为null以隐藏标记em并将他们的地图设置回正确的地图以再次显示他们。谢谢,是的,我更新了toggleGroup功能,现在一切正常吗?