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 elementUI 使用el-select 时 change事件的触发问题
Nov 17 Vue.js
详解vue 组件注册
Nov 20 Vue.js
Vue实现购物小球抛物线的方法实例
Nov 22 Vue.js
详解vue中使用transition和animation的实例代码
Dec 12 Vue.js
vue中如何添加百度统计代码
Dec 19 Vue.js
Vue页面渲染中key的应用实例教程
Jan 12 Vue.js
Vue单页面应用中实现Markdown渲染
Feb 14 Vue.js
vue 中 get / delete 传递数组参数方法
Mar 23 Vue.js
vue使用节流函数的踩坑实例指南
May 20 Vue.js
vue-cli4.5.x快速搭建项目
May 30 Vue.js
解决vue $http的get和post请求跨域问题
Jun 07 Vue.js
Vue3如何理解ref toRef和toRefs的区别
Feb 18 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/03/24 PHP
PHP 中检查或过滤IP地址的实现代码
2011/11/27 PHP
php 删除一个数组中的某个值.兼容多维数组!
2012/02/18 PHP
PHP程序级守护进程的实现与优化的使用概述
2013/05/02 PHP
PHP实例分享判断客户端是否使用代理服务器及其匿名级别
2014/06/04 PHP
浅谈PHP解析URL函数parse_url和parse_str
2014/11/11 PHP
php短址转换实现方法
2015/02/25 PHP
看了就知道什么是JSON
2007/12/09 Javascript
jQuery不间断滚动效果(模拟百度新闻支持文字/图片/垂直滚动)
2013/02/05 Javascript
a标签的href和onclick 的事件的区别介绍
2013/07/26 Javascript
关于js原型的面试题讲解
2016/09/25 Javascript
js/jq仿window文件夹移动/剪切/复制等操作代码
2017/03/08 Javascript
jQuery实现Select下拉列表进行状态选择功能
2017/03/30 jQuery
bootstrap daterangepicker汉化以及扩展功能
2017/06/15 Javascript
详解jQuery中关于Ajax的几个常用的函数
2017/07/17 jQuery
JS 实现banner图片轮播效果(鼠标事件)
2017/08/04 Javascript
快速搭建React的环境步骤详解
2017/11/06 Javascript
Angular5.1新功能分享
2017/12/21 Javascript
jQuery实现文字超过1行、2行或规定的行数时自动加省略号的方法
2018/03/28 jQuery
AngularJs用户输入动态模板XSS攻击示例详解
2018/04/21 Javascript
如何基于原生javaScript生成带图片的二维码
2019/11/21 Javascript
vue中路由跳转不计入history的操作
2020/09/21 Javascript
ES2020让代码更优美的运算符 (?.) (??)
2021/01/04 Javascript
Python中type的构造函数参数含义说明
2015/06/21 Python
使用pandas对矢量化数据进行替换处理的方法
2018/04/11 Python
Django中日期处理注意事项与自定义时间格式转换详解
2018/08/06 Python
Python 矩阵转置的几种方法小结
2019/12/02 Python
在Pytorch中使用Mask R-CNN进行实例分割操作
2020/06/24 Python
Jupyter notebook命令和编辑模式常用快捷键汇总
2020/11/17 Python
美国轮胎网站:Priority Tire
2018/11/28 全球购物
Myprotein亚太地区:欧洲第一在线运动营养品牌
2020/12/20 全球购物
小学生爱国演讲稿
2014/04/25 职场文书
小学班主任培训方案
2014/06/04 职场文书
2014年销售内勤工作总结
2014/12/01 职场文书
保证书格式
2015/01/16 职场文书
python基于tkinter制作下班倒计时工具
2021/04/28 Python