基于百度地图api清除指定覆盖物(Overlay)的方法


Posted in Javascript onJanuary 26, 2018

最近用百度地图api做项目,需要同时在地图显示marker与Polyline,且Polyline需要根据点击来显示或清除,所以遇到了清除指定覆盖物的问题,各种搜索后未能找到完美的解决方法,通过自己思考,摸索了一方法能解决这个问题,发出来给大家分享。好了,进入正题:

清除覆盖物有两个方法:map.removeOverlay()或者 map.clearOverlays(),clearOverlays()方法一次移除所有的覆盖物,removeOverlay()一次移除一个指定覆盖物,显然,我要一次移除一类Polyline覆盖物,这两个方法都不适用。

百度demo(http://developer.baidu.com/map/jsdemo.htm#c1_17)有removeOverlay()的例子,如下:

function deletePoint(){
    var allOverlay = map.getOverlays();
    for (var i = 0; i < allOverlay.length -1; i++){
      if(allOverlay[i].getLabel().content == "我是id=1"){
        map.removeOverlay(allOverlay[i]);
        return false;
      }
    }
  }

是通过遍历所有覆盖物来筛选所要移除的覆盖;

对于要移除一类覆盖物;可以在添加覆盖物的时候做限制设置;

第一步:在添加覆盖的时候对不需要进行移除操作的覆盖设置disableMassClear();官网文档解释如下

disableMassClear()

none 禁止覆盖物在 map.clearOverlays 方法中被清除。 (自 1.1新增)

我这里不需要对marker进行移除操作,所以设置如下:

marker.disableMassClear();

第二步:清除所要清除的覆盖物,这里需要清除所有的Polyline而不清除marker,现在可以直接使用

map.clearOverlays();

这样就能很方便的清除所有Polyline而保留marker;

第三步:当后来需要对marker进行移除操作时,可以使用enableMassClear()方法来取消禁止清除;

enableMassClear()

none 允许覆盖物在 map.clearOverlays 方法中被清除。 (自 1.1新增)

但是需要对每个marker进行恢复操作,所以需要进行遍历:

var allOverlay = map.getOverlays();
      for (var i = 0; i < allOverlay.length; i++) {
        allOverlay[i].enableMassClear();
      }

这样就恢复了所有覆盖物的可清除操作。

简单三步设置便可高效操作指定类覆盖物。

以上这篇基于百度地图api清除指定覆盖物(Overlay)的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
escape、encodeURI 和 encodeURIComponent 的区别
Mar 02 Javascript
浅谈javascript的数据类型检测
Jul 10 Javascript
jquery parent和parents的区别分析
Oct 02 Javascript
javascript数组去重的六种方法汇总
Aug 16 Javascript
javascript每日必学之循环
Feb 19 Javascript
vue.js指令v-for使用及索引获取
Nov 03 Javascript
优雅的将ElementUI表格变身成树形表格的方法步骤
Apr 11 Javascript
Vue中对iframe实现keep alive无刷新的方法
Jul 23 Javascript
IntelliJ IDEA编辑器配置vue高亮显示
Sep 26 Javascript
Postman环境变量全局变量使用方法详解
Aug 13 Javascript
ant-design-vue中tree增删改的操作方法
Nov 03 Javascript
swiperjs实现导航与tab页的联动
Dec 13 Javascript
微信小程序wx.getImageInfo()如何获取图片信息
Jan 26 #Javascript
微信小程序实现animation动画
Jan 26 #Javascript
百度地图去掉marker覆盖物或者去掉maker的label文字方法
Jan 26 #Javascript
微信小程序如何获取openid及用户信息
Jan 26 #Javascript
微信小程序如何获取用户手机号
Jan 26 #Javascript
Vue header组件开发详解
Jan 26 #Javascript
Vue shopCart 组件开发详解
Jan 26 #Javascript
You might like
PHP的加密方式及原理
2012/06/14 PHP
使用PHP接收POST数据,解析json数据
2013/06/28 PHP
ThinkPHP应用模式扩展详解
2014/07/16 PHP
php微信公众号开发之欢迎老朋友
2018/10/20 PHP
判断脚本加载是否完成的方法
2009/05/26 Javascript
JavaScript基本编码模式小结
2012/05/23 Javascript
JS文本框默认值处理详解
2013/07/10 Javascript
js中方法重载如何实现?以及函数的参数问题
2013/08/01 Javascript
使用typeof判断function是否存在于上下文
2014/08/14 Javascript
JavaScript中DOM详解
2015/04/13 Javascript
js过滤HTML标签完整实例
2015/11/26 Javascript
果断收藏9个Javascript代码高亮脚本
2016/01/06 Javascript
Bootstrap学习系列之使用 Bootstrap Typeahead 组件实现百度下拉效果
2016/07/07 Javascript
JavaScript每天必学之基础知识
2016/09/17 Javascript
jQuery快速实现商品数量加减的方法
2017/02/06 Javascript
详解使用vue脚手架工具搭建vue-webpack项目
2017/05/10 Javascript
详解vue mixins和extends的巧妙用法
2017/12/20 Javascript
vue获取dom元素注意事项
2017/12/28 Javascript
在angular 6中使用 less 的实例代码
2018/05/13 Javascript
vue3 源码解读之 time slicing的使用方法
2019/10/31 Javascript
对python以16进制打印字节数组的方法详解
2019/01/24 Python
Python提取频域特征知识点浅析
2019/03/04 Python
Python从文件中读取指定的行以及在文件指定位置写入
2019/09/06 Python
python 矢量数据转栅格数据代码实例
2019/09/30 Python
Python实现手机号自动判断男女性别(实例解析)
2019/12/22 Python
Opencv求取连通区域重心实例
2020/06/04 Python
html5新增的定时器requestAnimationFrame实现进度条功能
2018/12/13 HTML / CSS
Interhome丹麦:在线预订度假屋和公寓
2019/07/18 全球购物
小学语文教学反思
2014/02/10 职场文书
销售职业生涯规划范文
2014/03/14 职场文书
书香家庭事迹材料
2014/05/09 职场文书
党的群众路线对照检查材料
2014/09/22 职场文书
2014年会计工作总结
2014/11/27 职场文书
给老婆的道歉信
2015/01/20 职场文书
2015年世界环境日演讲稿
2015/03/18 职场文书
创业计划书之儿童理发店
2019/09/27 职场文书