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中通过render函数给子组件设置ref操作
Nov 17 Vue.js
一篇超完整的Vue新手入门指导教程
Nov 18 Vue.js
vue3.0自定义指令(drectives)知识点总结
Dec 27 Vue.js
vue 实现图片懒加载功能
Dec 31 Vue.js
vue keep-alive的简单总结
Jan 25 Vue.js
深入了解Vue动态组件和异步组件
Jan 26 Vue.js
用vite搭建vue3应用的实现方法
Feb 22 Vue.js
详解Vue.js 可拖放文本框组件的使用
Mar 03 Vue.js
vue3.0中使用element的完整步骤
Mar 04 Vue.js
vue+spring boot实现校验码功能
May 27 Vue.js
Vue中Object.assign清空数据报错的解决方案
Mar 03 Vue.js
Vue+Flask实现图片传输功能
Apr 01 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 文件状态缓存带来的问题
2008/12/14 PHP
php中strlen和mb_strlen用法实例分析
2016/11/12 PHP
Zend Framework分发器用法示例
2016/12/11 PHP
利用google提供的API(JavaScript接口)获取网站访问者IP地理位置的代码详解
2010/07/24 Javascript
推荐17个优美新鲜的jQuery的工具提示插件
2012/09/14 Javascript
基于JavaScript 声明全局变量的三种方式详解
2013/05/07 Javascript
IE中鼠标经过option触发mouseout的解决方法
2015/01/29 Javascript
关于安卓手机微信浏览器中使用XMLHttpRequest 2上传图片显示字节数为0的解决办法
2016/05/17 Javascript
详解vue2父组件传递props异步数据到子组件的问题
2017/06/29 Javascript
详解给Vue2路由导航钩子和axios拦截器做个封装
2018/04/10 Javascript
实例分析编写vue组件方法
2019/02/12 Javascript
Vue服务端渲染实践之Web应用首屏耗时最优化方案
2019/03/22 Javascript
详解vue+axios给开发环境和生产环境配置不同的接口地址
2019/08/16 Javascript
python实现将文本转换成语音的方法
2015/05/28 Python
Python zip()函数用法实例分析
2018/03/17 Python
python中for用来遍历range函数的方法
2018/06/08 Python
解决django model修改添加字段报错的问题
2019/11/18 Python
python中的RSA加密与解密实例解析
2019/11/18 Python
python基于TCP实现的文件下载器功能案例
2019/12/10 Python
Python基础之字典常见操作经典实例详解
2020/02/26 Python
Python基于requests库爬取网站信息
2020/03/02 Python
Python callable内置函数原理解析
2020/03/05 Python
python 连续不等式语法糖实例
2020/04/15 Python
利用python实现平稳时间序列的建模方式
2020/06/03 Python
python ssh 执行shell命令的示例
2020/09/29 Python
通过python-pptx模块操作ppt文件的方法
2020/12/26 Python
支票、地址标签、包装纸和慰问卡:Current Catalog
2018/01/30 全球购物
Bogner美国官网:滑雪服中的”Dior”
2018/01/30 全球购物
描述一下JVM加载class文件的原理机制
2013/12/08 面试题
大学生自我鉴定范文
2013/12/28 职场文书
应用艺术专业个人的自我评价
2014/01/03 职场文书
电子信息专业自荐书
2014/02/04 职场文书
一位农村小子的自荐信
2014/04/07 职场文书
寄语是什么意思
2014/04/10 职场文书
小学毕业典礼演讲稿
2014/09/09 职场文书
民族学专业职业生涯规划范文:积跬步以至千里
2014/09/11 职场文书