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 相关文章推荐
vue自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
Nov 20 Vue.js
vue el-upload上传文件的示例代码
Dec 21 Vue.js
Vue3 实现双盒子定位Overlay的示例
Dec 22 Vue.js
vue3中轻松实现switch功能组件的全过程
Jan 07 Vue.js
学习 Vue.js 遇到的那些坑
Feb 02 Vue.js
vue打开新窗口并实现传参的图文实例
Mar 04 Vue.js
Vue全家桶入门基础教程
May 14 Vue.js
Vue3.0写自定义指令的简单步骤记录
Jun 27 Vue.js
Vue实现tab导航栏并支持左右滑动功能
Jun 28 Vue.js
vue使用Google Recaptcha验证的实现示例
Aug 23 Vue.js
Vue3中的Refs和Ref详情
Nov 11 Vue.js
vue中this.$http.post()跨域和请求参数丢失的解决
Apr 08 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错误Allowed memory size of 67108864 bytes exhausted的3种解决办法
2014/07/28 PHP
php中二分法查找算法实例分析
2016/09/22 PHP
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
2019/12/20 PHP
利用JS重写Cognos右键菜单的实现代码
2010/04/11 Javascript
浅谈关于JavaScript的语言特性分析
2013/04/11 Javascript
浅析用prototype定义自己的方法
2013/11/14 Javascript
NodeJS学习笔记之网络编程
2014/08/03 NodeJs
jquery插件NProgress.js制作网页加载进度条
2015/06/05 Javascript
基于Echarts 3.19 制作常用的图形(非静态)
2016/05/19 Javascript
AngularJs ng-route路由详解及实例代码
2016/09/14 Javascript
jQuery基于ajax方式实现用户名存在性检查功能示例
2017/02/10 Javascript
利用JS对iframe父子(内外)页面进行操作的方法教程
2017/06/15 Javascript
微信小程序选择图片和放大预览图片功能
2017/11/02 Javascript
Vue props 单向数据流的实现
2018/11/06 Javascript
Angular7.2.7路由使用初体验
2019/03/01 Javascript
layui实现鼠标移动到单元格上显示数据的方法
2019/09/11 Javascript
在vue项目中promise解决回调地狱和并发请求的问题
2020/11/09 Javascript
Python函数可变参数定义及其参数传递方式实例详解
2015/05/25 Python
Python3利用SMTP协议发送E-mail电子邮件的方法
2017/09/30 Python
python框架中flask知识点总结
2018/08/17 Python
Python 导入文件过程图解
2019/10/15 Python
python实现大学人员管理系统
2019/10/25 Python
python opencv实现信用卡的数字识别
2020/01/12 Python
python实现超级玛丽游戏
2020/03/18 Python
Steve Madden官网:美国鞋类品牌
2017/01/29 全球购物
Maje德国官网:法国女性成衣品牌
2017/02/10 全球购物
YOINS官网:时尚女装网上购物
2017/03/17 全球购物
实习教师自我鉴定
2013/12/09 职场文书
生产部经理岗位职责
2013/12/16 职场文书
大学生入党思想汇报
2014/01/14 职场文书
办公室主任主任岗位责任制
2014/02/11 职场文书
班级口号大全
2014/06/09 职场文书
金融管理专业求职信
2014/07/10 职场文书
村主任群众路线教育实践活动个人对照检查材料思想汇报
2014/10/01 职场文书
2015年护士工作总结范文
2015/03/31 职场文书