BMap 百度地图点击marker换图标

百度 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,
          }
        })

你可能感兴趣的:(BMap 百度地图点击marker换图标)