当前位置: 首页 > news >正文

openlayers4通过拖动滑动条设置图层颜色透明度

在GIS项目实践过程中,需要实现各个功能区的叠加图层实现,以及设置它们各自的透明度,功能区分为1类、2类、3类、4a类、4b类等。每个功能区的加载均是通过一个json文件加载到map。要求可以单独查看某个功能区,并通过拖动滚动条可以控制每个图层的透明度。
1.首先,在html5中通过input type= “range”可以实现滚动条的拖动,具体实现代码如下:

<input type="range" value="30" min="0" max="100" />

实现效果如下:
这里写图片描述
通过拖动滚动轴,可以控制颜色透明度的改变,颜色对比如下图:

这里写图片描述
这里写图片描述

下面给出主要的实现代码:

var source3 = new ol.source.Vector({
    projection: 'EPSG:4326',
    url: './datajson/functional3.json',
    format: new ol.format.GeoJSON()
});
var imageLayer3 = new ol.layer.Vector({ //定义图层用于加载功能区
    source: source3,
    style: imagestyleFunction
});
$(".gongneng_display_opacity input").on("input",function(){
    var value = $(this).val();
    var opacity_color = 1-value/100;
    var gongneng_type = $(this).parents("li").find(".gongneng_type").attr("id");
    if(gongneng_type=="1"){//第一类功能区对应这个颜色
        imageLayer1.setStyle(new ol.style.Style({
            stroke:new ol.style.Stroke({
                color:[204, 255, 204,opacity_color],
                width:1
            }),
            fill:new ol.style.Fill({
                color:[204, 255, 204,opacity_color]
            })
        }));
    }else if(gongneng_type=="3"){//第三类功能区对应这个颜色,其中省略了第2类,4a类,4b类功能区
        imageLayer3.setStyle(new ol.style.Style({
            stroke:new ol.style.Stroke({
                color:[153, 51, 0,opacity_color],
                width:1
            }),
            fill:new ol.style.Fill({
                color:[153, 51, 0,opacity_color]
            })
        }));
    }else{
    }
});

以上就是更改图层透明度的代码。。从左向右拖动滚动轴,表示颜色从不透明到透明,所以opacity_color = 1-value/100,value的值介于0-100之间,因此value/100就相当于一个百分数。。

相关文章:

  • openlayers4判断一个点是否在闭合图形的内部
  • 常见电脑屏幕分辨率
  • css3更改默认滚动条样式-webkit-scrollbar
  • GIS开发-天地图按照地名搜索定位
  • css3中的伪类before和after常见用法
  • openlayers4获取一个图形的边界
  • Vue.js小例子--tab选项卡切换
  • 使用openlayers3加载png格式图片
  • openalyers为自定义覆盖物overlay添加点击事件
  • absolute和float的区别
  • float定位对内联元素和块状元素的影响
  • javascript实现拖拽弹框高度,可调节弹框大小
  • vue中的template标签
  • SVN文件夹图标显示不正常的解决办法
  • 集中式开发和分布式开发的区别
  • 时间复杂度分析经典问题——最大子序列和
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • AWS实战 - 利用IAM对S3做访问控制
  • canvas 绘制双线技巧
  • ES6核心特性
  • flutter的key在widget list的作用以及必要性
  • Intervention/image 图片处理扩展包的安装和使用
  • Java Agent 学习笔记
  • javascript面向对象之创建对象
  • Linux中的硬链接与软链接
  • Redis字符串类型内部编码剖析
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • Spring Cloud Feign的两种使用姿势
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 服务器之间,相同帐号,实现免密钥登录
  • 计算机在识别图像时“看到”了什么?
  • 解决iview多表头动态更改列元素发生的错误
  • 前端面试总结(at, md)
  • 【云吞铺子】性能抖动剖析(二)
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​第20课 在Android Native开发中加入新的C++类
  • # 透过事物看本质的能力怎么培养?
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #include<初见C语言之指针(5)>
  • #pragma预处理命令
  • #Z2294. 打印树的直径
  • #每天一道面试题# 什么是MySQL的回表查询
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • (转)可以带来幸福的一本书
  • *** 2003
  • .net core 6 集成和使用 mongodb
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .Net(C#)自定义WinForm控件之小结篇
  • .NET导入Excel数据
  • .NET关于 跳过SSL中遇到的问题
  • /etc/skel 目录作用