当前位置: 首页 > news >正文

mapbox V3 新特性,添加下雪效果

👨‍⚕️ 主页: gis分享者
👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅!
👨‍⚕️ 收录于专栏:mapbox 从入门到精通

文章目录

  • 一、🍀前言
    • 1.1 ☘️mapboxgl.Map 地图对象
    • 1.2 ☘️mapboxgl.Map style属性
    • 1.3 ☘️snow 属性说明
  • 二、🍀添加绘图扩展插件,绘制任意方向矩形
    • 1. ☘️实现思路
    • 2. ☘️代码样例


一、🍀前言

本文详细介绍如何基于mapbox-gl v3.*.*、vue 3.*.* 版本中添加下雪效果,亲测可用。希望能帮助到您。一起学习,加油!加油!
注意:mapbox-gl V3版本 需要vue3 安装引入才可以使用,vue2 暂时没测试使用成功!

1.1 ☘️mapboxgl.Map 地图对象

mapboxgl.Map mapbox地图对象。
构造函数:
new Map class(options: Object)
本例使用属性:
在这里插入图片描述

1.2 ☘️mapboxgl.Map style属性

本例使用属性:

  • version:版本号,当前固定值为8。
  • sources:数据源集合(必填,用于包含一系列数据源
    source,这些数据源提供了在地图上显示的数据)。值为{}对象。{}中的属性名是数据源的名称。
    每个数据源 source 有的属性:
    type:数据源类型
    tiles:数据源地址
    tileSize:数据源切片大小
  • layers:图层集合(必填,包含了一系列图层 layer,这些图层指定了如何渲染数据源提供的数据)
    每个layer的属性(当前示例用到的):
    id:图层id
    type:图层类型
    source:数据源名称

1.3 ☘️snow 属性说明

"snow": {"density": 0.85, // 雪花密度,取值0-1 默认 ["interpolate",["linear"],["zoom"],11,0,13,0.85]"intensity": 1.0, // 雪花下落速度,取值0-1 默认1"center-thinning": 0.1, // 雪花从中心变薄系数,取值0-1 默认0.4"direction": [0, 50], // 雪花方向[方位角 极角] 默认[0,50]"opacity": 1.0, // 雪花透明度取值0-1 默认 1"color": "#ffffff", // 雪花颜色 默认'#ffffff'"flake-size": 0.71, // 雪花大,取值0-5 默认0.71"vignette": 0.3, // 雪花空间角落大小,取值0-1 默认["interpolate",["linear"],["zoom"],11,0,13,0.3]"vignette-color": "#ffffff" // 雪花空间角落颜色 默认'#ffffff'
}

相关地址
下雪效果_API

二、🍀添加绘图扩展插件,绘制任意方向矩形

1. ☘️实现思路

  • 1、引入’mapbox-gl’、'mapbox-gl/dist/mapbox-gl.css’文件
  • 2、添加id为map的html页面要素,定义map样式。
  • 3、定义initMap初始化地图方法,方法内创建mapboxgl.Map地图对象map。map绑定‘style.load’事件,在事件内部map调用setSnow方法,设置下雪相关参数。在mounted钩子函数中调用initMap方法。

2. ☘️代码样例

<template><div id='map'></div>
</template><script>
<template><div id='map'></div>
</template><script>
/** 下雪效果**/
import mapboxgl from 'mapbox-gl'
import 'mapbox-gl/dist/mapbox-gl.css'
export default {name: 'MapboxDrawSnow',data () {return {map: null}},mounted () {this.$nextTick(() => {this.initMap()})},methods: {initMap () {mapboxgl.accessToken = 'mapbox官网注册token'this.map = new mapboxgl.Map({container: 'map',zoom: 17,pitch: 74,minZoom: 0,center: [116.4, 39.9],style: 'mapbox://styles/mapbox/standard',projection: 'globe'})this.map.on('style.load', () => {this.map.setConfigProperty('basemap', 'lightPreset', 'dusk')const zoomBasedReveal = (value) => {return ['interpolate',['linear'],['zoom'],11,0.0,13,value]}this.map.setSnow({density: zoomBasedReveal(0.85),intensity: 1,'center-thinning': 0.1,direction: [0, 50],opacity: 1.0,color: `#ffffff`,'flake-size': 0.71,vignette: zoomBasedReveal(0.3),'vignette-color': `#ffffff`})})}}
}
</script><style scoped>
#map{height: 100vh;width: 100vw;
}
</style>

效果如下:
在这里插入图片描述

http://www.lryc.cn/news/536911.html

相关文章:

  • 无人机遥感在农林信息提取中的实现方法与GIS融合制图教程
  • 生物发酵展与2025生物医药创新技术与应用发展论坛同期盛大举办
  • Jenkins 配置 Git Repository 五
  • 记录阿里云CDN配置
  • mapbox 从入门到精通 - 目录
  • mysql中general_log日志详解
  • 算法与数据结构:从基础到深入
  • 基于千兆5G网关的5G急救车方案
  • 【C#】的WPF或是WinForm实现Ctrl+ 的快捷键组合使用
  • c语言样式主题 清爽风格 代码色彩 keil风格 适合单片机开发GD32 STM32等 cursor或者vscode 的settings.json文件
  • DeepSeek API 调用 - Spring Boot 实现
  • 图数据库Neo4j面试内容整理-节点(Node)
  • 使用verilog 实现 cordic 算法 ----- 旋转模式
  • 2.14寒假
  • 基于逻辑概率的语义信道容量(Semantic Channel Capacity)和语义压缩理论(Semantic Compression Theory)
  • DeepSeek R1本地部署教程
  • CEF132编译指南 MacOS 篇 - 获取 CEF 源码 (五)
  • TypeScript装饰器 ------- 学习笔记分享
  • FPGA实现UltraScale GTH光口视频转USB3.0传输,基于FT601+Aurora 8b/10b编解码架构,提供2套工程源码和技术支持
  • 蓝桥杯篇---实时时钟 DS1302
  • C语言蓝桥杯1003: [编程入门]密码破译
  • 【MySQL在Centos 7环境安装】
  • 科技引领未来,中建海龙C-MiC 2.0技术树立模块化建筑新标杆
  • 玩转观察者模式
  • Baklib知识中台构建企业智能运营核心架构
  • Anaconda +Jupyter Notebook安装(2025最新版)
  • 正成为现代城市发展的必然趋势的智慧交通开源了
  • 手撕Transformer编码器:从Self-Attention到Positional Encoding的PyTorch逐行实现
  • Webpack和Vite插件的开发与使用
  • HTTP的状态码