日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Cesium中Clock控件及时间序列瓦片动态加载

發布時間:2025/5/22 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Cesium中Clock控件及时间序列瓦片动态加载 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

前面已經寫了兩篇博客介紹Cesium,一篇整體上簡單介紹了Cesium如何上手,還有一篇介紹了如何將Cesium與分布式地理信息處理框架Geotrellis相結合。Cesium的強大之處也在于其可以將時間運用到3維地球上,可以根據此時間進行動畫、軌跡記錄、地球的光照等等所有與時間相關的可視化效果。本文介紹Cesium中的Clock控件以及如何動態加載時間序列瓦片。

一、 Clock控件

1.1 控件顯示和隱藏

這里說的Clock控件包含兩部分,Animation控件和Timeline控件,這二者基本是同時出現或隱藏的。如下圖所示:

在Cesium中Viewer默認開啟這兩個控件,如果你想要不顯示這兩個控件,可以在Viewer初始化中設置其為false,代碼如下:

var viewer = new Cesium.Viewer('cesiumContainer', {animation:false, timeline:false });

但這種方式只能在初始化時設置,無法動態的切換顯示狀態,靈活度上稍顯不足。如下方式可以動態控制顯示和隱藏,會動態調整布局。

viewer.animation.container.style.visibility = 'visible'; viewer.animation.container.style.visibility = 'hidden'; viewer.timeline.container.style.visibility = 'visible'; viewer.timeline.container.style.visibility = 'hidden';

1.2 設置Clock范圍

Clock中默認開始時間(startTime)為當前時間,終止時間(stopTime)為24小時后,并能獲取當前時間(currentTime)。當然我們也可以通過如下代碼手動設置時間軸上的時間范圍:

var start = Cesium.JulianDate.fromIso8601('2015-07-30'); var end = Cesium.JulianDate.fromIso8601('2017-06-17');viewer.timeline.zoomTo(start, end);var clock = viewer.clock; clock.startTime = start; clock.endTime = end; clock.currentTime = start; clock.clockRange = Cesium.ClockRange.LOOP_STOP; clock.multiplier = 86400;

其中start和end分別代表起始和結束時間。multiplier表示時間軸進行速度,就是說此值表示真實世界時間進度與Cesium中的關系,值越大時間軸就走的越快,86400表示真實世界走過1s在Cesium中刻度走過1天,怎么有點南柯一夢的感覺。clockRange屬性表示時間軸達到終點之后的行為,用戶可以根據自己的需要來設置,默認為: UNBOUNDED

  • CLAMPED:達到終止時間后停止
  • LOOP_STOP:達到終止時間后重新循環
  • UNBOUNDED:達到終止時間后繼續讀秒

二、 動態加載時間序列瓦片

2.1 時間序列瓦片

所謂時間序列瓦片是指存在多套瓦片,每套瓦片不是單獨的,與時間有關。比如我們每天拍攝一遍地球影像,然后把每天的影像都做成一套瓦片,那么一年下來就會有365套瓦片,采用傳統方案我們只能寫365個頁面每個頁面加載一天的瓦片。這樣非常麻煩,并且沒有一個動態變化的效果也無法進行對比。我前面介紹過如何使用Geotrellis生成時間序列瓦片(見geotrellis使用(二十三)動態加載時間序列數據),當然也不一定非要使用此種方式,簡單的方式也可以是直接生成多套瓦片,每套瓦片的請求方式與其時間對應即可。

2.2 Cesium動態加載時間序列瓦片

在前面已經介紹了如何使用Cesium加載我們自己的瓦片,大致如下:

var imageryLayers = viewer.imageryLayers; imageryLayers.addImageryProvider(provider);

其中provider為我們自己創建的圖層對象,時間序列瓦片與普通瓦片的區別正在此處。其創建時需要多指定與時間有關的參數。如下:

var provider = new Cesium.WebMapTileServiceImageryProvider({url : 'https://gibs.earthdata.nasa.gov/wmts/epsg4326/{best}/{Layer}/{Style}/{Time}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png',layer : 'AMSR2_Snow_Water_Equivalent',style : 'default',tileMatrixSetID : '2km',maximumLevel : 5,format : 'image/png',clock: viewer.clock,times: times,credit : new Cesium.Credit({text: 'NASA Global Imagery Browse Services for EOSDIS'}),dimensions: { Layer : 'AMSR2_Snow_Water_Equivalent',best: 'best'} });

style參數會替換掉url中的{Style}字符串;tileMatrixSetID會替換掉{TileMatrixSet}字符串;{TileMatrix}/{TileRow}/{TileCol}表示z、x、y,無需手動設置;clock表示所使用的時鐘,直接設置為系統時鐘;cedit表示版權信息;dimensions里面的參數只要出現在url中全部會被其value替換掉。

重點就是其中的times,需要傳入一個TimeIntervalCollection對象。其創建方式如下:

