(function (window, mars3d) {
//创建widget类,需要继承BaseWidget
class MyWidget extends mars3d.widget.BaseWidget {
//外部资源配置
get resources() {
return ["view.css"];
}
//弹窗配置
get view() {
return {
type: "append",
url: "view.html",
};
}
//初始化[仅执行1次]
create() {
this.isAnimate = this.map.clock.shouldAnimate;
}
//每个窗口创建完成后调用
winCreateOK(opt, result) {
var that = this;
//此处可以绑定页面dom事件
this.$start = $("#btn-animation-start");
this.$time = $("#btn-animation-time");
this.$speed = $("#txt-animation-speed");
$("#btn-animation-now").click(function (e) {
that.map.clock.currentTime = Cesium.JulianDate.fromDate(new Date());
});
this.$start.click(function (e) {
that.map.clock.shouldAnimate = !that.map.clock.shouldAnimate;
that.updateStatus();
});
this.$speed.val(this.map.clock.multiplier);
this.$speed.change(function (e) {
var val = Number(that.$speed.val());
if (!isNaN(val)) {
that.map.clock.multiplier = val;
} //飞行速度
});
//this.map.clock.onTick.addEventListener(this.clock_onTickHandler, this);
setInterval(function () {
that.clock_onTickHandler();
}, 1000);
that.clock_onTickHandler();
}
//激活插件
activate() {
$(".distance-legend").css({
bottom: "25px",
});
$(".cesium-viewer-timelineContainer").css({ left: "290px" });
}
//释放插件
disable() {}
updateStatus() {
if (!this.$start || this.isAnimate === this.map.clock.shouldAnimate) {
return;
}
this.isAnimate = this.map.clock.shouldAnimate;
if (this.isAnimate) {
this.$start.attr("title", "暂停").html('');
} else {
this.$start.attr("title", "继续").html('');
}
}
clock_onTickHandler() {
this.updateStatus();
if (this.$time) {
var str = Cesium.JulianDate.toDate(this.map.clock.currentTime).format("yyyy-MM-dd HH:mm:ss");
this.$time.html(str);
}
}
}
//注册到widget管理器中。
mars3d.widget.bindClass(MyWidget);
//每个widet之间都是直接引入到index.html中,会存在彼此命名冲突,所以闭包处理下。
})(window, mars3d);