热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

openlayer中控制图层的显示和隐藏

参考:openlayers6【十二】vue切片图层TileLayer切换地图底图,图层叠加效果_范特西是只猫的博客-CSDN博客_vue图层叠加方式一

参考:openlayers6【十二】vue 切片图层 TileLayer 切换地图底图,图层叠加效果_范特西是只猫的博客-CSDN博客_vue 图层叠加 

方式一:Layer.setVisible(true)

一种是通过Layer.setVisible(true)的方式让图层显示或隐藏,这种方式只是让图层中CSS的visible属性改为了false,其dom依然存在于页面中;

此外,封装图层显示隐藏的方法。每一个图层都要有name属性,且全局唯一

switchLayerVisible(layerName = "", map = {}, isVisibleNow = true) {map.getLayers().getArray().forEach((layer) => {if (layer.get("name") == layerName) {layer.setVisible(isVisibleNow);}});},

配合watch使用。如下showLayer为bool类型 

watch: {showDk: {handler: function () {this.switchLayerVisible("dk", this.map, this.showDk);},},}

只需改变showDk的bool值,即可改变图层‘dk’的显示和隐藏。

方式二:map.removeLayer(Layer)

另一种方式是让map移除图层,即map.removeLayer(Layer),这种方式会消除图层dom

代码实现:

街道图
影像图
地形图



其中,设置选框样式: 

//多选框::v-deep .el-checkbox__label {color: white;}//单选框::v-deep .el-radio__label {color: white;}

如果要在底图上叠加其他栅格图,那么该栅格图可能会被底图覆盖导致看不见,此时,我们给图层设置zIndex属性即可,zIndex值越大,表示图层越在上面,如:zIndex:999

此外,对图层的加载移除还可使用以下思路:

判断对象A是否为空:Object.keys(A),返回一个数组,再根据Array.length判断

if(Object.keys(this.layer).length > 0){this.layer.getSource().clear();this.map.removeLayer(this.layer); this.layer={}
}this.layer=new TileLayer({source:xxxx
})


推荐阅读
  • 点击后defaultEducation的值明明改变了,但props传给子组件却watch不到 ... [详细]
  • 本文介绍了利用ARMA模型对平稳非白噪声序列进行建模的步骤及代码实现。首先对观察值序列进行样本自相关系数和样本偏自相关系数的计算,然后根据这些系数的性质选择适当的ARMA模型进行拟合,并估计模型中的位置参数。接着进行模型的有效性检验,如果不通过则重新选择模型再拟合,如果通过则进行模型优化。最后利用拟合模型预测序列的未来走势。文章还介绍了绘制时序图、平稳性检验、白噪声检验、确定ARMA阶数和预测未来走势的代码实现。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • ASP.NET2.0数据教程之十四:使用FormView的模板
    本文介绍了在ASP.NET 2.0中使用FormView控件来实现自定义的显示外观,与GridView和DetailsView不同,FormView使用模板来呈现,可以实现不规则的外观呈现。同时还介绍了TemplateField的用法和FormView与DetailsView的区别。 ... [详细]
  • 网址:https:vue.docschina.orgv2guideforms.html表单input绑定基础用法可以通过使用v-model指令,在 ... [详细]
  • 先看看ElementUI里关于el-table的template数据结构:<template><el-table:datatableData><e ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • 1.{#if}{#if|COND|}..{#elseif|COND|}..{#else}..{#if}Examples:{#if2*816}good{#else}fa ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 集合的遍历方式及其局限性
    本文介绍了Java中集合的遍历方式,重点介绍了for-each语句的用法和优势。同时指出了for-each语句无法引用数组或集合的索引的局限性。通过示例代码展示了for-each语句的使用方法,并提供了改写为for语句版本的方法。 ... [详细]
  • 本文总结和分析了JDK核心源码(2)中lang包下的基础知识,包括常用的对象类型包和异常类型包。在对象类型包中,介绍了Object类、String类、StringBuilder类、StringBuffer类和基本元素的包装类。在异常类型包中,介绍了Throwable类、Error类型和Exception类型。这些基础知识对于理解和使用JDK核心源码具有重要意义。 ... [详细]
  • Silverlight杂记控件相关
    Button控件1用于可视的表现的属性2索引和状态3模板4button的内容之所以可以放任意的控件是因为调用使用一个ContentPresenter控件来呈现。5button控件的 ... [详细]
author-avatar
破晓sxy
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有