• # vue openlayer 添加风场效果


    vue openlayer 添加风场效果

    一个简单的小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"
                },
                 3,
              }
            })
            map.addLayer(windLayer)
          },
        },
      };
    
    </script>
    <style scoped>
      .home {
         100%;
        height: 100%;
        background-color: aliceblue;
        position: relative;
      }
    
      #map {
        height: 100%;
         100%;
      }
    </style>
    

    其中 gfs 文件就是风场数据。

    gfs文件下载【点这里

    然后看效果~

    在这里插入图片描述

  • 相关阅读:
    Hbase安装配置
    HBASE概念补充
    Hbase概述
    qt creator源码全方面分析(2-8)
    qt creator源码全方面分析(2-7)
    qt creator源码全方面分析(2-6)
    qt creator源码全方面分析(2-5)
    qt creator源码全方面分析(2-3)
    qt creator源码全方面分析(2-2)
    qt creator源码全方面分析(2-4)
  • 原文地址:https://www.cnblogs.com/wjw1014/p/16185601.html
Copyright © 2020-2023  润新知