2 lines
3.4 KiB
JavaScript
2 lines
3.4 KiB
JavaScript
/* 2020-9-24 14:48:22 | 版权所有 军懋国兴 */
|
|
var mapSwipeWidget=mars3d.widget.bindClass(mars3d.widget.BaseWidget.extend({options:{resources:["view.css"],view:{type:"append",url:"view.html",parent:"body"}},winCreateOK:function(){for(var e=this,t=this.getBaseMaps(),i="",a="",s=0;s<t.length;s++){var r=t[s];"group"==r.config.type&&null==r.config.layers||(i+=' <li><a href="javascript:mapSwipeWidget.changeSelectBaseLayer('+s+',true)">'+r.name+"</a></li>",a+=' <li><a href="javascript:mapSwipeWidget.changeSelectSwipeLayer('+s+',true)">'+r.name+"</a></li>")}$("#ddl_basemap").html(i),$("#ddl_swipelayer").html(a),$("#btn_mapSwipe_close").click(function(){e.disableBase()})},arrOldLayers:[],activate:function(){$(".toolBarRight").css({top:"60px"});var a=this.viewer.scene,e=$("<div id='slider' class='cesium-map-contrast-slider'></div>");$("#cesiumContainer").append(e),a.imagerySplitPosition=e[0].offsetLeft/e[0].parentElement.offsetWidth;var s=0;document.getElementById("slider").addEventListener("mousedown",function(e){var t=document.getElementById("slider");s=e.clientX-t.offsetLeft,window.addEventListener("mousemove",o,!0)},!1),window.addEventListener("mouseup",function(){window.removeEventListener("mousemove",o,!0)},!1);for(var t=this.getBaseMaps(),i=-1,r=-1,l=0;l<t.length;l++){var n=t[l];if("group"!=n.type||null!=n.layers)if(-1==i)i=l;else if(-1!=i&&-1==r){r=l;break}}function o(e){var t=document.getElementById("slider"),i=(e.clientX-s)/t.parentElement.offsetWidth;t.style.left=100*i+"%",a.imagerySplitPosition=i}this.changeSelectBaseLayer(i,!0),this.changeSelectSwipeLayer(r,!0)},disable:function(){$(".toolBarRight").css({top:"10px"}),$("#slider").remove(),null!=this.leftLayer&&this.leftLayer.setVisible(!1),null!=this.rightLayer&&this.rightLayer.setVisible(!1),this.leftLayer=null,this.rightLayer=null;for(var e=this.getBaseMaps(),t=0;t<e.length;t++){var i=e[t];if("group"!=i.config.type||null!=i.config.layers){i.setVisible(!0);break}}},getBaseMaps:function(){for(var e=[],t=this.viewer.mars.arrBasemaps,i=0;i<t.length;i++)e.push(t[i]);for(var a=this.viewer.mars.arrOperationallayers,i=0;i<a.length;i++){var s=a[i];s.isTile&&e.push(s)}return e},leftLayer:null,updateLeftLayer:function(e){if(null!=this.leftLayer&&this.leftLayer.setVisible(!1),(this.leftLayer=e).setVisible(!0),"group"==e.config.type)for(var t=0;t<e._layers.length;t++){e._layers[t].layer.splitDirection=Cesium.ImagerySplitDirection.LEFT}else e.layer.splitDirection=Cesium.ImagerySplitDirection.LEFT},rightLayer:null,updateRightLayer:function(e){if(null!=this.rightLayer&&this.rightLayer.setVisible(!1),(this.rightLayer=e).setVisible(!0),"group"==e.config.type)for(var t=0;t<e._layers.length;t++){e._layers[t].layer.splitDirection=Cesium.ImagerySplitDirection.RIGHT}else e.layer.splitDirection=Cesium.ImagerySplitDirection.RIGHT},_last_baselayer_id:null,_last_swipeLayer_id:null,changeSelectBaseLayer:function(e,t){var i;this._last_swipeLayer_id!=e?(this._last_baselayer_id=e,i=this.getBaseMaps()[e],$("#btnSelectBaseMap").html("已选:"+i.name+'<span class="caret"></span>'),t&&this.updateLeftLayer(i)):toastr.warning("图层对比不能为同一图层!")},changeSelectSwipeLayer:function(e,t){var i;this._last_baselayer_id!=e?(this._last_swipeLayer_id=e,i=this.getBaseMaps()[e],$("#btnSelectSwipelayer").html("已选:"+i.name+'<span class="caret"></span>'),t&&this.updateRightLayer(i)):toastr.warning("图层对比不能为同一图层!")}})); |