openlayers(二)添加炫酷的3D效果并加上滤镜

这篇具有很好参考价值的文章主要介绍了openlayers(二)添加炫酷的3D效果并加上滤镜。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

先上效果图,可用于大屏展示的效果

openlayers 3d,openlayers,3d,javascript,开发语言
3D效果设计如下openlayers(一)添加3D图
注:偏移量需要根据实际的多边形大小来设置

在之前的基础上添加了阴影效果,并加上canvas滤镜

添加滤镜效果,专为一个图层添加滤镜

this.googleImgLayer = new TileLayer({
      className: 'stamen',
      source: new XYZ({
        // url: 'https://gac-geo.googlecnapps.cn/maps/vt?lyrs=s,m&gl=&x={x}&y={y}&z={z}',
        url: 'http://t0.tianditu.com/DataServer?T=img_w&x={x}&y={y}&l={z}&tk=' + OlMapConfig.tk,
        wrapX: false,
        crossOrigin: "anonymous",
        tileLoadFunction: function (imageTile: any, src: string) {
          // 使用滤镜 将白色修改为深色
          let img = new Image()
          // img.crossOrigin = ''
          // 设置图片不从缓存取,从缓存取可能会出现跨域,导致加载失败
          img.setAttribute('crossOrigin', 'anonymous')
          img.onload = function () {
            let canvas = document.createElement('canvas')
            let w = img.width
            let h = img.height
            canvas.width = w
            canvas.height = h
            let context: any = canvas.getContext('2d')
            context.filter = 'grayscale(98%) invert(100%) sepia(20%) hue-rotate(180deg) saturate(1600%) brightness(80%) contrast(90%)'
            // context.filter = 'sepia(100%)'
            context.drawImage(img, 0, 0, w, h, 0, 0, w, h)
            imageTile.getImage().src = canvas.toDataURL('image/png')
          }
          img.src = src
        },
      })
    })

添加阴影效果

//添加阴影的图层
    const highlightLayer: any = olMap.addHighlightLayer(level2Layer);
    highlightLayer.setZIndex(-1)
    // highlightLayer.setOpacity(0.5)
    level2Source.once('change', (evt: any) => {
      const source = evt.target;
      if (source.getState() === 'ready') {
        source.forEachFeature((f: any) => {
          highlightLayer.setStyle(() => {
              return new Style({
                fill: new Fill({color: (f.style && f.style.getFill) ? f.style.getFill().getColor() : 'rgba(255,255,255,1)'}),
                // stroke: new Stroke({color: 'rgba(255, 255, 255, 0.2)', width: 5})
              });
            }
          );
          highlightLayer.getSource().addFeature(f);
        })
      }
    })

完整代码:github文章来源地址https://www.toymoban.com/news/detail-798000.html

到了这里,关于openlayers(二)添加炫酷的3D效果并加上滤镜的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • openlayers学习(一)仿3D效果地图

    最近看到一些3D的地图,觉得很炫酷,实现按道理来说应该是用3D类的地图来实现,刚好在学习一些openlayers的内容,所以也尝试一下,但最终效果也仅局限于单个polygon下。 其他实现方式应该还是使用cesium或者mapbox或者echarts会方便很多。 学了一趟openlayers后,发现并没有那种可

    2023年04月26日
    浏览(21)
  • Jetpack compose:炫酷的按钮点击效果

    屏幕的每个组件在与用户交互时都有其给用户反馈的方式。例如,当用户触摸 Toggle 按钮时,它会更改其状态以响应交互。这种交互给用户一种感觉。 在此博客中,我们将实现一些自定义点击效果,使您的按钮点击更具吸引力。 默认情况下,按钮在被触摸时会显示波纹效果。

    2024年02月07日
    浏览(34)
  • 你还在给Midjourney充值?还不来试试超赞的阿里免费 AI 绘画?刚弄了个炫酷的3D头像,支持图生图,赶紧燃烧起来吧,谁还没事充什么值 ?

    阿里巴巴的「D.Dedign推友AI绘画小工具」不仅免费,而且功能超级强大非常方便使用!它像是一个神奇的画笔盒,里面装满了各种绚丽多彩的创意工具。无论你是想要3D头像还是炫酷的场景效果,它都能帮你搞定! 而最近,「D.Dedign推友」又引进了一项新功能,叫做「AI反应堆

    2024年02月16日
    浏览(33)
  • 【Unity ShaderGraph】| 如何快速制作一个炫酷的 全息投影效果

    前言 本文将使用ShaderGraph制作一个 炫酷的 全息投影效果 ,可以直接拿到项目中使用。 对ShaderGraph还不了解的小伙伴可以参考这篇文章:【Unity ShaderGraph】| Shader Graph入门介绍 | 简介 | 配置环境 | 窗口介绍 | 简单案例 下面就开始看一下具体的制作流程,然后自己动手制作一个

    2024年02月05日
    浏览(32)
  • 为你的网站加上Loading等待加载效果吧 | Loading页面加载添加教程

    为你的网站加上Loading等待加载效果吧 | Loading页面加载添加教程 效果图 : 教程开始 新建一个loading样式css 将以下代码放进去 然后引用这个文件 code #Loadanimation{    background-color:#fff;    height:100%;    width:100%;    position:fixed;    z-index:1;    margin-top:0px;top:0px;     } #Loadanimation

    2024年02月09日
    浏览(91)
  • 3D LUT 滤镜 shader 源码分析

    最近在做滤镜相关的渲染学习,目前大部分 LUT 滤镜代码实现都是参考由 GPUImage 提供的 LookupFilter 的逻辑,整个代码实现不多。参考网上的博文也有各种解释,参考了大量博文之后终于理解了,所以自己重新整理了一份,方便以后阅读理解,对整体代码的实现过程结合LUT的原

    2024年02月06日
    浏览(31)
  • 炫酷3D按钮

            该样式有一种3D变换的高级感,大家可以合理利用这些样式到自己的按钮上          这个按钮的亮点就是灵活使用了3D变换的相关知识,比如变换原点,设置景深,3D旋转等,会了其中一个便可以举一反三,期待大家的修改指正。 

    2024年02月19日
    浏览(24)
  • 【THREE.JS】网页中的炫酷3D

    概述 :基于 WebGL 的三维引擎,目前是国内资料最多、使用最广泛的 三维引擎 ,可以制作一些 3D 可视化项目 目前随着 元宇宙 概念的爆火, THREE 技术已经深入到了物联网、VR、游戏、数据可视化等多个平台。 最近一段时间主要对之前学习three.js的总结和记录,记录只对自己

    2024年02月03日
    浏览(32)
  • 记录--一个炫酷的css动画

    最近有一个需求,要我实现一个动画效果,效果如下 简单分析了一下效果,是一个3d的效果,首先是一个圆,接着是两段圆环,第三层是一堆小圆环,最里面是一些线上运动,有着渐变色的矩形。 第一层的圆环很简单。 第二层的圆环其实也挺简单的 ,只要在设置了border-ra

    2024年02月11日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包