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中利用three.js实现全景图的完整示例
Dec 07 Vue.js
Vue 组件注册全解析
Dec 17 Vue.js
vue中watch的用法汇总
Dec 28 Vue.js
vue调用微信JSDK 扫一扫,相册等需要注意的事项
Jan 03 Vue.js
Vue中引入svg图标的两种方式
Jan 14 Vue.js
Vue多选列表组件深入详解
Mar 02 Vue.js
vue项目多环境配置(.env)的实现
Jul 21 Vue.js
详解Vue slot插槽
Nov 20 Vue.js
vue项目支付功能代码详解
Feb 18 Vue.js
vue 给数组添加新对象并赋值
Apr 20 Vue.js
ant design vue的form表单取值方法
Jun 01 Vue.js
Vue Mint UI mt-swipe的使用方式
Jun 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
一个数据采集类
2007/02/14 PHP
PHP判断远程url是否有效的几种方法小结
2011/10/08 PHP
解析将多维数组转换为支持curl提交的一维数组格式
2013/07/08 PHP
PHP+jQuery 注册模块的改进(一):验证码存入SESSION
2014/10/14 PHP
PHP+ajax实现上传、删除、修改单张图片及后台处理逻辑操作详解
2020/02/12 PHP
表单切换,用回车键替换Tab健(不支持IE)
2011/07/20 Javascript
查看图片(前进后退)功能实现js代码
2013/04/24 Javascript
删除节点的jquery代码
2014/01/13 Javascript
js中arguments,caller,callee,apply的用法小结
2014/01/28 Javascript
Jquery方式获取iframe页面中的 Dom元素
2014/05/07 Javascript
使用jQuery简单实现模拟浏览器搜索功能
2014/12/21 Javascript
javascript原型模式用法实例详解
2015/06/04 Javascript
js仿QQ中对联系人向左滑动、滑出删除按钮的操作
2016/04/07 Javascript
JS面试题---关于算法台阶的问题
2016/07/26 Javascript
angular ngClick阻止冒泡使用默认行为的方法
2016/11/03 Javascript
ajax异步请求详解
2017/01/06 Javascript
js实现放大镜特效
2017/05/18 Javascript
使用Nodejs连接mongodb数据库的实现代码
2017/08/21 NodeJs
vue-cli脚手架-bulid下的配置文件
2018/03/27 Javascript
微信小程序template模版的使用方法
2019/04/13 Javascript
Vue数据绑定实例写法
2019/08/06 Javascript
[00:53]2015国际邀请赛 中国区预选赛一触即发
2015/05/14 DOTA
[02:23]2018DOTA2亚洲邀请赛趣味视频——反应测试
2018/04/04 DOTA
python读取csv文件示例(python操作csv)
2014/03/11 Python
python获取android设备的GPS信息脚本分享
2015/03/06 Python
python 基础教程之Map使用方法
2017/01/17 Python
Django JWT Token RestfulAPI用户认证详解
2019/01/23 Python
Python进阶之@property动态属性的实现
2019/04/01 Python
pip安装python库的方法总结
2019/08/02 Python
Flask和pyecharts实现动态数据可视化
2020/02/26 Python
H5 canvas实现贪吃蛇小游戏
2017/07/28 HTML / CSS
法国春天百货官网:Printemps.com
2020/06/29 全球购物
医科大学生的自我评价
2013/12/04 职场文书
预防煤气中毒方案
2014/06/16 职场文书
2014年小学生教师节演讲稿范文
2014/09/10 职场文书
拖欠货款起诉状
2015/05/20 职场文书