From 0163b28ce3a2e0186b82e02fd8f98f8d9ee55340 Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Tue, 22 Jun 2021 17:41:48 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.105:10010/r/pyhmap
---
widgets/LeftNavigationBar/Widget.js | 1658 +++++++++++++++++++++++++++++-----------------------------
1 files changed, 826 insertions(+), 832 deletions(-)
diff --git a/widgets/LeftNavigationBar/Widget.js b/widgets/LeftNavigationBar/Widget.js
index d12bce2..592e483 100644
--- a/widgets/LeftNavigationBar/Widget.js
+++ b/widgets/LeftNavigationBar/Widget.js
@@ -3,977 +3,971 @@
// 模块描述:显示坐标
///////////////////////////////////////////////////////////////////////////
define([
- 'dojo/_base/declare',
- 'dojo/_base/lang',
- 'dojo/_base/array',
- 'dojo/_base/html',
- 'dojo/topic',
- '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,
- BaseWidget,
- aspect,
- string,
- utils
- ) {
- return declare([BaseWidget], {
- baseClass: 'jimu-widget-LeftNavigationBar',
- name: 'LeftNavigationBar',
- layers: {},
- dataAllArray: [],
- startup: function () {
- // 暴露在外的接口
- // this.begin(this.data);
- var that = this;
- this.getData();
+ 'dojo/_base/declare',
+ 'dojo/_base/lang',
+ 'dojo/_base/array',
+ 'dojo/_base/html',
+ 'dojo/topic',
+ '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,
+ BaseWidget,
+ aspect,
+ string,
+ utils
+ ) {
+ return declare([BaseWidget], {
+ baseClass: 'jimu-widget-LeftNavigationBar',
+ name: 'LeftNavigationBar',
+ layers: {},
+ dataAllArray: [],
+ startup: function () {
+ // 暴露在外的接口
+ // this.begin(this.data);
+ var that = this;
+ this.getData();
- $('.left-navigation-bar-but').click(() => {
- this.changeImg = !this.changeImg;
- if (this.changeImg) {
- $('.l-n-b-b-img').attr("src", "./images/addL/xzuo.png"); //打开
- $('.jimu-widget-LeftNavigationBar').css({
- 'left': '0px'
- });
- $('.jimu-widget-instructions').css({
- 'left': '260px'
- });
- } else {
- $('.l-n-b-b-img').attr("src", "./images/addL/xyou.png"); //关闭
- $('.jimu-widget-LeftNavigationBar').css({
- 'left': '-250px'
- });
- $('.jimu-widget-instructions').css({
- 'left': '10px'
- });
- }
- })
+ $('.left-navigation-bar-but').click(() => {
+ this.changeImg = !this.changeImg;
+ if (this.changeImg) {
+ $('.l-n-b-b-img').attr("src", "./images/addL/xzuo.png"); //打开
+ $('.jimu-widget-LeftNavigationBar').css({
+ 'left': '0px'
+ });
+ $('.jimu-widget-instructions').css({
+ 'left': '260px'
+ });
+ } else {
+ $('.l-n-b-b-img').attr("src", "./images/addL/xyou.png"); //关闭
+ $('.jimu-widget-LeftNavigationBar').css({
+ 'left': '-250px'
+ });
+ $('.jimu-widget-instructions').css({
+ 'left': '10px'
+ });
+ }
+ })
- $('.jimu-widget-instructions').css({
- 'left': '260px'
- });
+ $('.jimu-widget-instructions').css({
+ 'left': '260px'
+ });
- $('#left-navigation-bar-main-search').click(() => { //搜索事件
- leftSearchItemLayer()
- })
+ $('#left-navigation-bar-main-search').click(() => { //搜索事件
+ leftSearchItemLayer()
+ })
- $(".jimu-widget-LeftNavigationBar input[type='search']").bind('input propertychange', function () {
- //做一些事情
- var val = $(this).val();
+ $(".jimu-widget-LeftNavigationBar input[type='search']").bind('input propertychange', function () {
+ //做一些事情
+ var val = $(this).val();
- if (val == '') {
- that.changeData(that.dataAllArray, val); //重写数据
- layui.use('tree', function () {
- layui.tree.reload('demoId1', {
- data: that.data
- });
+ if (val == '') {
+ that.changeData(that.dataAllArray, val); //重写数据
+ layui.use('tree', function () {
+ layui.tree.reload('demoId1', {
+ data: that.data
+ });
- var jqDom = $("#left-tree-list > .layui-tree > div");
+ var jqDom = $("#left-tree-list > .layui-tree > div");
- for (var i = 0; i < jqDom.length; i++) {
+ for (var i = 0; i < jqDom.length; i++) {
- var textList = $(jqDom[i]).find('.layui-tree-txt');
+ var textList = $(jqDom[i]).find('.layui-tree-txt');
- for (var j = 0; j < textList.length; j++) {
- $(textList[j]).attr('title', $(textList[j]).text())
+ for (var j = 0; j < textList.length; j++) {
+ $(textList[j]).attr('title', $(textList[j]).text())
- }
+ }
- }
- })
- }
+ }
+ })
+ }
- })
+ })
- $(".jimu-widget-LeftNavigationBar input[type='search']").keyup(function (e) {
- if (e.keyCode == 13) {
- leftSearchItemLayer()
- }
- })
+ $(".jimu-widget-LeftNavigationBar input[type='search']").keyup(function (e) {
+ if (e.keyCode == 13) {
+ leftSearchItemLayer()
+ }
+ })
- function leftSearchItemLayer() {
- var val = $('#left-navigation-bar-main-input').val();
- if (val != '') {
- var clearOur = () => {
- let dom = $(`[data-id]`);
- dom.removeClass('layui-tree-spread');
- let domDiv = dom.find('.layui-tree-pack');
- domDiv.css({
- 'display': 'none'
- })
- },
- a, useit = (d) => {
- for (var k in d) {
- if (d[k].who == 'father') {
- that.father = d[k].id;
- }
- if (d[k].title && d[k].title.indexOf(val) != -1) { //选中id
- a = '' + d[k].id;
- // var b = a.split('');
- // for (var i in b) {
- let id = that.father; //选中项的所有父级id
- let dom = $(`[data-id='${id}']`);
- dom.addClass('layui-tree-spread');
- let domDiv = dom.find('.layui-tree-pack').eq(0);
- domDiv.css({
- 'display': 'block'
- })
- // }
- }
- if (d[k].children && d[k].children.length > 0) {
- useit(d[k].children);
- }
- }
- };
+ function leftSearchItemLayer() {
+ var val = $('#left-navigation-bar-main-input').val();
+ if (val != '') {
+ var clearOur = () => {
+ let dom = $(`[data-id]`);
+ dom.removeClass('layui-tree-spread');
+ let domDiv = dom.find('.layui-tree-pack');
+ domDiv.css({
+ 'display': 'none'
+ })
+ },
+ a, useit = (d) => {
+ for (var k in d) {
+ if (d[k].who == 'father') {
+ that.father = d[k].id;
+ }
+ if (d[k].title && d[k].title.indexOf(val) != -1) { //选中id
+ a = '' + d[k].id;
+ // var b = a.split('');
+ // for (var i in b) {
+ let id = that.father; //选中项的所有父级id
+ let dom = $(`[data-id='${id}']`);
+ dom.addClass('layui-tree-spread');
+ let domDiv = dom.find('.layui-tree-pack').eq(0);
+ domDiv.css({
+ 'display': 'block'
+ })
+ // }
+ }
+ if (d[k].children && d[k].children.length > 0) {
+ useit(d[k].children);
+ }
+ }
+ };
- that.changeData(that.dataAllArray, val); //重写数据
- layui.use('tree', function () {
- layui.tree.reload('demoId1', {
- data: that.data
- });
- var jqDom = $("#left-tree-list > .layui-tree > div");
+ that.changeData(that.dataAllArray, val); //重写数据
+ layui.use('tree', function () {
+ layui.tree.reload('demoId1', {
+ data: that.data
+ });
+ var jqDom = $("#left-tree-list > .layui-tree > div");
- for (var i = 0; i < jqDom.length; i++) {
+ for (var i = 0; i < jqDom.length; i++) {
- var textList = $(jqDom[i]).find('.layui-tree-txt');
+ var textList = $(jqDom[i]).find('.layui-tree-txt');
- for (var j = 0; j < textList.length; j++) {
- $(textList[j]).attr('title', $(textList[j]).text())
+ for (var j = 0; j < textList.length; j++) {
+ $(textList[j]).attr('title', $(textList[j]).text())
- }
+ }
- }
+ }
- clearOur();
- useit(that.data);
- })
+ clearOur();
+ useit(that.data);
+ })
- }
- }
- },
+ }
+ }
+ },
- closeToolBox: function (item) {},
+ closeToolBox: function (item) {},
- onOpen: function () {
- //面板打开的时候触发 (when open this panel trigger)
+ onOpen: function () {
+ //面板打开的时候触发 (when open this panel trigger)
- },
+ },
- onClose: function () {
- //面板关闭的时候触发 (when this panel is closed trigger)
- },
+ onClose: function () {
+ //面板关闭的时候触发 (when this panel is closed trigger)
+ },
- onMinimize: function () {
- this.resize();
- },
+ onMinimize: function () {
+ this.resize();
+ },
- onMaximize: function () {
- this.resize();
- },
+ onMaximize: function () {
+ this.resize();
+ },
- resize: function () {
+ resize: function () {
- },
- getData: function () {
- var that = this;
- var url = 'http://171.34.76.171:8880/pyh-wetResource/GeoData/queryGeoDataTree',
- that = this;
+ },
+ getData: function () {
+ var that = this;
+ var url = 'http://171.34.76.171:8880/pyh-wetResource/GeoData/queryGeoDataTree',
+ that = this;
- axios.get(url, {
- headers: {
- "token": 'Bearer eyJhbGciOiJIUzUxMiJ9.eyJpc3MiOiJlY2hpc2FuIiwic3ViIjoiYWRtaW4iLCJpYXQiOjE2MjI4Nzc0MTIsImV4cCI6MTYyNTQ2OTQxMn0.f2GhYYINfYgSbyKTqqGluyU3rdy_TT8mf15iLILS1l2EUSye_h9O6CSUVWpLYMrdrjzqDWwrbROxfhy-8ly0uA'
- }
- }).then((res) => {
- if (res.data.code == '200') {
- that.dataAllArray = res.data.data;
- that.changeData(res.data.data, ''); //重写数据
- that.begin(this.data);
- }
- })
- },
- changeData: function (val, type) { //重写数据
- var that = this;
- var data = [],
- i = 1,
- inits = (d, childData) => {
- var b = childData || [];
- for (var k in d) {
+ axios.get(url, {
+ headers: {
+ "token": 'Bearer eyJhbGciOiJIUzUxMiJ9.eyJpc3MiOiJlY2hpc2FuIiwic3ViIjoiYWRtaW4iLCJpYXQiOjE2MjI4Nzc0MTIsImV4cCI6MTYyNTQ2OTQxMn0.f2GhYYINfYgSbyKTqqGluyU3rdy_TT8mf15iLILS1l2EUSye_h9O6CSUVWpLYMrdrjzqDWwrbROxfhy-8ly0uA'
+ }
+ }).then((res) => {
+ if (res.data.code == '200') {
+ that.dataAllArray = res.data.data;
+ that.changeData(res.data.data, ''); //重写数据
+ that.begin(this.data);
+ }
+ })
+ },
+ changeData: function (val, type) { //重写数据
+ var that = this;
+ var data = [],
+ i = 1,
+ inits = (d, childData) => {
+ var b = childData || [];
+ for (var k in d) {
- let a = {
- title: d[k].name,
- // id: d[k].id,
- // field: String(d[k].id),
- id: i,
- field: String(i),
- src: d[k].serviceUrl,
- id: d[k].id,
- serviceName: d[k].serviceName,
- alpha: 1,
- checked: d[k].menuStatus
- }
+ let a = {
+ title: d[k].name,
+ // id: d[k].id,
+ // field: String(d[k].id),
+ id: i,
+ field: String(i),
+ src: d[k].serviceUrl,
+ id: d[k].id,
+ serviceName: d[k].serviceName,
+ alpha: 1,
+ checked: d[k].menuStatus,
+ attList: d[k].attList
+ }
- if (that[d[k].id]) {
- a.alpha = that[d[k].id].alpha
- }
+ if (that[d[k].id]) {
+ a.alpha = that[d[k].id].alpha
+ }
- if (d[k].serviceUrl && d[k].serviceUrl.length > 0 && d[k].serviceUrl.indexOf('.openrealspace') != -1) {
- a.model = true
- }
+ if (d[k].serviceUrl && d[k].serviceUrl.length > 0 && d[k].serviceUrl.indexOf('.openrealspace') != -1) {
+ a.model = true;
+ a.lat = d[k].lat;
+ a.lon = d[k].lon;
+ a.height = d[k].height;
+ a.yawAngle = d[k].yawAngle;
+ a.pitchAngle = d[k].pitchAngle;
+ a.rollAngle = d[k].rollAngle;
+ }
- if (d[k].name == '三维倾斜数据') {
- a.model = true
- }
+ if (d[k].name == '三维倾斜数据') {
+ a.model = true
+ }
- if (a.model) {
+ b.push(a);
+ i++;
+ if (d[k].children && d[k].children.length > 0) {
+ b[k].children = [];
+ b[k].who = 'father';
+ inits(d[k].children, b[k].children)
+ }
+ }
- if (that[a.id]) {
- Cesium.when(that[a.id], function (layer) {
- that.map.scene.layers.remove(layer[0].name)
- })
- }
+ };
+ inits(val, data);
- }
+ if (type != '') {
-
+ for (var i = 0; i < data.length; i++) {
- b.push(a);
- i++;
- if (d[k].children && d[k].children.length > 0) {
- b[k].children = [];
- b[k].who = 'father';
- inits(d[k].children, b[k].children)
- }
- }
+ if (data[i].children && data[i].children.length > 0) {
- };
- inits(val, data);
+ deWeight()
- if (type != '') {
+ function deWeight() {
+ for (var j = 0; j < data[i].children.length; j++) {
- for (var i = 0; i < data.length; i++) {
+ if (data[i].children[j].title && data[i].children[j].title.indexOf(type) == -1) {
+ data[i].children.splice(j, 1);
+ deWeight();
+ break;
- if (data[i].children && data[i].children.length > 0) {
+ }
- deWeight()
+ }
+ }
- function deWeight() {
- for (var j = 0; j < data[i].children.length; j++) {
+ }
- if (data[i].children[j].checked == true) {
- var small = data[i].children[j];
- if (small.model) {
- that.map.scene.globe.depthTestAgainstTerrain = false;
- var host = that.returnStr(small.src).host;
- var scene = that.map.scene;
- var partOfUrl = that.returnStr(small.src).partOfUrl;
- //添加S3M图层服务
- that[small.id] = scene.open(host + partOfUrl);
- }
- }
+ }
+ deParentWeight()
- if (data[i].children[j].title && data[i].children[j].title.indexOf(type) == -1) {
- data[i].children.splice(j, 1);
- deWeight();
- break;
+ function deParentWeight() {
+ for (var i = 0; i < data.length; i++) {
- }
+ if (data[i].children && data[i].children.length == 0) {
+ data.splice(i, 1)
+ deParentWeight();
+ break;
+ }
- }
- }
+ if (data[i].children == undefined && data[i].title.indexOf(type) == -1) {
+ data.splice(i, 1)
+ deParentWeight();
+ break;
- }
+ }
+ }
+ }
+ }
+ var keyId = this.getUrlKeyId("serviceId");
+ if (keyId && keyId != "") {
+ for (var i = 0; i < data.length; i++) {
- }
- deParentWeight()
+ if (data[i].id == keyId) {
+ data[i].checked = true
+ }
- function deParentWeight() {
- for (var i = 0; i < data.length; i++) {
+ if (data[i].children && data[i].children.length > 0) {
- if (data[i].children && data[i].children.length == 0) {
- data.splice(i, 1)
- deParentWeight();
- break;
- }
+ for (var j = 0; j < data[i].children.length; j++) {
- if (data[i].children == undefined && data[i].title.indexOf(type) == -1) {
- data.splice(i, 1)
- deParentWeight();
- break;
+ if (data[i].children[j].id == keyId) {
+ data[i].children[j].checked = true
+ }
- }
+ }
- }
- }
+ }
- }
+ }
+ }
- var keyId = this.getUrlKeyId("serviceId");
- if (keyId && keyId != "") {
- for (var i = 0; i < data.length; i++) {
- if (data[i].id == keyId) {
- data[i].checked = true
- }
+ this.data = data;
- for (var j = 0; j < data[i].children.length; j++) {
- if (data[i].children[j].id == keyId) {
- data[i].children[j].checked = true
- }
+ },
+ begin: function (data) {
+ var that = this;
- }
- }
- }
+ var a = null;
+ layui.use(function () {
+ var tree = layui.tree,
+ layer = layui.layer,
+ util = layui.util,
+ $ = layui.$;
+ var slider = layui.slider;
+ tree.render({
+ elem: '#left-tree-list' //默认是点击节点可进行收缩
+ ,
+ data: data,
+ id: 'demoId1',
+ showCheckbox: true, //是否显示复选框
+ customOperate: true,
+ click: function (obj) {
+ var data = obj.data; //获取当前点击的节点数据
+ // layer.msg('状态:' + obj.state + '<br>节点数据:' + JSON.stringify(data));
+ // 树点击三角形样式修改
+ // var ot = $('.layui-tree-iconArrow');
+ // ot.removeClass("left-navigation-bar-main-down");
+ // var jt = $(`[data-id='${data.id}']`).find('.layui-tree-iconArrow').eq(0);
+ // jt.addClass('left-navigation-bar-main-down');
+ // 树点击样式修改
+ // var ot = $('.layui-tree-entry');
+ // ot.removeClass("left-navigation-bar-main-current");
+ // var jh = $(`[data-id='${data.id}']`).find('.layui-tree-entry').eq(0);
+ // jh.addClass('left-navigation-bar-main-current');
+ },
+ showLine: false, //是否开启连接线
+ oncheck: function (obj) {
- this.data = data;
+ if (obj.data.children && obj.data.children.length > 0) {
- },
- begin: function (data) {
- var that = this;
+ // 点击的父
- var a = null;
+ if (obj.checked == true) {
- layui.use(function () {
- var tree = layui.tree,
- layer = layui.layer,
- util = layui.util,
- $ = layui.$;
- var slider = layui.slider;
+ if (obj.data.model) {
+ that.map.scene.globe.depthTestAgainstTerrain = false;
+ obj.data.children.forEach(item => {
+ Cesium.when(that[item.id], function (layer) {
+ that.map.scene.layers.remove(layer[0].name)
+ })
+ var host = that.returnStr(item.src).host;
+ var scene = that.map.scene;
+ var partOfUrl = that.returnStr(item.src).partOfUrl;
+ //添加S3M图层服务
+ that[item.id] = scene.open(host + partOfUrl);
+ //定位到场景
+ Cesium.loadJson(host + partOfUrl + '/scenes.json').then(function (scenes) {
+ var sname = scenes[0].name;
+ Cesium.loadJson(host + partOfUrl + '/scenes/' + sname + '.json').then(function (jsonData) {
+ Cesium.when(that[item.id], function (layer) {
+ //设置相机位置、视角,便于观察场景
+ scene.camera.setView({
+ destination: new Cesium.Cartesian3.fromDegrees(Number(item.lon), Number(item.lat), Number(item.height)),
+ orientation: {
+ heading: Cesium.Math.toRadians(Number(item.yawAngle)),
+ pitch: Cesium.Math.toRadians(Number(item.pitchAngle)),
+ roll: Cesium.Math.toRadians(Number(item.rollAngle))
+ }
+ });
+ if (!scene.pickPositionSupported) {
+ alert('不支持深度纹理,无法拾取位置!');
+ }
+ }, function (e) {
+ if (widget._showRenderLoopErrors) {
+ var title = '加载SCP失败,请检查网络连接状态或者url地址是否正确?';
+ widget.showErrorPanel(title, undefined, e);
+ }
+ });
+ });
+ });
+ });
+ } else {
- tree.render({
- elem: '#left-tree-list' //默认是点击节点可进行收缩
- ,
- data: data,
- id: 'demoId1',
- showCheckbox: true, //是否显示复选框
- customOperate: true,
- click: function (obj) {
- var data = obj.data; //获取当前点击的节点数据
- // layer.msg('状态:' + obj.state + '<br>节点数据:' + JSON.stringify(data));
- // 树点击三角形样式修改
- // var ot = $('.layui-tree-iconArrow');
- // ot.removeClass("left-navigation-bar-main-down");
- // var jt = $(`[data-id='${data.id}']`).find('.layui-tree-iconArrow').eq(0);
- // jt.addClass('left-navigation-bar-main-down');
- // 树点击样式修改
- // var ot = $('.layui-tree-entry');
- // ot.removeClass("left-navigation-bar-main-current");
- // var jh = $(`[data-id='${data.id}']`).find('.layui-tree-entry').eq(0);
- // jh.addClass('left-navigation-bar-main-current');
- },
- showLine: false, //是否开启连接线
- oncheck: function (obj) {
+ obj.data.children.forEach(item => {
- var keyId = that.getUrlKeyId("serviceId");
+ if (that[item.id]) {
+ that[item.id].show = true
+ that[item.id].getViewableRectangle().then(function (rectangle) {
+ return that.map.camera.flyTo({
+ destination: rectangle
+ });
+ });
+ topic.publish('appendItem', 'Layermanagement', item, that[item.id]);
+ topic.publish('addLayersLegends', 'legends', item);
+ } else {
+ $.ajax({
+ url: item.src + '/maps.json',
+ type: 'get',
+ dataType: 'JSON',
+ success: function (res) {
- if (obj.data.children && obj.data.children.length > 0) {
- // 点击的父
+ that[item.id] = that.map.imageryLayers.addImageryProvider(new Cesium.SuperMapImageryProvider({
+ url: res[0].path,
+ }));
+ topic.publish('appendItem', 'Layermanagement', item, that[item.id]);
+ topic.publish('addLayersLegends', 'legends', item);
+ that[item.id].alpha = item.alpha;
+ that[item.id].getViewableRectangle().then(function (rectangle) {
+ return that.map.camera.flyTo({
+ destination: rectangle
+ });
+ });
+ }
+ })
+ }
+ });
+ }
- if (obj.checked == true) {
- if (obj.data.model) {
- obj.data.children.forEach(item => {
- var host = that.returnStr(item.src).host;
- var scene = that.map.scene;
- var partOfUrl = that.returnStr(item.src).partOfUrl;
- //添加S3M图层服务
- that[item.id] = scene.open(host + partOfUrl);
- //定位到场景
- Cesium.loadJson(host + partOfUrl + '/scenes.json').then(function (scenes) {
- // var sname = scenes[0].name;
- // Cesium.loadJson(host + partOfUrl + '/scenes/' + sname + '.json').then(function (jsonData) {
- // var cameraPosition = jsonData.camera;
- // var tilt = Cesium.Math.toRadians(cameraPosition.tilt - 90);
- // Cesium.when(promise, function (layer) {
- // //设置相机位置、视角,便于观察场景
- // scene.camera.setView({
- // destination: new Cesium.Cartesian3.fromDegrees(cameraPosition.longitude, cameraPosition.latitude, cameraPosition.altitude),
- // orientation: {
- // heading: cameraPosition.heading,
- // pitch: tilt,
- // roll: 0
- // }
- // });
- // if (!scene.pickPositionSupported) {
- // alert('不支持深度纹理,无法拾取位置!');
- // }
- // }, function (e) {
- // if (widget._showRenderLoopErrors) {
- // var title = '加载SCP失败,请检查网络连接状态或者url地址是否正确?';
- // widget.showErrorPanel(title, undefined, e);
- // }
- // });
- // });
- });
- });
- } else {
- obj.data.children.forEach(item => {
- if (that[item.id]) {
- that[item.id].show = true
- topic.publish('appendItem', 'Layermanagement', item, that[item.id]);
- } else {
- $.ajax({
- url: item.src + '/maps.json',
- type: 'get',
- dataType: 'JSON',
- success: function (res) {
+ } else {
+ if (obj.data.model) {
+ obj.data.children.forEach(item => {
+ Cesium.when(that[item.id], function (layer) {
+ that.map.scene.layers.remove(layer[0].name)
+ })
+ });
+ } else {
+ obj.data.children.forEach(item => {
+ if (that[item.id]) {
+ topic.publish('removeItem', 'Layermanagement', item);
+ topic.publish('removeLayersLegends', 'legends', item);
+ that[item.id].show = false;
+ }
+ });
- that[item.id] = that.map.imageryLayers.addImageryProvider(new Cesium.SuperMapImageryProvider({
- url: res[0].path,
- }));
- topic.publish('appendItem', 'Layermanagement', item, that[item.id]);
- that[item.id].alpha = item.alpha
+ }
- if (keyId && keyId != "") {
- that[item.id].getViewableRectangle().then(function (rectangle) {
- return that.map.camera.flyTo({
- destination: rectangle
- });
- });
- }
- }
- })
- }
- });
+ }
- }
+ } else {
+ // 点击的子
+ if (obj.checked == true) {
+ if (obj.data.model) {
+ Cesium.when(that[obj.data.id], function (layer) {
+ that.map.scene.layers.remove(layer[0].name)
+ })
+ that.map.scene.globe.depthTestAgainstTerrain = false;
+ var host = that.returnStr(obj.data.src).host;
+ var scene = that.map.scene;
+ var partOfUrl = that.returnStr(obj.data.src).partOfUrl;
+ //添加S3M图层服务
+ that[obj.data.id] = scene.open(host + partOfUrl);
+ //定位到场景
- } else {
+ Cesium.loadJson(host + partOfUrl + '/scenes.json').then(function (scenes) {
+ var sname = scenes[0].name;
+ Cesium.loadJson(host + partOfUrl + '/scenes/' + sname + '.json').then(function (jsonData) {
+ Cesium.when(that[obj.data.id], function (layer) {
+ //设置相机位置、视角,便于观察场景
+ scene.camera.setView({
+ destination: new Cesium.Cartesian3.fromDegrees(Number(obj.data.lon), Number(obj.data.lat), Number(obj.data.height)),
+ orientation: {
+ heading: Cesium.Math.toRadians(Number(obj.data.yawAngle)),
+ pitch: Cesium.Math.toRadians(Number(obj.data.pitchAngle)),
+ roll: Cesium.Math.toRadians(Number(obj.data.rollAngle))
+ }
+ });
+ if (!scene.pickPositionSupported) {
+ alert('不支持深度纹理,无法拾取位置!');
+ }
+ }, function (e) {
+ if (widget._showRenderLoopErrors) {
+ var title = '加载SCP失败,请检查网络连接状态或者url地址是否正确?';
+ widget.showErrorPanel(title, undefined, e);
+ }
+ });
+ });
+ });
- if (obj.data.model) {
- obj.data.children.forEach(item => {
- Cesium.when(that[item.id], function (layer) {
- that.map.scene.layers.remove(layer[0].name)
- })
- });
- } else {
- obj.data.children.forEach(item => {
- if (that[item.id]) {
- topic.publish('removeItem', 'Layermanagement', item);
- that[item.id].show = false;
- }
- });
+ } else {
- }
+ if (that[obj.data.id]) {
+ that[obj.data.id].show = true;
+ that[obj.data.id].getViewableRectangle().then(function (rectangle) {
+ return that.map.camera.flyTo({
+ destination: rectangle
+ });
+ });
+ topic.publish('appendItem', 'Layermanagement', obj.data, that[obj.data.id]);
+ topic.publish('addLayersLegends', 'legends', obj.data);
+ } else {
+ $.ajax({
+ url: obj.data.src + '/maps.json',
+ type: 'get',
+ dataType: 'JSON',
+ success: function (res) {
- }
+ that[obj.data.id] = that.map.imageryLayers.addImageryProvider(new Cesium.SuperMapImageryProvider({
+ url: res[0].path,
+ }));
- } else {
+ topic.publish('appendItem', 'Layermanagement', obj.data, that[obj.data.id]);
+ topic.publish('addLayersLegends', 'legends', obj.data);
+ that[obj.data.id].alpha = obj.data.alpha
- // 点击的子
-
- if (obj.checked == true) {
-
- if (obj.data.model) {
- that.map.scene.globe.depthTestAgainstTerrain = false;
- var host = that.returnStr(obj.data.src).host;
- var scene = that.map.scene;
- var partOfUrl = that.returnStr(obj.data.src).partOfUrl;
- //添加S3M图层服务
- that[obj.data.id] = scene.open(host + partOfUrl);
- //定位到场景
-
- Cesium.loadJson(host + partOfUrl + '/scenes.json').then(function (scenes) {
- // var sname = scenes[0].name;
- // Cesium.loadJson(host + partOfUrl + '/scenes/' + sname + '.json').then(function (jsonData) {
- // var cameraPosition = jsonData.camera;
- // var tilt = Cesium.Math.toRadians(cameraPosition.tilt - 90);
- // Cesium.when(promise, function (layer) {
- // //设置相机位置、视角,便于观察场景
- // scene.camera.setView({
- // destination: new Cesium.Cartesian3.fromDegrees(cameraPosition.longitude, cameraPosition.latitude, cameraPosition.altitude),
- // orientation: {
- // heading: cameraPosition.heading,
- // pitch: tilt,
- // roll: 0
- // }
- // });
- // if (!scene.pickPositionSupported) {
- // alert('不支持深度纹理,无法拾取位置!');
- // }
- // }, function (e) {
- // if (widget._showRenderLoopErrors) {
- // var title = '加载SCP失败,请检查网络连接状态或者url地址是否正确?';
- // widget.showErrorPanel(title, undefined, e);
- // }
- // });
- // });
- });
-
- } else {
-
- if (that[obj.data.id]) {
- that[obj.data.id].show = true;
- topic.publish('appendItem', 'Layermanagement', obj.data, that[obj.data.id]);
- } else {
- $.ajax({
- url: obj.data.src + '/maps.json',
- type: 'get',
- dataType: 'JSON',
- success: function (res) {
-
-
- that[obj.data.id] = that.map.imageryLayers.addImageryProvider(new Cesium.SuperMapImageryProvider({
- url: res[0].path,
- }));
-
- topic.publish('appendItem', 'Layermanagement', obj.data, that[obj.data.id]);
-
- that[obj.data.id].alpha = obj.data.alpha
-
- if (keyId && keyId != "") {
- that[obj.data.id].getViewableRectangle().then(function (rectangle) {
- return that.map.camera.flyTo({
- destination: rectangle
- });
- });
- }
- }
- })
- }
+ that[obj.data.id].getViewableRectangle().then(function (rectangle) {
+ return that.map.camera.flyTo({
+ destination: rectangle
+ });
+ });
+ }
+ })
+ }
- }
+ }
- } else {
+ } else {
- if (obj.data.model) {
- Cesium.when(that[obj.data.id], function (layer) {
- that.map.scene.layers.remove(layer[0].name)
- })
+ if (obj.data.model) {
+ Cesium.when(that[obj.data.id], function (layer) {
+ that.map.scene.layers.remove(layer[0].name)
+ })
- } else {
+ } else {
- if (that[obj.data.id]) {
- topic.publish('removeItem', 'Layermanagement', obj.data);
- that[obj.data.id].show = false;
- }
+ if (that[obj.data.id]) {
+ topic.publish('removeItem', 'Layermanagement', obj.data);
+ topic.publish('removeLayersLegends', 'legends', obj.data);
+ that[obj.data.id].show = false;
+ }
- }
+ }
- }
+ }
- }
+ }
- for (var i = 0; i < that.dataAllArray.length; i++) {
+ for (var i = 0; i < that.dataAllArray.length; i++) {
- if (obj.data.id == that.dataAllArray[i].id) {
- that.dataAllArray[i].menuStatus = 1;
- break
- }
+ if (obj.data.id == that.dataAllArray[i].id) {
+ that.dataAllArray[i].menuStatus = 1;
+ break
+ }
- if (that.dataAllArray[i].children && that.dataAllArray[i].children.length > 0) {
+ if (that.dataAllArray[i].children && that.dataAllArray[i].children.length > 0) {
- for (var j = 0; j < that.dataAllArray[i].children.length; j++) {
+ for (var j = 0; j < that.dataAllArray[i].children.length; j++) {
- if (obj.data.id == that.dataAllArray[i].children[j].id) {
- that.dataAllArray[i].children[j].menuStatus = 1;
- break
- }
+ if (obj.data.id == that.dataAllArray[i].children[j].id) {
+ that.dataAllArray[i].children[j].menuStatus = 1;
+ break
+ }
- }
- }
+ }
+ }
- }
- },
- operate: function (obj) {
- var type = obj.type; //得到操作类型: add、edit、 del
- var data = obj.data; //得到当前节点的数据
- var elem = obj.elem; //得到当前节点元素var deptId = data.id;//得到节点索引var parentId = data.parentId;l/父节点
- var depId = data.id;
- var parentId = data.parentId;
+ }
+ },
+ operate: function (obj) {
+ var type = obj.type; //得到操作类型: add、edit、 del
+ var data = obj.data; //得到当前节点的数据
+ var elem = obj.elem; //得到当前节点元素var deptId = data.id;//得到节点索引var parentId = data.parentId;l/父节点
+ var depId = data.id;
+ var parentId = data.parentId;
- }
+ }
- });
+ });
- var jqDom = $("#left-tree-list > .layui-tree > div");
+ var jqDom = $("#left-tree-list > .layui-tree > div");
- for (var i = 0; i < jqDom.length; i++) {
- if ($(jqDom[i]).text().indexOf("三维倾斜数据") != -1) {
- $(jqDom[i]).find('.layui-btn-group').remove()
- }
+ for (var i = 0; i < jqDom.length; i++) {
+ if ($(jqDom[i]).text().indexOf("三维倾斜数据") != -1) {
+ $(jqDom[i]).find('.layui-btn-group').remove()
+ }
- var textList = $(jqDom[i]).find('.layui-tree-txt');
+ var textList = $(jqDom[i]).find('.layui-tree-txt');
- for (var j = 0; j < textList.length; j++) {
- $(textList[j]).attr('title', $(textList[j]).text())
+ for (var j = 0; j < textList.length; j++) {
+ $(textList[j]).attr('title', $(textList[j]).text())
- }
+ }
- }
+ }
- //按钮事件
- util.event('lay-demo', {
- getChecked: function (othis) {
- var checkedData = tree.getChecked('demoId1'); //获取选中节点的数据
+ //按钮事件
+ util.event('lay-demo', {
+ getChecked: function (othis) {
+ var checkedData = tree.getChecked('demoId1'); //获取选中节点的数据
- layer.alert(JSON.stringify(checkedData), {
- shade: 0
- });
- },
- setChecked: function () {
- tree.setChecked('demoId1', [12, 114]); //勾选指定节点
- },
- reload: function () {
- //重载实例
- tree.reload('demoId1', {
+ layer.alert(JSON.stringify(checkedData), {
+ shade: 0
+ });
+ },
+ setChecked: function () {
+ tree.setChecked('demoId1', [12, 114]); //勾选指定节点
+ },
+ reload: function () {
+ //重载实例
+ tree.reload('demoId1', {
- });
+ });
- }
- });
- })
- },
- returnStr: function (url) {
- var startIndex = url.indexOf("/iserver");
- var endIndex = url.indexOf("/scenes");
- return {
- host: url.substring(0, startIndex),
- partOfUrl: url.substring(startIndex, endIndex)
- }
- },
- changeImg: true,
- father: [],
- data: [{
- title: '采集站点',
- id: 1,
- field: '1'
- // , checked: true
- ,
- spread: true,
- children: [{
- title: '南矶山保护区',
- id: 11,
- field: '1-1'
- // , checked: true
- ,
- spread: true,
- children: [{
- title: '北深渊',
- id: 111,
- field: '1-1-1',
- checked: true
- }, {
- title: '东湖',
- id: 112,
- field: '1-1-2',
- checked: true
- }, {
- title: '矶山',
- id: 113,
- field: '1-1-3',
- checked: true
- }, {
- title: '打钟山',
- id: 114,
- field: '1-1-4',
- checked: false
- // , spread: true
- }]
- }, {
- title: '五星白鹤保护区',
- id: 12,
- field: '1-2',
- checked: false,
- spread: false,
- children: [{
- title: '北深渊',
- id: 121,
- field: '1-2-1'
- }, {
- title: '东湖',
- id: 122,
- field: '1-2-2'
- }, {
- title: '矶山',
- id: 123,
- field: '1-2-3'
- }, {
- title: '打钟山',
- id: 124,
- field: '1-2-4'
- }]
- }, {
- title: '都昌候鸟省级自然保护区',
- id: 13,
- field: '1-3',
- checked: false,
- spread: false,
- children: [{
- title: '北深渊',
- id: 131,
- field: '1-3-1'
- }, {
- title: '东湖',
- id: 132,
- field: '1-3-2'
- }, {
- title: '矶山',
- id: 133,
- field: '1-3-3'
- }, {
- title: '打钟山',
- id: 134,
- field: '1-3-4'
- }]
- }, {
- title: '都昌北鄱阳湿地公园',
- id: 14,
- field: '1-4',
- checked: false,
- spread: false,
- children: [{
- title: '北深渊',
- id: 141,
- field: '1-4-1'
- }, {
- title: '东湖',
- id: 142,
- field: '1-4-2'
- }, {
- title: '矶山',
- id: 143,
- field: '1-4-3'
- }, {
- title: '打钟山',
- id: 144,
- field: '1-4-4'
- }]
- }],
- }, {
- title: '检测站点',
- id: 2,
- field: '2',
- checked: true,
- spread: false,
- children: [{
- title: '南矶山保护区',
- id: 21,
- field: '2-1',
- children: [{
- title: '北深渊',
- id: 211,
- field: '2-1-1'
- }, {
- title: '东湖',
- id: 212,
- field: '2-1-2'
- }, {
- title: '矶山',
- id: 213,
- field: '2-1-3'
- }, {
- title: '打钟山',
- id: 214,
- field: '2-1-4'
- }]
- }, {
- title: '五星白鹤保护区',
- id: 22,
- field: '2-2',
- children: [{
- title: '北深渊4',
- id: 221,
- field: '2-2-1'
- }, {
- title: '东湖',
- id: 222,
- field: '2-2-2'
- }, {
- title: '矶山',
- id: 223,
- field: '2-2-3'
- }, {
- title: '打钟山',
- id: 224,
- field: '2-2-4'
- }]
- }, {
- title: '都昌候鸟省级自然保护区',
- id: 23,
- field: '2-3',
- children: [{
- title: '北深渊',
- id: 231,
- field: '2-3-1'
- }, {
- title: '东湖',
- id: 232,
- field: '2-3-2'
- }, {
- title: '矶山',
- id: 233,
- field: '2-3-3'
- }, {
- title: '打钟山',
- id: 234,
- field: '2-3-4'
- }]
- }, {
- title: '都昌北鄱阳湿地公园',
- id: 24,
- field: '2-4',
- children: [{
- title: '北深渊5',
- id: 241,
- field: '2-4-1'
- }, {
- title: '东湖',
- id: 242,
- field: '2-4-2'
- }, {
- title: '矶山',
- id: 243,
- field: '2-4-3'
- }, {
- title: '打钟山',
- id: 244,
- field: '2-4-4'
- }]
- }],
- }, {
- title: '监控站点',
- id: 3,
- field: '3',
- checked: true,
- spread: false,
- children: [{
- title: '南矶山保护区',
- id: 31,
- field: '3-1',
- children: [{
- title: '北深渊2',
- id: 311,
- field: '3-1-1'
- }, {
- title: '东湖',
- id: 312,
- field: '3-1-2'
- }, {
- title: '矶山',
- id: 313,
- field: '3-1-3'
- }, {
- title: '打钟山',
- id: 314,
- field: '3-1-4'
- }]
- }, {
- title: '五星白鹤保护区',
- id: 32,
- field: '3-2',
- children: [{
- title: '北深渊3',
- id: 321,
- field: '3-2-1'
- }, {
- title: '东湖',
- id: 322,
- field: '3-2-2'
- }, {
- title: '矶山',
- id: 323,
- field: '3-2-3'
- }, {
- title: '打钟山',
- id: 324,
- field: '3-2-4'
- }]
- }, {
- title: '都昌候鸟省级自然保护区',
- id: 33,
- field: '3-3',
- children: [{
- title: '北深渊',
- id: 331,
- field: '3-3-1'
- }, {
- title: '东湖',
- id: 332,
- field: '3-3-2'
- }, {
- title: '矶山',
- id: 333,
- field: '3-3-3'
- }, {
- title: '打钟山',
- id: 334,
- field: '3-3-4'
- }]
- }, {
- title: '都昌北鄱阳湿地公园',
- id: 34,
- field: '3-4',
- children: [{
- title: '北深渊1',
- id: 341,
- field: '3-4-1'
- }, {
- title: '东湖',
- id: 342,
- field: '3-4-2'
- }, {
- title: '矶山',
- id: 343,
- field: '3-4-3'
- }, {
- title: '打钟山',
- id: 344,
- field: '3-4-4'
- }]
- }],
- }],
- getUrlKeyId: function (name) {
- var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
- var r = window.location.search.substr(1).match(reg);
- if (r != null) return decodeURI(r[2]);
- return null;
- },
- destroy: function () {
- //销毁的时候触发
- //todo
- //do something before this func
- this.inherited(arguments);
- }
+ }
+ });
+ })
+ },
+ returnStr: function (url) {
+ var startIndex = url.indexOf("/iserver");
+ var endIndex = url.indexOf("/scenes");
+ return {
+ host: url.substring(0, startIndex),
+ partOfUrl: url.substring(startIndex, endIndex)
+ }
+ },
+ changeImg: true,
+ father: [],
+ data: [{
+ title: '采集站点',
+ id: 1,
+ field: '1'
+ // , checked: true
+ ,
+ spread: true,
+ children: [{
+ title: '南矶山保护区',
+ id: 11,
+ field: '1-1'
+ // , checked: true
+ ,
+ spread: true,
+ children: [{
+ title: '北深渊',
+ id: 111,
+ field: '1-1-1',
+ checked: true
+ }, {
+ title: '东湖',
+ id: 112,
+ field: '1-1-2',
+ checked: true
+ }, {
+ title: '矶山',
+ id: 113,
+ field: '1-1-3',
+ checked: true
+ }, {
+ title: '打钟山',
+ id: 114,
+ field: '1-1-4',
+ checked: false
+ // , spread: true
+ }]
+ }, {
+ title: '五星白鹤保护区',
+ id: 12,
+ field: '1-2',
+ checked: false,
+ spread: false,
+ children: [{
+ title: '北深渊',
+ id: 121,
+ field: '1-2-1'
+ }, {
+ title: '东湖',
+ id: 122,
+ field: '1-2-2'
+ }, {
+ title: '矶山',
+ id: 123,
+ field: '1-2-3'
+ }, {
+ title: '打钟山',
+ id: 124,
+ field: '1-2-4'
+ }]
+ }, {
+ title: '都昌候鸟省级自然保护区',
+ id: 13,
+ field: '1-3',
+ checked: false,
+ spread: false,
+ children: [{
+ title: '北深渊',
+ id: 131,
+ field: '1-3-1'
+ }, {
+ title: '东湖',
+ id: 132,
+ field: '1-3-2'
+ }, {
+ title: '矶山',
+ id: 133,
+ field: '1-3-3'
+ }, {
+ title: '打钟山',
+ id: 134,
+ field: '1-3-4'
+ }]
+ }, {
+ title: '都昌北鄱阳湿地公园',
+ id: 14,
+ field: '1-4',
+ checked: false,
+ spread: false,
+ children: [{
+ title: '北深渊',
+ id: 141,
+ field: '1-4-1'
+ }, {
+ title: '东湖',
+ id: 142,
+ field: '1-4-2'
+ }, {
+ title: '矶山',
+ id: 143,
+ field: '1-4-3'
+ }, {
+ title: '打钟山',
+ id: 144,
+ field: '1-4-4'
+ }]
+ }],
+ }, {
+ title: '检测站点',
+ id: 2,
+ field: '2',
+ checked: true,
+ spread: false,
+ children: [{
+ title: '南矶山保护区',
+ id: 21,
+ field: '2-1',
+ children: [{
+ title: '北深渊',
+ id: 211,
+ field: '2-1-1'
+ }, {
+ title: '东湖',
+ id: 212,
+ field: '2-1-2'
+ }, {
+ title: '矶山',
+ id: 213,
+ field: '2-1-3'
+ }, {
+ title: '打钟山',
+ id: 214,
+ field: '2-1-4'
+ }]
+ }, {
+ title: '五星白鹤保护区',
+ id: 22,
+ field: '2-2',
+ children: [{
+ title: '北深渊4',
+ id: 221,
+ field: '2-2-1'
+ }, {
+ title: '东湖',
+ id: 222,
+ field: '2-2-2'
+ }, {
+ title: '矶山',
+ id: 223,
+ field: '2-2-3'
+ }, {
+ title: '打钟山',
+ id: 224,
+ field: '2-2-4'
+ }]
+ }, {
+ title: '都昌候鸟省级自然保护区',
+ id: 23,
+ field: '2-3',
+ children: [{
+ title: '北深渊',
+ id: 231,
+ field: '2-3-1'
+ }, {
+ title: '东湖',
+ id: 232,
+ field: '2-3-2'
+ }, {
+ title: '矶山',
+ id: 233,
+ field: '2-3-3'
+ }, {
+ title: '打钟山',
+ id: 234,
+ field: '2-3-4'
+ }]
+ }, {
+ title: '都昌北鄱阳湿地公园',
+ id: 24,
+ field: '2-4',
+ children: [{
+ title: '北深渊5',
+ id: 241,
+ field: '2-4-1'
+ }, {
+ title: '东湖',
+ id: 242,
+ field: '2-4-2'
+ }, {
+ title: '矶山',
+ id: 243,
+ field: '2-4-3'
+ }, {
+ title: '打钟山',
+ id: 244,
+ field: '2-4-4'
+ }]
+ }],
+ }, {
+ title: '监控站点',
+ id: 3,
+ field: '3',
+ checked: true,
+ spread: false,
+ children: [{
+ title: '南矶山保护区',
+ id: 31,
+ field: '3-1',
+ children: [{
+ title: '北深渊2',
+ id: 311,
+ field: '3-1-1'
+ }, {
+ title: '东湖',
+ id: 312,
+ field: '3-1-2'
+ }, {
+ title: '矶山',
+ id: 313,
+ field: '3-1-3'
+ }, {
+ title: '打钟山',
+ id: 314,
+ field: '3-1-4'
+ }]
+ }, {
+ title: '五星白鹤保护区',
+ id: 32,
+ field: '3-2',
+ children: [{
+ title: '北深渊3',
+ id: 321,
+ field: '3-2-1'
+ }, {
+ title: '东湖',
+ id: 322,
+ field: '3-2-2'
+ }, {
+ title: '矶山',
+ id: 323,
+ field: '3-2-3'
+ }, {
+ title: '打钟山',
+ id: 324,
+ field: '3-2-4'
+ }]
+ }, {
+ title: '都昌候鸟省级自然保护区',
+ id: 33,
+ field: '3-3',
+ children: [{
+ title: '北深渊',
+ id: 331,
+ field: '3-3-1'
+ }, {
+ title: '东湖',
+ id: 332,
+ field: '3-3-2'
+ }, {
+ title: '矶山',
+ id: 333,
+ field: '3-3-3'
+ }, {
+ title: '打钟山',
+ id: 334,
+ field: '3-3-4'
+ }]
+ }, {
+ title: '都昌北鄱阳湿地公园',
+ id: 34,
+ field: '3-4',
+ children: [{
+ title: '北深渊1',
+ id: 341,
+ field: '3-4-1'
+ }, {
+ title: '东湖',
+ id: 342,
+ field: '3-4-2'
+ }, {
+ title: '矶山',
+ id: 343,
+ field: '3-4-3'
+ }, {
+ title: '打钟山',
+ id: 344,
+ field: '3-4-4'
+ }]
+ }],
+ }],
+ getUrlKeyId: function (name) {
+ var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
+ var r = window.location.search.substr(1).match(reg);
+ if (r != null) return decodeURI(r[2]);
+ return null;
+ },
+ destroy: function () {
+ //销毁的时候触发
+ //todo
+ //do something before this func
+ this.inherited(arguments);
+ }
- });
- });
\ No newline at end of file
+ });
+ });
\ No newline at end of file
--
Gitblit v1.9.3