js 高德地图,地图上落点,并点击地图上的图片可进行切换图片

function markerMap(res) {
    //清空数组
    markerslist = [];
    //初始化地图插件
    var maps = new AMap.Map("informationBoard_container", {
        resizeEnable: true,//是否监控地图容器尺寸变化,默认值为false
        zoom: 10, //设置地图显示的缩放级别
        center: [res[0].longitude, res[0].latitude],
    });
    // 点标记显示内容,HTML要素字符串
    var markerContent = `<div class="custom-content-marker content-marker-img"> 
                         </div>`;
    var marker;
    for (var i = 0; i < res.length; i++) {
        if(res[i].ledType="门架式"){
            if(res[i].ledsendstate == 1){
                //门架式选中过的图片样式
                markerContent=`<div class="custom-content-marker content-marker- 
                               changeImgTwo"></div>`;
            }else{
                //门架式未选中过的图片样式
                markerContent = `<div class="custom-content-marker content-marker- 
                                 img"></div>`;
            }
        }else{
            if(res[i].ledsendstate == 1){
                //F板选中过的图片样式
                markerContent = `<div class="custom-content-marker content-marker- 
                                 changeImgOne"></div>`;
            }else{
                //F板未选中过的图片样式
                markerContent = `<div class="custom-content-marker content-marker- 
                                img"></div>`;
            }
        }
        var lon = res[i].longitude;
        var lat = res[i].latitude;
        //console.log(lon, lat)
        marker = new AMap.Marker({
            content: markerContent,
            position: [lon, lat],
            offset: new AMap.Pixel(-25, -25),
            //将事件的id等值存到e里
            extData: {
                id: res[i].id,
                longitude: lon,
                latitude: lat,
                ledType: res[i].ledType,
            }
        });
        maps.add(marker);
        var clickIon = '';
        //点标注的点击事件
        marker.on('click', function (e) {
            if (e.target.De.content == markerContent) {
                 if(e.target.De.extData.ledType=='门架式'){
                     clickIon = `<div class="custom-content-marker content-marker- 
                                 changeImgTwo"></div>`;
                 }
                 if(e.target.De.extData.ledType=='F板'){
                     clickIon = `<div class="custom-content-marker content-marker- 
                                 changeImgOne"></div>`;
                 }

            } else {
                clickIon = `<div class="custom-content-marker content-marker-img"> 
                            </div>`;
            }
            //点击后更改图片
            e.target.setContent(clickIon);
            //console.log(e);
            pushList(e.target.De.extData.id)
        });
    }
}

//判断markerslist数组里是否有ID,有就删除,没有就添加
function pushList(id) {
    if (markerslist.includes(id)) {
        markerslist.remove(id);
        //console.log(markerslist)
    } else {
        markerslist.push(id);
        //console.log(markerslist)
    }
}
Array.prototype.indexOf = function (val) {
    for (var i = 0; i < this.length; i++) {
        if (this[i] == val) return i;
    }
    return -1;
};

Array.prototype.remove = function (val) {
    var index = this.indexOf(val);
    if (index > -1) {
        this.splice(index, 1);
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值