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.pswp.cn/news/209787.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/209787.shtml
英文地址,請注明出處:http://en.pswp.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;也具有其返回…