XWWitPark/witpark_jzzs/xw_jzzs_web/public/widgets/roamFly/widget.js
2024-09-12 08:10:00 +08:00

2 lines
3.1 KiB
JavaScript

/* 2020-9-24 14:48:24 | 版权所有 军懋国兴 */
mars3d.widget.bindClass(mars3d.widget.BaseWidget.extend({options:{view:{type:"window",url:"view.html",windowOptions:{width:230,height:520}}},create:function(){},viewWindow:null,winCreateOK:function(i,e){this.viewWindow=e},activate:function(){var i,e,t=this.config.data.points;!t||t.length<2?toastr.error("路线无坐标数据,无法漫游!"):(i=new mars3d.FlyLine(this.viewer,this.config.data),this.flyLine=i,this.createTimeLine(),this.config.data.clampToGround?(e=this,i.clampToGround(function(){e.startFly()})):this.startFly())},startFly:function(){var i=this.flyLine;this.viewWindow.showAllInfo({name:i.name,alllen:i.alllen,alltime:i.alltimes}),this.viewer.timeline?this.viewer.timeline.zoomTo(i.startTime,i.stopTime):this.timeline&&this.timeline.zoomTo(i.startTime,i.stopTime),i.start();var e=this;this.timetik=setInterval(function(){e.flyLine.timeinfo&&(e.viewWindow.showRealTimeInfo(e.flyLine.timeinfo),e.updateCharsWidgeFlyOk(e.flyLine.timeinfo.len))},200)},disable:function(){this.viewWindow=null,clearInterval(this.timetik),this.flyLine.destroy(),delete this.flyLine,this.removeTimeLine()},getAttr:function(){return this.flyLine.options},updateStyle:function(i){this.flyLine.updateStyle(i)},toRoamLine:function(){this.flyLine.stop(),mars3d.widget.activate({uri:"widgets/roamLine/widget.js"})},charsWidgetUri:"widgets/roamChars/widget.js",showHeightChars:function(){var e=this;this.flyLine.getTerrainHeight(function(i){e.updateCharsWidge(i)},{splitNum:100})},updateCharsWidge:function(i){mars3d.widget.activate({uri:this.charsWidgetUri,data:i})},updateCharsWidgeFlyOk:function(i){var e=mars3d.widget.getClass(this.charsWidgetUri);e&&e.isActivate&&e.changeFlyOk(i)},createTimeLine:function(){var i,e,t,n,s=this.viewer._element;this.viewer.animation||((i=document.createElement("div")).className="cesium-viewer-animationContainer",s.appendChild(i),e=new Cesium.Animation(i,new Cesium.AnimationViewModel(this.viewer.clockViewModel)),this.animation=e),this.viewer.timeline||((t=document.createElement("div")).className="cesium-viewer-timelineContainer",t.style.right="0px",s.appendChild(t),(n=new Cesium.Timeline(t,this.viewer.clock)).addEventListener("settime",this.onTimelineScrubfunction,!1),n.zoomTo(this.viewer.clock.startTime,this.viewer.clock.stopTime),this.timeline=n),this.locationOldCss=this.viewer.mars.location._dom.css(["left","bottom"]),this.viewer.mars.location._dom.css({left:"170px",bottom:"25px"}),this.legendOldCss=$(".distance-legend").css(["left","bottom"]),$(".distance-legend").css({left:"150px",bottom:"25px"})},onTimelineScrubfunction:function(i){var e=i.clock;e.currentTime=i.timeJulian,e.shouldAnimate=!1},removeTimeLine:function(){this.timeline&&this.timeline.removeEventListener("settime",this.onTimelineScrubfunction,!1);try{var i=this.viewer._element;this.animation&&(i.removeChild(this.animation.container),this.animation.destroy(),this.animation=null),this.timeline&&(i.removeChild(this.timeline.container),this.timeline.destroy(),this.timeline=null),this.viewer.mars.location._dom.css(this.locationOldCss),$(".distance-legend").css(this.legendOldCss)}catch(i){console.log(i)}}}));