这篇“怎么用Vue+OpenLayer为地图添加风场效果”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用Vue+OpenLayer为地图添加风场效果”文章吧。
首先我们需要安装一个插件。
插件地址
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为地图添加风场效果”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。