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开发中常见的套路和技巧总结
Nov 24 Vue.js
vue实现表格合并功能
Dec 01 Vue.js
Vue router安装及使用方法解析
Dec 02 Vue.js
Vue实现省市区三级联动
Dec 27 Vue.js
vue3.0中友好使用antdv示例详解
Jan 05 Vue.js
vue element和nuxt的使用技巧分享
Jan 14 Vue.js
vue首次渲染全过程
Apr 21 Vue.js
一篇文章学会Vue中间件管道
Jun 20 Vue.js
Vue elementUI表单嵌套表格并对每行进行校验详解
Feb 18 Vue.js
在vue中import()语法不能传入变量的问题及解决
Apr 01 Vue.js
vue配置型表格基于el-table拓展之table-plus组件
Apr 12 Vue.js
Vue深入理解插槽slot的使用
Aug 05 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
图片存储与浏览一例(Linux+Apache+PHP+MySQL)
2006/10/09 PHP
php数组函数序列之next() - 移动数组内部指针到下一个元素的位置,并返回该元素值
2011/10/31 PHP
php json_encode值中大括号与花括号区别
2013/09/30 PHP
阿里云PHP SMS短信服务验证码发送方法
2017/07/11 PHP
关于JAVASCRIPT urldecode URL解码的问题
2012/01/08 Javascript
js动态添加onload、onresize、onscroll事件(另类方法)
2012/12/26 Javascript
让低版本浏览器支持input的placeholder属性(js方法)
2013/04/03 Javascript
js函数参数设置默认值的一种变通实现方法
2014/05/26 Javascript
静态页面html中跳转传值的JS处理技巧
2016/06/22 Javascript
Bootstrap基本样式学习笔记之表单(3)
2016/12/07 Javascript
用v-html解决Vue.js渲染中html标签不被解析的问题
2016/12/14 Javascript
微信小程序授权获取用户详细信息openid的实例详解
2017/09/20 Javascript
解决Jquery下拉框数据动态获取的问题
2018/01/25 jQuery
vue cli 3.0 搭建项目的图文教程
2019/05/17 Javascript
javascript面向对象创建对象的方式小结
2019/07/29 Javascript
Javascript幻灯片播放功能实现过程解析
2020/05/07 Javascript
Python SQLite3数据库操作类分享
2014/06/10 Python
Python自定义函数定义,参数,调用代码解析
2017/12/27 Python
Python网络爬虫中的同步与异步示例详解
2018/02/03 Python
Python cookbook(数据结构与算法)对切片命名清除索引的方法
2018/03/13 Python
python DataFrame 取差集实例
2019/01/30 Python
Python 中Django安装和使用教程详解
2019/07/03 Python
Python  Django 母版和继承解析
2019/08/09 Python
django 将自带的数据库sqlite3改成mysql实例
2020/07/09 Python
python上selenium的弹框操作实现
2020/07/13 Python
如何查看浏览器对html5的支持情况
2020/12/15 HTML / CSS
澳大利亚波西米亚风情网上商店:Czarina
2019/03/18 全球购物
Kiwi.com中国:找到特价机票并发现新目的地
2019/10/27 全球购物
某公司部分笔试题
2013/11/05 面试题
酒店工作职员求职简历的自我评价
2013/10/23 职场文书
公司财务工作总结的自我评价
2013/11/23 职场文书
有多年工作经验的自我评价
2014/03/02 职场文书
劳动仲裁撤诉申请书
2015/05/18 职场文书
2016年9月份红领巾广播稿
2015/12/21 职场文书
pytorch训练神经网络爆内存的解决方案
2021/05/22 Python
PostgreSQL并行计算算法及参数强制并行度设置方法
2022/04/06 PostgreSQL