var times = Cesium.TimeIntervalCollection.fromIso8601({iso8601: '2015-07-30/2017-06-16/P20D', leadingInterval: true,trailingInterval: true,isStopIncluded: false, dataCallback: dataCallback });

iso8601參數為時間范圍及間隔,用'/'分割,第一個表示開始時間,第二個表示結束時間,P20D表示間隔20天,還可以是P1M、P1Y、P1Y3M5DT6H7M30S等,代表不同的時間間隔。

dataCallback表示在每個時間段內如何取值,比如時間間隔為20天,那么我們可以取第一天為請求瓦片的時間,也可以是最后一天,乃至范圍內甚至是范圍外的任意一天,這個就由dataCallback函數進行設置。示例如下:

function dataCallback(interval, index) {console.log(index);var time;if (index === 0) {time = Cesium.JulianDate.toIso8601(interval.stop);} else {time = Cesium.JulianDate.toIso8601(interval.start);}return {Time: time}; }

interval表示傳入的時間區間,index表示是第幾個區間,這兩個參數也就分割了times中的完整時間段,所以我們可以給time賦值為任意想要設置的值。最后返回的是key、value形式,此處Time為key,而其必須與創建圖層時候的{Time}字符串一致,否則請求的時候無法替換時間信息。

三、 總結

本文簡單介紹了Clock控件以及如何動態加載時間序列瓦片。合理運用Cesium中的Clock控件能夠做出很多漂亮的可視化效果,甚至如同Flash一樣只需要指定幾個時間點對象的位置,Cesium就會自動插值成動畫,這些我們在后面介紹。

最后希望大家能在2017年度全網原創IT博主評選活動投票:http://www.itbang.me/goVote/215投上寶貴的一票(最勤奮博主:wsf),謝謝!

轉載于:https://www.cnblogs.com/shoufengwei/p/8046529.html

總結

以上是生活随笔為你收集整理的Cesium中Clock控件及时间序列瓦片动态加载的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中文字幕高清av | 日韩一级视频在线观看 | 午夜激情在线观看 | 秋霞影院一区二区 | 中文字幕在线一区二区三区 | 国产一二在线观看 | 欧美综合色 | 一级视频在线观看 | 手机av在线网 | 精品欧美乱码久久久久久1区2区 | 999资源站| 日本中文在线播放 | 国产精品国语自产拍在线观看 | 久久三级网| 久久成人在线 | 青春草久久 | 亚洲国产精品一区二区久久hs | 日韩熟女精品一区二区三区 | 福利小视频在线观看 | 水牛影视av一区二区免费 | 国产精品无码自拍 | 午夜噜噜 | 男生c女生 | xxx在线播放| 老妇free性videosxx | 少妇一夜三次一区二区 | 男女插插视频 | 亚洲一区二区三区在线观看视频 | 精品96久久久久久中文字幕无 | 国产91对白在线播放 | 国产91在线看 | 成人免费一区二区三区在线观看 | 中文字幕在线免费 | 国产伦精品一区 | 亚洲乱码一区二区三区在线观看 | 国产精品久久久久毛片大屁完整版 | 成人免费视频网 | 最新黄色网址在线观看 | 日韩一区二区三区免费 | 国产一二三在线观看 | 亚洲精品区 | julia一区二区三区中文字幕 | 日本三级视频在线观看 | 91精品婷婷国产综合久久 | 18无码粉嫩小泬无套在线观看 | 免费在线观看a级片 | 青青草国内自拍 | 精品一区二区三区毛片 | 人妻va精品va欧美va | 欧洲亚洲成人 | 久久国产中文 | 精品国产一区二区三区无码 | 精品少妇白浆小泬60P | 国产一区二区三区在线视频观看 | 亚洲精品国产精品国 | 草草福利影院 | 天堂网在线观看 | 日韩综合精品 | 一区二区高潮 | wwwxxx日本免费 | 精品久久成人 | 国产人人看 | 麻豆一区二区三区四区 | 日产mv免费观看 | 亚欧中文字幕 | 色播视频在线播放 | 理论片大全免费理伦片 | 九一国产精品 | 伊人激情在线 | 精品日日夜夜 | 国产又粗又大又长 | 日本黄色播放器 | 一区二区精品在线 | 在线观看亚洲成人 | 欧美一区不卡 | 九色视频偷拍少妇的秘密 | 精品人妻一区二区三区四区五区 | 日韩中文字幕一区二区三区 | 亚洲黄色av网站 | 男人天堂最新网址 | 亚洲性欧美色 | 亚洲专区在线播放 | 婷婷色亚洲| 国产亚洲视频在线 | 欧美一区二区三区婷婷 | 男同av在线观看一区二区三区 | 秋霞欧美一区二区三区视频免费 | 国产精品美女主播 | 国产精品免 | 欧美日国产| www.日本在线观看 | 日韩人妻精品无码一区二区三区 | www四虎com| 麻豆福利影院 | 久久婷婷色综合 | 日本精品网站 | 2018国产精品| 国产一区二区三区视频免费观看 | 欧美骚少妇|