知識點和api都以注釋的形式標注在了代碼中,學習Cesium官方案例可以作為輔助理解代碼,進行自我學習和案例復現, 主要學習網站:cesium官網案例原始碼 cesium中文網api檔案 Cesium.Ion.defaultAccessToken = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI3YjIzYWFlOS1iMzE4LTQ5ZmUtYmUyOS0yMWZlYmE5Yzg4Y2MiLCJpZCI6MTIyNzExLCJpYXQiOjE2NzUwNjAyNTR9.FlRXWHoB1XNQR4wi-_VGVJeOUMrVynCEGfcHgPHUmKY"; const viewer=new Cesium.Viewer("cesiumContainer",{ shouldAnimate:true, }); const dates=[ "2018-07-19T15:18:00Z", "2018-07-19T15:18:00.5Z", "2018-07-19T15:18:01Z", "2018-07-19T15:18:01.5Z", "2018-07-19T15:18:02Z", "2018-07-19T15:18:02.5Z", ] const uris = [ "../Source/SampleData/Cesium3DTiles/PointCloud/PointCloudTimeDynamic/0.pnts", "../Source/SampleData/Cesium3DTiles/PointCloud/PointCloudTimeDynamic/1.pnts", "../Source/SampleData/Cesium3DTiles/PointCloud/PointCloudTimeDynamic/2.pnts", "../Source/SampleData/Cesium3DTiles/PointCloud/PointCloudTimeDynamic/3.pnts", "../Source/SampleData/Cesium3DTiles/PointCloud/PointCloudTimeDynamic/4.pnts", ]; function dataCallback(interval,index){
return { uri:uris[index], };} const timeIntervalCollection=Cesium.TimeIntervalCollection.fromIso8601DateArray( //從 ISO 8601 日期陣列創建一個新實體, { iso8601Dates:dates, // 一組 ISO 8601 日期 dataCallback:dataCallback, //一個函式,它將回傳在將每個間隔添加到集合之前呼叫的資料, //如果未指定,資料將是集合中的索引, } ); const pointCloud = new Cesium.TimeDynamicPointCloud({ //提供時間動態點云資料的回放, //點云幀按平均幀加載時間和當前時鐘速度確定的間隔進行預取, //如果中間幀不能及時加載以滿足播放速度,它們將被跳過, //如果幀足夠小或時鐘足夠慢,則不會跳過任何幀, intervals: timeIntervalCollection, //一個 TimeIntervalCollection ,它的 data 屬性是一個物件, //其中包含一個到 3D Tiles Point Cloud tile 的 uri 和一個可選的 transform , clock: viewer.clock, //在確定時間維度的值時使用的 Clock 實體, style: new Cesium.Cesium3DTileStyle({ pointSize: 5, }), //使用 3D Tiles Styling 語言 定義的樣式,應用于點云中的每個點 }); viewer.scene.primitives.add(pointCloud); //獲取原語的集合 //將原語添加到集合中, const start=Cesium.JulianDate.fromIso8601(dates[0]); const stop=Cesium.JulianDate.fromIso8601(dates[dates.length-1]);
viewer.timeline.zoomTo(start,stop);
const clock=viewer.clock; clock.startTime=start; clock.currentTime=start; clock.stopTime=stop; clock.clockRange=Cesium.ClockRange.LOOP_STOP;
viewer.zoomTo( pointCloud, new Cesium.HeadingPitchRange(0.0,-0.5,50.0) //航向 俯仰 到中心的距離 //定義區域框架中的航向角、俯仰角和范圍, //航向是從當地的北向旋轉,正角向東增加, //俯仰是從區域 xy 平面旋轉,正俯仰角在平面上方, //負俯仰角位于平面下方,范圍是距框架中心的距離, );
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/549340.html
標籤:GIS
