今天要根据代码写一个需求,是在别人已经写好代码的基础上增加一个功能,百度地图中添加了自定义的图标,要求点击左侧sidebar中的复选框时做出不同的选择,选中时显示相应WiFi图标,取消选中状态时对应的图标也相应的隐藏,查了半天的百度API,终于找到了方法。
复选框控制显示的图标:
初始状态下的显示红蓝皆有:
筛选之后的状态:
网上有很多关于自定义覆盖物的博客和教程,找了半天,发现不是自己想要的,在这里,创建的覆盖物是百度API中默认的,不存在自定义的说法,只是对应的改变了显示的图标,调用百度API创建图标的代码是这样的:
// 调用百度地图API功能
var map = new BMap.Map("allmap");
map.centerAndZoom(new BMap.Point(116.331398,39.897445),11);
map.enableScrollWheelZoom(true);
// 这里是关键,在Icon对象的原型中添加属性和方法,用来标记对应的图标,用这个在遍历对象的时候获取到对应的覆盖物
BMap.Icon.prototype.name = "";
BMap.Icon.prototype.setName = function(name){
this.name = name;
}
// 标记有wif