2 lines
3.4 KiB
JavaScript
2 lines
3.4 KiB
JavaScript
|
/* 2020-9-24 14:48:22 | 版权所有 军懋国兴 */
|
||
|
mars3d.widget.bindClass(mars3d.widget.BaseWidget.extend({options:{view:{type:"window",url:"view.html",windowOptions:{width:250,height:500}}},create:function(){$("body").append('<div id="centerDivEx" style="position:absolute;left:0px;top:0px;border:1px solid #ccc;bottom: 0px;width:50%;overflow: hidden;"><div id="cesiumContainerEx" style="height:100%;width:100%;overflow: hidden;"></div></div>'),$("#centerDiv").css({position:"absolute",width:"50%",height:"100%",top:0,right:0});var e=this.viewer.mars.getConfig();delete e.navigation,delete e.location;for(var t=0,i=e.operationallayers.length;t<i;t++){var a=e.operationallayers[t];if(a.compare)for(var n in a.compare)a[n]=a.compare[n]}this.viewerEx=mars3d.createMap({id:"cesiumContainerEx",data:e,homeButton:!1,geocoder:!1,sceneModePicker:!1,navigationHelpButton:!1,vrButton:!1,fullscreenButton:!1,baseLayerPicker:!0,success:function(){}});var r=this;this.viewer.scene.morphComplete.addEventListener(function(e){r.viewer.scene.mode===Cesium.SceneMode.SCENE2D?r.viewerEx.scene.screenSpaceCameraController.enableTilt=!1:r.viewerEx.scene.screenSpaceCameraController.enableTilt=!0})},typeFP:!1,winCreateOK:function(){var e=this;$("#btn_mapCompare_close").click(function(){e.disableBase()})},viewerEx:null,activate:function(){this.typeFP?$("#centerDiv").css({position:"absolute",height:"50%",width:"100%"}):$("#centerDiv").css({position:"absolute",height:"100%",width:"50%"}),$("#centerDivEx").show(),this.invalidateSize(),this.viewer.camera.changed.addEventListener(this._map_extentChangeHandler,this),this.viewer.camera.percentageChanged=.01,this.viewerEx.camera.changed.addEventListener(this._mapEx_extentChangeHandler,this),this.viewerEx.camera.percentageChanged=.01,this._map_extentChangeHandler()},disable:function(){this.viewer.camera.changed.removeEventListener(this._map_extentChangeHandler,this),this.viewerEx.camera.changed.removeEventListener(this._mapEx_extentChangeHandler,this),$("#centerDivEx").hide(),$("#centerDiv").css({position:"",height:"100%",width:"100%"}),this.invalidateSize()},invalidateSize:function(){},_map_extentChangeHandler:function(){this.viewerEx.camera.changed.removeEventListener(this._mapEx_extentChangeHandler,this),this.updateView(this.viewer,this.viewerEx),this.viewerEx.camera.changed.addEventListener(this._mapEx_extentChangeHandler,this)},_mapEx_extentChangeHandler:function(){this.viewer.camera.changed.removeEventListener(this._map_extentChangeHandler,this),this.updateView(this.viewerEx,this.viewer),this.viewer.camera.changed.addEventListener(this._map_extentChangeHandler,this)},updateView:function(e,t){var i=mars3d.point.getCameraView(e);t.camera.setView({destination:Cesium.Cartesian3.fromDegrees(i.x,i.y,i.z),orientation:{heading:Cesium.Math.toRadians(i.heading),pitch:Cesium.Math.toRadians(i.pitch),roll:Cesium.Math.toRadians(i.roll)}})},getLayers:function(){if(null==this._layers){for(var e=[],t=this.hasManagerBaseMaps?this.viewerEx.mars.config.basemaps:[],i=this.viewerEx.mars.config.operationallayers,a=0;a<t.length;a++){var n=t[a];e.push(n)}for(a=0;a<i.length;a++){n=i[a];e.push(n)}for(a=0;a<e.length;a++){(n=e[a])._key=a+"_"+n.id+"_"+n.name}this._layers=e}return this._layers},getLayar:function(e){return this.viewerEx.mars.getLayer(e)},centerAt:function(e){var t=this.getLayar(e);t&&t.centerAt()},updateLayerVisible:function(e,t){var i=this.getLayar(e);i&&i.setVisible(t)}}));
|