地图清除打点数据

问题描述

共有10个开关,每个开关控制一种类型在地图上的打点数据,开关以单选形式。当我打开一个开关时,上次打开的开关关闭,并且清除上一次开启开关在地图上的数据,其他也如此

问题出现的环境背景及自己尝试过哪些方法

在每次打点之前取循环由开关type组成的数组,如果当前的index和
数组中当前开关对应的type值不相等时,清除其他的开关对应的打点数据

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)
delMarker()方法--传入一个type,会清除打点数据(方法可以正常清除);
span为开关对应的type值组成的数组;
下面的div为开关对应的div

getDataByType(index, e) {
    let span = \[4, 7, 5, 11, 10, 6, 3, 8, 9, 1, 2\];
    for (let i = 0; i < span.length; i++) {  
        if (span\[i\] != index) {  
            this.delMarker(span\[i\]);  
        }  
    }
}

<img id\="ulli-4" :src\="noCheckIcon" v-on:click\="getDataByType(4,$event)"/>

你期待的结果是什么?实际看到的错误信息又是什么?

当我打开一个开关时,上次打开的开关关闭,并且清除上一次开启开关在地图上的数据,问一下这个循环span的方法怎么实现
如果我描述的不清楚,还请各位义士指出,感谢大佬的解答

阅读 2.8k
1 个回答

如果硬要说问题,那就是重复清除了,delMarker运行了多次。

因为每次只会标记一种类型,所以你可以使用一个变量记忆数据

let markeType;
getDataByType(index, e) {
    if(markeType === undefined)return;
    if(markeType == index)reeturn;
    
    this.delMarker(markeType);  
    this.addMarker(index);
    
    markeType = index;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题