mapbox使用v3版本,v2的样式切换不同时间段

  1. 创建DayAndNight.js

    /*** 使用方式* const dayNight = new DayAndNight({ map: map // map 地图对象}) * 修改类型* dayNight.setConfigProperty(value)*/
    class DayAndNight {constructor (sdMap) {this.map = sdMap.mapthis.initStyle()}// 初始化时添加必要样式initStyle () {const map = this.map// 添加一个方向灯map.setLights([{"id": "ambient","type": "ambient","properties": {"color": ["match",["config","lightPreset"],"dawn","hsl(28, 98%, 93%)","day","hsl(0, 0%, 100%)","dusk","hsl(228, 27%, 29%)","night","hsl(217, 100%, 11%)","hsl(0, 0%, 100%)"],"intensity": ["match",["config","lightPreset"],"dawn",0.75,"day",0.8,"dusk",0.8,"night",0.5,0.8]}},{"id": "directional","type": "directional","properties": {"direction": ["match",["config","lightPreset"],"dawn",["literal",[120,50]],"day",["literal",[180,20]],"dusk",["literal",[240,80]],"night",["literal",[270,20]],["literal",[180,20]]],"color": ["match",["config","lightPreset"],"dawn","hsl(33, 98%, 77%)","day","hsl(0, 0%, 100%)","dusk","hsl(30, 98%, 76%)","night","hsl(0, 0%, 29%)","hsl(0, 0%, 100%)"],"intensity": ["interpolate",["linear"],["zoom"],12,["match",["config","lightPreset"],"dawn",0.5,"day",0.2,"dusk",0,"night",0,0.2],14,["match",["config","lightPreset"],"dawn",0.5,"day",0.2,"dusk",0.2,"night",0.5,0.2]],"cast-shadows": true,"shadow-intensity": ["match",["config","lightPreset"],"night",0.5,1]}}]);// 添加雾map.setFog({"vertical-range": [30,120],"range": ["interpolate",["linear"],["zoom"],13,["literal",[1,10]],15,["literal",[1,4]]],"color": ["interpolate",["exponential",1.2],["zoom"],5,["interpolate",["linear"],["measure-light","brightness"],0.1,"hsla(240, 9%, 55%, 1)",0.4,"hsla(0, 0%, 100%, 1)"],7,["interpolate",["linear"],["measure-light","brightness"],0.02,"hsla(213, 63%, 20%, 0.9)",0.03,"hsla(30, 65%, 60%, 0.5)",0.4,"hsla(10, 79%, 88%, 0.95)",0.45,"hsla(200, 60%, 98%, 0.9)"]],"high-color": ["interpolate",["exponential",1.2],["zoom"],5,["interpolate",["linear"],["measure-light","brightness"],0.1,"hsla(215, 100%, 20%, 1)",0.4,"hsla(215, 100%, 51%, 1)"],7,["interpolate",["linear"],["measure-light","brightness"],0,"hsla(228, 38%, 20%, 1)",0.05,"hsla(360, 100%, 85%, 1)",0.2,"hsla(205, 88%, 86%, 1)",0.4,"hsla(270, 65%, 85%, 1)",0.45,"hsla(0, 0%, 100%, 1)"]],"space-color": ["interpolate",["exponential",1.2],["zoom"],5,"hsl(211, 84%, 9%)",7,["interpolate",["linear"],["measure-light","brightness"],0,"hsl(211, 84%, 17%)",0.2,"hsl(210, 40%, 30%)",0.4,"hsl(270, 45%, 98%)",0.45,"hsl(210, 100%, 80%)"]],"horizon-blend": ["interpolate",["exponential",1.2],["zoom"],5,0.01,7,["interpolate",["exponential",1.2],["measure-light","brightness"],0.35,0.03,0.4,0.1,0.45,0.03]],"star-intensity": ["interpolate",["exponential",1.2],["zoom"],5,0.4,7,["interpolate",["exponential",1.2],["measure-light","brightness"],0.1,0.2,0.3,0]]});// 修改相机类型map.setCamera({"camera-projection": "orthographic", // perspective 默认});// 默认白天map.setConfigProperty('', 'lightPreset', "day")}/*** 修改* @param {*} value * day    白天* night  夜晚* dawn   破晓* dusk   黄昏*/setConfigProperty(value){const map = this.mapmap.setConfigProperty('', 'lightPreset', value);}
    }
    
  2. 使用

    <!DOCTYPE html>
    <html lang="zh-CN"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src='https://api.mapbox.com/mapbox-gl-js/v3.0.0/mapbox-gl.js'></script><link href='https://api.mapbox.com/mapbox-gl-js/v3.0.0/mapbox-gl.css' rel='stylesheet' /><style>body {margin: 0;padding: 0;}#map {position: absolute;top: 0;bottom: 0;width: 100%;}#menu {position: absolute;background: #efefef;padding: 10px;font-family: 'Open Sans', sans-serif;top: 10px;left: 10px;}.map-ctrl-zoom {color: #a4a4a4;font-weight: bold;padding: 4px 8px;user-select: none;background: rgb(28, 31, 36);margin: 10px 10px 0 0;}.mapboxgl-ctrl-logo {display: none !important;}#custom-scale {position: absolute;bottom: 10px;left: 10px;background-color: rgba(255, 255, 255, 0.8);padding: 5px 10px;border-radius: 3px;font-size: 12px;font-family: Arial, sans-serif;}</style>
    </head><body><div id='map'></div><div id="menu"><input id="day" type="radio" name="rtoggle" value="day" checked="checked"><label for="day">白天</label><input id="night" type="radio" name="rtoggle" value="night"><label for="night">夜晚</label><input id="dawn" type="radio" name="rtoggle" value="dawn"><label for="dawn">破晓</label><input id="dusk" type="radio" name="rtoggle" value="dusk"><label for="dusk">黄昏</label></div><div id='custom-scale'></div>
    </body><script src="./js/DayAndNight.js"></script>
    <script>mapboxgl.accessToken = 'YOUR_MAPBOX_ACCESS_TOKEN';const map = new mapboxgl.Map({container: 'map', // container IDcenter: [106.1813231568759, 29.556810823148066],zoom: 17,pitch: 60,attributionControl: false,style: `http://`});map.on('style.load', () => {const dayNight = new DayAndNight({map: map,})const itemList = document.getElementById('menu');const inputs = itemList.getElementsByTagName('input');for (const input of inputs) {input.onclick = (layer) => {const value = layer.target.value;dayNight.setConfigProperty(value)};}});
    </script></html>
    

    在这里插入图片描述
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/209787.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

删除计算机用户时拒绝访问权限,c盘为什么拒绝访问 删除c盘文件需要管理员权限怎么办...

转载&#xff1a;​​​​​​删除计算机用户时拒绝访问权限,c盘为什么拒绝访问 删除c盘文件需要管理员权限怎么办...-CSDN博客 c盘是电脑中的关键位置&#xff0c;存储着很多系统重要文件&#xff0c;如果电脑出问题一般就是c盘中的文件异常&#xff0c;近日有小伙伴出现这样…

前端知识笔记(四十一)———nodejs发起http或https请求

http请求 const express require(express) const http require(http)const app express()const loginConfig (token) > {return {hostname: api.test.com,port: 80,path: /test?access_token${token},method: GET} }app.get(/login, (req, res) > {const options …

c++通过serial库进行上下位机通信

​编辑 风紊 现役大学牲&#xff0c;半退休robomaster视觉队员 写在前面 本文章主要介绍的是如何通过开源的serial库和虚拟串口实现上位机和下位机通信。 需求 假设下位机有这样一个数据报发送给上位机 struct DataRecv {char start s;TeamColor color TeamColor::Blu…

Premiere Pro 2024 新功能有哪些?视频剪辑软件PR2024更新内容及问题修复

PR软件“基于文本的编辑”中的填充词检测与批量删除功能 “基于文本的编辑”可让您检测“呃”和“嗯”填充词并批量删除它们&#xff0c;从而使您的转录文本更加准确。就像处理停顿一样&#xff0c;您可以单击填充词并将其从序列转录文本中删除。填充词与语言无关&#xff0c;…

STM32CubeIDE(CUBE-MX hal库)----RTC时钟,时钟实时显示

系列文章目录 STM32CubeIDE(CUBE-MX hal库)----初尝点亮小灯 STM32CubeIDE(CUBE-MX hal库)----按键控制 STM32CubeIDE(CUBE-MX hal库)----串口通信 STM32CubeIDE(CUBE-MX hal库)----定时器 STM32CubeIDE(CUBE-MX hal库)----蓝牙模块HC-05&#xff08;详细配置&#xff09; 前言…

【无标题】安装环境

这里写目录标题 清华镜像加速 安装cuda11.3 PyTorch 1.10.1https://pytorch.org/get-started/previous-versions/[如果没有可以点Previous pyTorch Versions&#xff0c;这里面有更多的更早的版本](https://pytorch.org/get-started/locally/) 复制非空文件夹cp: -r not specif…

传染病传播速度

题干 R0值是基本传染数的简称&#xff0c;指的是在没有采取任何干预措施的情况下&#xff0c;平均每位感染者在传染期内使易感者个体致病的数量。数字越大说明传播能力越强&#xff0c;控制难度越大。一个人传染的人的数量可以用幂运算来计算。假设奥密克戎的R0为10&#xff0…

《LeetCode力扣练习》代码随想录——字符串(翻转字符串里的单词---Java)

《LeetCode力扣练习》代码随想录——字符串&#xff08;翻转字符串里的单词—Java&#xff09; 刷题思路来源于 代码随想录 151. 反转字符串中的单词 双指针 class Solution {public String reverseWords(String s) {char[] results.toCharArray();resultremoveSpace(result);r…

2023-12-05 Qt学习总结2

点击 <C 语言编程核心突破> 快速C语言入门 Qt学习总结 前言五 Hello Qt!六 Qt控件和事件七 Qt信号和槽八 Qt自定义信号和槽总结 前言 要解决问题: 学习qt最核心知识, 多一个都不学. 五 Hello Qt! 现在我们已经有了一个空窗口工程, 传统上, 我们要实现一个"Hello …

(三潮来袭)探寻2023年科技变革潮流与2024年前瞻展望

2023年对于IT行业来说是一个动荡而又充满变革的一年。随着世界逐渐走出前几年的挑战&#xff0c;企业逐渐复苏&#xff0c;但这个行业仍然在经历着激烈的变革。在这个时候&#xff0c;我们看到了一些引人注目的技术变化和未来的趋势。 一、2023年回顾 关键词&#xff1a;Chat…

构建Servlet项目流程

第一步&#xff1a;创建maven项目 部分基础 依赖的模板基础部分如下 maven-archetype-quickstart: 这是最基本的Archetype&#xff0c;它创建一个包含简单Java类和单元测试的项目。 maven-archetype-webapp: 这个Archetype创建一个简单的Java web应用&#xff0c;包括一个serv…

【C++】算法库(批量操作、搜索操作)

C算法库 文章目录 C算法库批量操作for_eachfor_each_n 搜索操作all_of ,any_of ,none_offind, find_if, find_if_notfind_endstd::find_first_ofadjacent_findcount, count_ifequalsearchsearch_n 算法库提供大量用途的函数&#xff08;例如查找、排序、计数、操作&#xff09;…

微信小程序 - PC端选择ZIP文件

微信小程序 - PC端选择文件 分享代码片段场景分析解决思路附魔脚本chooseMediaZip 选择附魔后的ZIP文件相关方法测试方法 参考资料 分享代码片段 不想听废话的&#xff0c;直接看代码。 https://developers.weixin.qq.com/s/UL9aojmn7iNU 场景分析 如果你的微信小程序需要选…

TypeScript入门实战笔记 -- 开篇 为什么要选择 TypeScript ?

typescript 在线编辑器http://typescript.p2hp.com/play?#code/JYOwLgpgTgZghgYwgAgJIFUDO1Uhge2QG8AoZc5YAEwC5kQBXAWwCNoBuMikOJiOzGCigA5pwrI4ANzhg4UAPwChozgF8SmmAxAIwwfCGRYcefAAoADlHyXMdDNii4CASmJdyCQ5nwAbCAA6P3wRKxs7ABpkAHJrW0wY1xINEhNnM3MiSlpkAEZonj46GIBrROQ1…

openEuler学习05-kernel升级

周末没事&#xff0c;尝试下openEuler的kernel升级 [rootlocalhost ~]# more /etc/os-release NAME"openEuler" VERSION"20.03 (LTS-SP3)" ID"openEuler" VERSION_ID"20.03" PRETTY_NAME"openEuler 20.03 (LTS-SP3)" ANSI_…

营收增速持续放缓,博通CEO期待AI崛起救场 | 百能云芯

博通作为苹果等大型科技公司的芯片供应商&#xff0c;于周四发布了财报。尽管截至10月29日的第四季度营收增长了4%至93亿美元&#xff0c;符合市场预期&#xff0c;但增速已经降至2020年以来的最低水平。 由于企业客户和电信供应商在控制支出方面的谨慎态度&#xff0c;博通的销…

IDEA构建springBoot新项目时JDK只有17和21,无法选择JDK8解决方案

今天创建springboot新项目时&#xff0c;发现IDEA里JDK选项只有17和21&#xff0c;无法选择本机的JDK8&#xff0c;网上查资料后发现是springboot2.7于11.24号后停止维护&#xff0c;基于2.7和java8的spring Initializ官方不再维护&#xff0c;解决方案是在server URL栏&#x…

东北大学Python

目前金属矿开采&#xff0c;爆破还是主要的破岩方式&#xff0c;为了保证巷道采场的安全&#xff0c;需要对爆破震动进行监测&#xff0c;获取的监测数据如附件&#xff0c;第1列数据为震动的序号&#xff0c;第2、3、4列为x,y,z三个方向的震动速度&#xff0c;往往由于各种因素…

C++ 运算符重载与操作符重载

目录 运算符重载 运算符重载的特性 其他运算符重载的实现 默认成员函数——赋值运算符重载 默认成员函数——取地址操作符重载 const成员 附录 运算符重载 C为了增强代码的可读性引入了运算符重载&#xff0c;运算符重载是具有特殊函数名的函数&#xff0c;也具有其返回…