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实现购物车的小练习
Dec 21 Vue.js
vue 递归组件的简单使用示例
Jan 14 Vue.js
vue 组件基础知识总结
Jan 26 Vue.js
解决vue项目本地启动时无法携带cookie的问题
Feb 06 Vue.js
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
Mar 01 Vue.js
Vue3 Composition API的使用简介
Mar 29 Vue.js
Vue和Flask通信的实现
May 19 Vue.js
Vue3.0 手写放大镜效果
Jul 25 Vue.js
Vue自定义铃声提示音组件的实现
Jan 22 Vue.js
vue实现移动端div拖动效果
Mar 03 Vue.js
vue ref如何获取子组件属性值
Mar 31 Vue.js
vue实现可以快进后退的跑马灯组件
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合并数组array_merge函数运算符加号与的区别
2008/10/31 PHP
PHP使用pear自带的mail类库发邮件的方法
2015/07/08 PHP
thinkphp 抓取网站的内容并且保存到本地的实例详解
2017/08/25 PHP
PHP实现的二分查找算法实例分析
2017/12/19 PHP
关于laravel后台模板laravel-admin select框的使用详解
2019/10/03 PHP
用js判断用户浏览器是否是XP SP2的IE6
2007/03/08 Javascript
由document.body和document.documentElement想到的
2009/04/13 Javascript
jquery $.ajax相关用法分享
2012/03/16 Javascript
JavaScript中的数组特性介绍
2014/12/30 Javascript
jQuery中extend函数的实现原理详解
2015/02/03 Javascript
使用jQueryMobile实现滑动翻页效果的方法
2015/02/04 Javascript
javascript常见数据验证插件大全
2015/08/03 Javascript
Google 地图API Map()构造器详解
2016/08/06 Javascript
Vuejs第六篇之Vuejs与form元素实例解析
2016/09/05 Javascript
常用js,css文件统一加载方法(推荐) 并在加载之后调用回调函数
2016/09/23 Javascript
AngularJS实现用户登录状态判断的方法(Model添加拦截过滤器,路由增加限制)
2016/12/12 Javascript
Jquery Easyui选项卡组件Tab使用详解(10)
2016/12/18 Javascript
JS原生瀑布流效果实现
2019/04/26 Javascript
使用imba.io框架得到比 vue 快50倍的性能基准
2019/06/17 Javascript
解决Vue在Tomcat8下部署页面不加载的问题
2019/11/12 Javascript
JS+HTML5本地存储Localstorage实现注册登录及验证功能示例
2020/02/10 Javascript
微信小程序实现单个或多个倒计时功能
2020/11/01 Javascript
python 实现归并排序算法
2012/06/05 Python
Python解决鸡兔同笼问题的方法
2014/12/20 Python
在Python的Flask框架中使用模版的入门教程
2015/04/20 Python
python基础教程之五种数据类型详解
2017/01/12 Python
基于Python的XSS测试工具XSStrike使用方法
2017/07/29 Python
如何一键升级Python所有包
2020/11/05 Python
CSS3 Calc实现滚动条出现页面不跳动问题
2017/09/14 HTML / CSS
请用Java实现列出某个目录下的所有文件
2013/09/23 面试题
校园十大歌手策划书
2014/02/01 职场文书
出纳会计岗位职责
2014/03/12 职场文书
中式婚礼主持词
2014/03/13 职场文书
化工见习报告范文
2014/10/31 职场文书
2014年资料员工作总结
2014/11/18 职场文书
优秀大学生申请书
2019/06/24 职场文书