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使用vant中的checkbox实现全选功能
Nov 17 Vue.js
vue+iview实现文件上传
Nov 17 Vue.js
vue开发chrome插件,实现获取界面数据和保存到数据库功能
Dec 01 Vue.js
vue实现简易的双向数据绑定
Dec 29 Vue.js
梳理一下vue中的生命周期
Dec 30 Vue.js
jenkins自动构建发布vue项目的方法步骤
Jan 04 Vue.js
vue实现倒计时功能
Mar 24 Vue.js
vue中data改变后让视图同步更新的方法
Mar 29 Vue.js
详解vue身份认证管理和租户管理
May 25 Vue.js
Vue的过滤器你真了解吗
Feb 24 Vue.js
Vue3中toRef与toRefs的区别
Mar 24 Vue.js
VUE之图片Base64编码使用ElementUI组件上传
Apr 09 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实现xml与json之间的相互转换功能实例
2016/07/07 PHP
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
2017/01/24 PHP
Yii 使用intervention/image拓展实现图像处理功能
2019/06/22 PHP
csdn 博客的css样式 v3
2009/02/24 Javascript
基于Jquery的简单&amp;简陋Tabs插件代码
2010/02/09 Javascript
JSON JQUERY模板实现说明
2010/07/03 Javascript
node.js中的fs.writeFileSync方法使用说明
2014/12/14 Javascript
Javascript将双字节字符转换成单字节字符并计算长度
2016/06/22 Javascript
javascript类型系统——日期Date对象全面了解
2016/07/13 Javascript
JavaScript读二进制文件并用ajax传输二进制流的方法
2016/07/18 Javascript
微信小程序 用户数据解密详细介绍
2017/01/09 Javascript
Vue AST源码解析第一篇
2017/07/19 Javascript
vue组件从开发到发布的实现步骤
2018/11/11 Javascript
js实现的在本地预览图片功能示例
2019/11/09 Javascript
bootstrap实现tab选项卡切换
2020/08/09 Javascript
[49:21]2018DOTA2亚洲邀请赛3月30日 小组赛B组 Effect VS iG
2018/03/31 DOTA
Python set集合类型操作总结
2014/11/07 Python
Python实现在Linux系统下更改当前进程运行用户
2015/02/04 Python
Python科学计算之Pandas详解
2017/01/15 Python
Python编程使用NLTK进行自然语言处理详解
2017/11/16 Python
python 使用poster模块进行http方式的文件传输到服务器的方法
2019/01/15 Python
python 实现图片旋转 上下左右 180度旋转的示例
2019/01/24 Python
Python TCPServer 多线程多客户端通信的实现
2019/12/31 Python
pandas使用函数批量处理数据(map、apply、applymap)
2020/11/27 Python
IE下实现类似CSS3 text-shadow文字阴影的几种方法
2011/05/11 HTML / CSS
html5 Canvas画图教程(6)—canvas里画曲线之arcTo方法
2013/01/09 HTML / CSS
哥德堡通行证:Gothenburg Pass
2019/12/09 全球购物
Urban Decay官方网站:美国化妆品品牌
2020/06/04 全球购物
新教师工作感言
2014/02/16 职场文书
广告词串烧
2014/03/19 职场文书
机关搬迁方案
2014/05/18 职场文书
初中毕业典礼演讲稿
2014/09/09 职场文书
教师批评与自我批评总结
2014/10/16 职场文书
婚礼父母致辞
2015/07/28 职场文书
社区结对共建协议书
2016/03/23 职场文书
Vue图片裁剪组件实例代码
2021/07/02 Vue.js