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 相关文章推荐
vuex的数据渲染与修改浅析
Nov 26 Vue.js
vue实现滚动鼠标滚轮切换页面
Dec 13 Vue.js
vue 在服务器端直接修改请求的接口地址
Dec 19 Vue.js
vue绑定class的三种方法
Dec 24 Vue.js
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
Dec 30 Vue.js
vue中activated的用法
Jan 03 Vue.js
vue调用微信JSDK 扫一扫,相册等需要注意的事项
Jan 03 Vue.js
vue实现防抖的实例代码
Jan 11 Vue.js
Vue项目中使用mock.js的完整步骤
Jan 12 Vue.js
vue+echarts实现中国地图流动效果(步骤详解)
Jan 27 Vue.js
Vue包大小优化的实现(从1.72M到94K)
Feb 18 Vue.js
vue自定义右键菜单之全局实现
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 常见郁闷问题答解
2006/11/25 PHP
PHP读取xml方法介绍
2013/01/12 PHP
php小经验:解析preg_match与preg_match_all 函数
2013/06/29 PHP
php5.3以后的版本连接sqlserver2000的方法
2014/07/28 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
2016/07/14 PHP
php实现将数据做成json的格式给前端使用
2018/08/21 PHP
win10下 php安装seaslog扩展的详细步骤
2020/12/04 PHP
jquery.alert 弹出式复选框实现代码
2009/06/15 Javascript
javascript开发随笔二 动态加载js和文件
2011/11/25 Javascript
浅谈javascript面向对象程序设计
2015/01/21 Javascript
jQuery多级手风琴菜单实例讲解
2015/10/22 Javascript
JS小数转换为整数的方法分析
2017/01/07 Javascript
JS实现登录页密码的显示和隐藏功能
2017/12/06 Javascript
详解webpack提取第三方库的正确姿势
2017/12/22 Javascript
深入理解JavaScript和TypeScript中的class
2018/04/22 Javascript
20个必会的JavaScript面试题(小结)
2019/07/02 Javascript
基于小程序请求接口wx.request封装的类axios请求
2020/07/02 Javascript
JS如何定义用字符串拼接的变量
2020/07/11 Javascript
vue接通后端api以及部署到服务器操作
2020/08/13 Javascript
[48:30]LGD vs infamous Supermajor小组赛D组 BO3 第一场 6.3
2018/06/04 DOTA
python实现指定字符串补全空格的方法
2015/04/30 Python
Pandas Shift函数的基础入门学习笔记
2018/11/16 Python
python 定时器,轮询定时器的实例
2019/02/20 Python
python 基于TCP协议的套接字编程详解
2019/06/29 Python
如何使用Python自动控制windows桌面
2019/07/11 Python
对python中的*args与**kwgs的含义与作用详解
2019/08/28 Python
Python高级编程之继承问题详解(super与mro)
2019/11/19 Python
python 制作python包,封装成可用模块教程
2020/07/13 Python
pycharm配置QtDesigner的超详细方法
2021/01/25 Python
以设计师精品品质提供快速时尚:PopJulia
2018/01/09 全球购物
定制iPhone和Macbook保护壳:Slick Case
2018/11/21 全球购物
TUMI香港官网:国际领先的行李箱、背囊品牌
2021/03/01 全球购物
中医药大学毕业生自荐信
2013/11/08 职场文书
党员教师四风问题对照检查材料
2014/09/26 职场文书
2015年乡镇妇联工作总结
2015/05/19 职场文书
Python实现老照片修复之上色小技巧
2021/10/16 Python