/////////////////////////////////////////////////////////////////////////// // Copyright © 2019 zhongsong. All Rights Reserved. // 模块描述: 底图 /////////////////////////////////////////////////////////////////////////// define([ 'dojo/_base/declare', 'dojo/_base/lang', 'dojo/_base/array', 'dojo/_base/html', 'dojo/topic', 'dojo/on', 'jimu/BaseWidget', 'jimu/utils', 'jimu/css!libs/zTree_v3/css/zTreeStyle/zTreeStyle.css', 'libs/zTree_v3/js/jquery.ztree.all' ], function (declare, lang, array, html, topic, on, BaseWidget, aspect, string, utils ) { return declare([BaseWidget], { baseClass: 'jimu-widget-Basemap', name: 'Basemap', tileset:null, startup: function () { // 暴露在外的接口 topic.subscribe("closeMap", lang.hitch(this, this.closeBaseMap)); this.inherited(arguments); $(".cesium-baseLayerPicker-sectionTitle").eq(0).html("底图"); $(".cesium-baseLayerPicker-sectionTitle").eq(1).html("地形"); $('.jimu-widget-Basemap span').click(function () { topic.publish('closeTool', this.name); topic.publish('closeZtree', this.name); if ($('.cesium-baseLayerPicker-dropDown').hasClass('cesium-baseLayerPicker-dropDown-visible') == true) { $('.cesium-baseLayerPicker-dropDown').removeClass('cesium-baseLayerPicker-dropDown-visible') } else { $('.cesium-baseLayerPicker-dropDown').addClass('cesium-baseLayerPicker-dropDown-visible') } }); //加载3DTile this.tileset = this.map.scene.primitives.add( new Cesium.Cesium3DTileset({ "url": "http://223.83.52.4:81/data/qx1/tileset.json", "maximumScreenSpaceError": 16, "preferLeaves":true, "maximumNumberOfLoadedTiles": 2000, "luminanceAtZenith": 0.8 })); function zoomToTileset(tileset) { var cartographic = Cesium.Cartographic.fromCartesian(tileset.boundingSphere.center); var surface = Cesium.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, cartographic.height); var offset = Cesium.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, cartographic.height+10); var translation = Cesium.Cartesian3.subtract(offset, surface, new Cesium.Cartesian3()); tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation); } // tileset数据加载好后,便缩放相机视角 this.tileset.readyPromise.then(zoomToTileset); var tit = dojo.query(".cesium-baseLayerPicker-sectionTitle")[1]; html.create('div', { style:"font-size: 14px;margin-top: 3px;float: right;", innerHTML:"倾斜三维" }, tit); var qxNode = html.create('input', { style:"margin-top: 6px;margin-right: 5px;float: right;", type:"checkbox", checked:"checked" }, tit); on(qxNode, "click", lang.hitch(this, this._switchTile)) }, _switchTile: function () { if(this.tileset.show){ this.tileset.show = false; } else{ this.tileset.show = true; } }, closeBaseMap: function (item) { if (item != this.name) { if ($('.cesium-baseLayerPicker-dropDown').hasClass('cesium-baseLayerPicker-dropDown-visible') == true) { $('.cesium-baseLayerPicker-dropDown').removeClass('cesium-baseLayerPicker-dropDown-visible') } } }, onOpen: function () { //面板打开的时候触发 (when open this panel trigger) }, onClose: function () { //面板关闭的时候触发 (when this panel is closed trigger) }, onMinimize: function () { this.resize(); }, onMaximize: function () { this.resize(); }, resize: function () { }, destroy: function () { //销毁的时候触发 //todo //do something before this func this.inherited(arguments); } }); });