百度 Marker setIcon 更换
第一种方式:使用百度地图api,setIcon,简单两步就可以实现
marker.addEventListener("click", function (event) {
// 设置新的地图图标
let lightMyIcon = new BMap.Icon(
newIcon,
new BMap.Size(25, 25), {
imageSize: new BMap.Size(25, 25)
});
// 使用setIcon
marker.setIcon(lightMyIcon)
})
第二种方式:情景:有多个点,点击的marker换图标,其他marker保持原样
marker.addEventListener("click", function (event) {
// 绑定一个变量,如果为true,先把之前加的图标去掉
if (_self.lightPoint) {
_self.bMap.removeOverlay(_self.newmarker)
}
// 在相同位置新增一个newMarker,这样相当于覆盖掉原有的图标
let point = new BMap.Point(event.target.point.lng, event.target.point.lat)
_self.newmarker = new BMap.Marker(point, {icon: lightMyIcon});
_self.bMap.addOverlay(_self.newmarker);
_self.lightPoint = true
})
测试中 第一种 方法 也 可以用 用于多个点 这个还是 比较简单
this.point = new BMap.Icon(this.icon, new BMap.Size(36, 36),
{imageSize : new BMap.Size(36, 36), anchor : new BMap.Size(23, 15.6)})
for(var i = 0; i < list.length; i++) {
let info = list[i].entity
let p0 = info.branchLongitude;
let p1 = info.branchLatitude;
let maker = this.addMapMarker(new window.BMap.Point(p0, p1), i);
maker.addEventListener("click", function (b){
//上一个
_this.preMarker.setIcon(_this.icon)
// 当前
maker.setIcon(_this.bigMarker)
// 替换
_this.preMarker = maker
_this.locationItem = {
name: info.name,
}
})