/////////////////////////////////////////////////////////////////////////// // 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') } }); var self = this; var scene = this.map.scene; this.map.scene.globe.depthTestAgainstTerrain = false; //添加S3M图层服务 //var promise = scene.open("http://61.131.223.3:8090/iserver/services/3D-WLQX/rest/realspace"); var promise = scene.open("http://61.131.223.3:8090/iserver/services/3D-WLQXS3MB/rest/realspace"); var promises = scene.open("http://61.131.223.3:8090/iserver/services/3D-WLQXRGJM/rest/realspace"); //定位到场景 Cesium.loadJson('http://61.131.223.3:8090/iserver/services/3D-WLQX/rest/realspace/scenes.json').then(function (scenes) { var sname = scenes[0].name; Cesium.loadJson('http://61.131.223.3:8090/iserver/services/3D-WLQX/rest/realspace/scenes/' + sname + '.json').then(function (jsonData) { var cameraPosition = jsonData.camera; var tilt = Cesium.Math.toRadians(cameraPosition.tilt - 90); Cesium.when(promise, function (layer) { /*for (var i = 0; i < layer.length; i++) { layer[i].style3D.bottomAltitude = 60; layer[i].refresh(); }*/ self.tileset = layer[0]; //设置相机位置、视角,便于观察场景 scene.camera.setView({ destination: Cesium.Cartesian3.fromDegrees(115.728604, 28.786312, 58000), //heading : Cesium.Math.toRadians(175.0), // pitch : -55.0, // roll : 10.0 }); //设置相机位置、视角,便于观察场景 // topic.publish("gis/map/flyTo", { // 'longitude': 115.728604, // 'latitude': 28.786312, // "height": 58000, // "heading": 290.02, // "pitch": -10.17, // "roll": 359.86 // }); //进行地图定位 if (!scene.pickPositionSupported) { alert('不支持深度纹理,无法拾取位置!'); } }, function (e) { }); }); }); 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.visible) { this.tileset.visible = false; } else { this.tileset.visible = 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); } }); });