Vue OpenLayer 为地图绘制风场效果


Posted in Vue.js onApril 24, 2022

一个简单的小demo,就是在一个openlayers地图上面添加风场效果。

话不多说,直接进入正题。

首先我们需要安装一个插件。

插件地址:https://www.npmjs.com/package/ol-wind

npm install ol-windy --save

然后我们需要一个数据来绘制风场,我在文件最后上传一下文件。

接下来很简单,就是下面的代码。

<template>
  <div class="home">
    <div id="map" ref="map"></div>
  </div>
</template>

<script>
  import 'ol/ol.css';
  import Draw from 'ol/interaction/Draw';
  import Map from 'ol/Map';
  import Overlay from 'ol/Overlay';
  import View from 'ol/View';
  import { Circle as CircleStyle, Fill, Stroke, Style } from 'ol/style';
  import { LineString, Polygon } from 'ol/geom';
  import { OSM, Vector as VectorSource } from 'ol/source';
  import { Tile as TileLayer, Vector as VectorLayer } from 'ol/layer';
  import { getArea, getLength } from 'ol/sphere';
  import { unByKey } from 'ol/Observable';
  import { WindLayer } from 'ol-wind'
  import gfs from './gfs.json'

  var map = null

  export default {
    name: "Home",
    data() {
      return {
      }
    },
    mounted() {
      this.initMap()
    },
    methods: {
      // 初始化地图
      initMap() {
        map = new Map({
          layers: [
            new TileLayer({
              source: new OSM(),
            }),
          ],
          target: 'map',
          view: new View({
            center: [120, 35],
            zoom: 5,
            maxZoom: 18,
            projection: 'EPSG:4326',
          }),
        });

        this.addWindyLayer()
      },

      // 添加风流粒子
      addWindyLayer() {
        const windLayer = new WindLayer(gfs, {
          foceRender: false,
          windOptions: {
            globalAlpha: 0.9,  // 粒子透明度
            maxAge: 10,  // 存活最大帧数
            velocityScale: 1/100,  // 粒子速度
            frameRate: 20,  // 每50贞绘制一次
            paths: 5000,  // 粒子数量
            colorScale: () => {
              return "#00b3ef"
            },
            width: 3,
          }
        })
        map.addLayer(windLayer)
      },
    },
  };

</script>
<style scoped>
  .home {
    width: 100%;
    height: 100%;
    background-color: aliceblue;
    position: relative;
  }

  #map {
    height: 100%;
    width: 100%;
  }
</style>

其中 gfs 文件就是风场数据。

gfs文件下载【点这里

然后看效果~

Vue OpenLayer 为地图绘制风场效果

到此这篇关于Vue OpenLayer 为地图绘制风场效果的文章就介绍到这了!


Tags in this post...

Vue.js 相关文章推荐
深入了解Vue3模板编译原理
Nov 19 Vue.js
基于vue项目设置resolves.alias: '@'路径并适配webstorm
Dec 02 Vue.js
vue 通过base64实现图片下载功能
Dec 19 Vue.js
vue中配置scss全局变量的步骤
Dec 28 Vue.js
vue+element UI实现树形表格
Dec 29 Vue.js
vue watch监控对象的简单方法示例
Jan 07 Vue.js
Vue 实例中使用$refs的注意事项
Jan 29 Vue.js
详解vue身份认证管理和租户管理
May 25 Vue.js
Vue3.0中Ref与Reactive的区别示例详析
Jul 07 Vue.js
前端vue+express实现文件的上传下载示例
Feb 18 Vue.js
Vue如何清空对象
Mar 03 Vue.js
vue项目打包后路由错误的解决方法
Apr 13 Vue.js
vue二维数组循环嵌套方式 循环数组、循环嵌套数组
vue @click.native 绑定原生点击事件
Apr 22 #Vue.js
vue实现省市区联动 element-china-area-data插件
vue修饰符.capture和.self的区别
Apr 22 #Vue.js
vue 自定义组件添加原生事件
Apr 21 #Vue.js
vue 自定义的组件绑定点击事件
Apr 21 #Vue.js
vue组件vue-esign实现电子签名
Apr 21 #Vue.js
You might like
php中CI操作多个数据库的代码
2012/07/05 PHP
WordPress中访客登陆实现邮件提醒的PHP脚本实例分享
2015/12/14 PHP
详解PHP发送邮件知识点
2018/05/06 PHP
PHP实现的简单留言板功能示例【基于thinkPHP框架】
2018/12/07 PHP
PHP正则表达式笔记与实例详解
2019/05/09 PHP
use jscript List Installed Software
2007/06/11 Javascript
基于jquery的checkbox下拉框插件代码
2010/06/25 Javascript
Jquery练习之表单验证实现代码
2010/12/14 Javascript
JavaScript实现的in_array函数
2014/08/27 Javascript
nodejs导出excel的方法
2015/06/30 NodeJs
详解Bootstrap创建表单的三种格式(一)
2016/01/04 Javascript
AngularJS上拉加载问题解决方法
2016/05/23 Javascript
jQuery之动画ajax事件(实例讲解)
2017/07/18 jQuery
详解webpack引用jquery(第三方模块)的三种办法
2019/08/21 jQuery
java实现单链表增删改查的实例代码详解
2019/08/30 Javascript
关于layui导航栏不展示下拉列表的解决方法
2019/09/25 Javascript
[02:42]岂曰无衣,与子同袍!DOTA2致敬每一位守护人
2020/02/17 DOTA
用python实现批量重命名文件的代码
2012/05/25 Python
python为tornado添加recaptcha验证码功能
2014/02/26 Python
深入解析Python中的list列表及其切片和迭代操作
2016/03/13 Python
python3使用PyMysql连接mysql数据库实例
2017/02/07 Python
python中正则表达式的使用方法
2018/02/25 Python
Python3爬虫学习之MySQL数据库存储爬取的信息详解
2018/12/12 Python
Python判断一个list中是否包含另一个list全部元素的方法分析
2018/12/24 Python
linux环境中没有网络怎么下载python
2019/07/07 Python
Python使用lambda表达式对字典排序操作示例
2019/07/25 Python
python之PyQt按钮右键菜单功能的实现代码
2019/08/17 Python
python的range和linspace使用详解
2019/11/27 Python
Python判断远程服务器上Excel文件是否被人打开的方法
2020/07/13 Python
使用Python绘制台风轨迹图的示例代码
2020/09/21 Python
利用HTML5 Canvas API绘制矩形的超级攻略
2016/03/21 HTML / CSS
EJB与JAVA BEAN的区别
2016/08/29 面试题
政治表现评语
2014/05/04 职场文书
单位作风建设剖析材料
2014/10/11 职场文书
2014年学生会工作总结
2014/11/07 职场文书
环保建议书范文
2015/09/14 职场文书