我可以在地图上显示一堆不同类别的位置。最终我想对它们应用过滤器。可能这个场景非常熟悉,因为我在尝试解决我的问题时在网上发现了许多场景。我把标记放在我的地图上,我找不到隐藏它们的方法。这是我的尝试方法:
function addLocations($content, id, map){
var $mapdiv = $content.find('div.map_div');
catValues = [map.catPrimary, map.catWhite, map.catGreen, map.catYellow, map.catRed, map.catBrown, map.catPurple, map.catGray, map.catOrange];
db.locations.all(function(obj){
$.each(obj, function(index, location){
if(location.value.nodeID == id){
var latitude = location.value.latitude;
var longitude = location.value.longitude;
var description = location.value.description;
var category = location.value.category;
var position = new google.maps.LatLng(latitude, longitude);
if(category == "0"){
homeLocation = position;
$mapdiv.gmap('get','map').setOptions({'center':position});
}
var marker = new google.maps.Marker({
position: position,
icon: "assets/img/marker_" + category + ".png",
category: category,
shadow: iconShadow,
});
marker.setMap( $mapdiv.gmap('get','map') );
$mapdiv.gmap('addMarker', marker).click(function() {
$mapdiv.gmap('openInfoWindow', { 'content': description + "<br/> (" + catValues[category] + ")"}, this);
});
}
});
markers = $mapdiv.gmap('get', 'markers');
for(var i = 0; i<markers.length; i++){
if(markers[i].category != "0"){
//"not primary, hiding
markers[i].setVisibile(false);
}
}
});
所有标记都显示出来,而应该隐藏的标记则不显示。在将标记添加到地图并使用它们之前,我还尝试将标记添加到数组中,但没有成功。当我在 try 和 catch 周围包含标记 [i].setVisible(false) 时,它说“对象 # 没有方法 'setVisible'。令人惊讶的是,如果我测试标记 [i].getVisible(),我得到的值为 true。我很感激提前您的帮助。