///////////////////////////////////////////////////////////////////////////
// Copyright © 2019 zhongsong. All Rights Reserved.
// 模块描述:显示坐标
///////////////////////////////////////////////////////////////////////////
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-spatialAnalysis',
name: 'spatialAnalysis',
layers: {},
startup: function () {
var that = this;
// 暴露在外的接口
topic.subscribe("closeOnceUse", lang.hitch(this, this.closeOnceUse));
var domHtmls = [//默认
{
name: '可视分析',
classs: 'visibleArea-tool',
img: './images/addL/ksy.png'
}, {
name: '剖面分析',
classs: 'profileAnalysis-tool',
img: './images/addL/剖面分析.png'
}
, {//做好静态,
name: '建造实体',
classs: 'modelDiagram-tool',
img: './images/addL/实体.png'
}
// , {//https://blog.csdn.net/supermapsupport/article/details/100134590
// //需要iServer发布成三维服务
// name: '坡度分析',
// classs: 'slope-tool',
// img: './images/addL/pdpx.png'
// }
// , {//SQL查询,//做好
// name: 'SQL查询',
// classs: 'SQLQuery-tool',
// img: './images/addL/pdpx.png'
// }
, {//地形开挖,//做好
name: '地形开挖',
classs: 'digTheEarth-tool',
img: './images/addL/地形开挖.png'
}
, {//方量分析//做好
name: '方量分析',
classs: 'volumeAnalysis-tool',
img: './images/addL/方量分析.png'
},
{//通视分析
name: '通视分析',
classs: 'throughSee-tool',
img: './images/addL/通视分析.png'
},
{//平面裁剪
name: '平面裁剪',
classs: 'clippingPlanes-tool',
img: './images/addL/pingmian.png'
},
{//BOX裁剪
name: 'BOX裁剪',
classs: 'BOXTailoring-tool',
img: './images/addL/BOX裁剪.png'
}
,
{//Cross裁剪
name: 'Cross裁剪',
classs: 'crossTailoring-tool',
img: './images/addL/BOX裁剪.png'
}
];
that.beginSpatialAnalysis(domHtmls);
var isit = false;
$('.ccslius').click(() => {
isit = false;
})
$('.ccsliu').dblclick(() => {//测试开关 点击图例其他的图片
if (isit) {
var domHtmls2 = [
{
name: '可视分析',
classs: 'visibleArea-tool',
img: './images/addL/ksy.png'
}, {
name: '剖面分析',
classs: 'profileAnalysis-tool',
img: './images/addL/剖面分析.png'
}
, {//https://blog.csdn.net/supermapsupport/article/details/100134590
//需要iServer发布成三维服务
name: '坡度分析',
classs: 'slope-tool',
img: './images/addL/pdpx.png'
}
, {//做好静态,
name: '建造实体',
classs: 'modelDiagram-tool',
img: './images/addL/pdpx.png'
}
, {//SQL查询,//做好
name: 'SQL查询',
classs: 'SQLQuery-tool',
img: './images/addL/pdpx.png'
}
, {//地形开挖,//做好
name: '地形开挖',
classs: 'digTheEarth-tool',
img: './images/addL/pdpx.png'
}, {//方量分析//做好
name: '方量分析',
classs: 'volumeAnalysis-tool',
img: './images/addL/pdpx.png'
}
, {//空间查询
name: '空间查询',
classs: 'spatialQuery-tool',
img: './images/addL/pdpx.png'
}
, {//多边形裁剪
name: '多边形裁剪',
classs: 'polygonClipping-tool',
img: './images/addL/pdpx.png'
},
{//通视分析
name: '通视分析',
classs: 'throughSee-tool',
img: './images/addL/pdpx.png'
},
{//平面裁剪
name: '平面裁剪',
classs: 'clippingPlanes-tool',
img: './images/addL/pdpx.png'
},
{//BOX裁剪
name: 'BOX裁剪',
classs: 'BOXTailoring-tool',
img: './images/addL/BOX裁剪.png'
}
,
{//建造模型
name: '建造模型',
classs: 'modesssssllll',
img: './images/addL/pdpx.png'
}
,
{//清除模型
name: '清除模型',
classs: 'modesssss2222',
img: './images/addL/pdpx.png'
}
];
that.beginSpatialAnalysis(domHtmls2);
var promise = false;
$('.modesssssllll').click(() => {
var URL_CONFIG = {
SCENE_CBD: 'http://www.supermapol.com/realspace/services/3D-niaochao/rest/realspace',
}
promise = this.map.scene.open(URL_CONFIG.SCENE_CBD);
})
$('.modesssss2222').click(() => {
if (promise) {
Cesium.when(promise, function (layer) {
for (var i = 0; i < layer.length; i++) {
that.map.scene.layers.remove(layer[i].name)
}
})
}
})
} else {
that.beginSpatialAnalysis(domHtmls);
}
isit = !isit;
})
},
promise: 'NODATA',
beginSpatialAnalysis: function (domHtmls) {
var that = this;
var domHtmls = domHtmls;
var dom = $('#spatialAnalysis-mains');
dom.empty();
var str = '
';
for (var k in domHtmls) {
str += `-
${domHtmls[k].name}
`
}
str += '
';
dom.append(str);
// console.log(dom, str)
// dom.replaceWith(str);
$('.closesspatialAnalysis').click(() => {
that.closeOnceUse();
$('.jimu-widget-spatialAnalysis').hide();
})
// 可视分析
$('.visibleArea-tool').click(function () {
that.closeOnceUse();
$(".jimu-widget-visibleArea").show();
})
// 剖面分析
$('.profileAnalysis-tool').click(function () {
that.closeOnceUse();
$(".jimu-widget-profileAnalysis").show();
})
//坡度分析
$('.slope-tool').click(function () {
that.closeOnceUse();
$(".jimu-widget-slope").show();
topic.publish('getbeginSlope', 'this.beginSlope');
})
//模型
$('.modelDiagram-tool').click(function () {
that.closeOnceUse();
$('.jimu-widget-modelDiagram').show();
})
//sql查询
$('.SQLQuery-tool').click(function () {
that.closeOnceUse();
$(".jimu-widget-SQLQuery").show();
topic.publish('beginSQL', 'this.beginSQL');
})
//地形开挖
$('.digTheEarth-tool').click(function () {
that.closeOnceUse('digTheEarth');
$(".jimu-widget-digTheEarth").show();
// topic.publish('beginDigTheEarth', 'beginDigTheEarth');
})
//方量分析
$('.volumeAnalysis-tool').click(function () {
that.closeOnceUse('volumeAnalysis');
$(".jimu-widget-volumeAnalysis").show();
topic.publish('beginVolumeAnalysis', 'beginVolumeAnalysis');
})
//空间查询
$('.spatialQuery-tool').click(function () {
that.closeOnceUse();
$(".jimu-widget-spatialQuery").show();
topic.publish('beginSpatialQuery', 'beginSpatialQuery');
})
//多边形裁剪
$('.polygonClipping-tool').click(function () {
that.closeOnceUse();
$(".jimu-widget-polygonClipping").show();
topic.publish('beginpolygonClipping', 'beginpolygonClipping');
})
//通视分析
$('.throughSee-tool').click(function () {
that.closeOnceUse();
$(".jimu-widget-throughSee").show();
topic.publish('beginthroughSee', 'beginthroughSee');
})
//平面裁剪
$('.clippingPlanes-tool').click(function () {
that.closeOnceUse();
// console.log(that.promise, 22222222222)
if (that.promise == 'NODATA') {
layer.tips('请选择三维倾斜数据中的图层支持!', '.SelectLayerTool', {
tips: [3, 'red']
});
} else {
$(".jimu-widget-clippingPlanes").show();
topic.publish('beginclippingPlanes', that.promise);
}
})
//BOX裁剪
$('.BOXTailoring-tool').click(function () {
that.closeOnceUse();
if (that.promise == 'NODATA') {
layer.tips('请选择三维倾斜数据中的图层支持!', '.SelectLayerTool', {
tips: [3, 'red']
});
} else {
$(".jimu-widget-BOXTailoring").show();
topic.publish('beginBOXTailoring', that.promise);
}
})
//Cross裁剪
$('.crossTailoring-tool').click(function () {
that.closeOnceUse();
if (that.promise == 'NODATA') {
layer.tips('请选择三维倾斜数据中的图层支持!', '.SelectLayerTool', {
tips: [3, 'red']
});
} else {
$(".jimu-widget-crossTailoring").show();
topic.publish('begincrossTailoring', that.promise);
}
})
$('.SelectLayerTool').click(() => {
$('#SelectLayerToolItem').toggle();
})
//参照Layemanagement
topic.subscribe("appendItemS", lang.hitch(this, this.appendItemS));
topic.subscribe("removeItemS", lang.hitch(this, this.removeItemS));
topic.subscribe("appendTiltS", lang.hitch(this, this.appendTiltS));
topic.subscribe("removeTiltS", lang.hitch(this, this.removeTiltS));
this.liClick('默认:天地图影像', '默认:天地图影像');
},
morenliClick: function (itemid, name) {
var dom = $('.SelectLayerTool');
dom.empty();
var str = `${name} `
dom.append(str);
// console.log('数据错误默认')
this.promise = 'NODATA';
this.SelectClose();//关闭需要三维数据的窗口
},
SelectClose: function () {
//关闭平面裁剪
if ($(".jimu-widget-clippingPlanes").is(":visible")) {//判断是否隐藏
$(".jimu-widget-clippingPlanes").hide();
topic.publish('closesclippingPlanes');
}
//关闭BOX裁剪
if ($(".jimu-widget-BOXTailoring").is(":visible")) {//判断是否隐藏
$(".jimu-widget-BOXTailoring").hide();
topic.publish('closesBOXTailoring');
}
//关闭Cross裁剪
if ($(".jimu-widget-crossTailoring").is(":visible")) {//判断是否隐藏
$(".jimu-widget-crossTailoring").hide();
topic.publish('closescrossTailoring');
}
},
liClick: function (itemid, name, ourdata = 1) {//点击事件
var that = this;
var liList = $(`[itemid='${itemid}s']`);
// console.log(liList);
liList.click(() => {
// console.log(itemid)
var dom = $('.SelectLayerTool');
layer.tips('选择了:' + name, dom, { tips: [1, '#5FB878'] });
dom.empty();
var str = `${name} `
dom.append(str);
dom.attr("title", name);
$('#SelectLayerToolItem').hide();
// console.log(ourdata);
// 定位
// console.log(name)
if (ourdata != 1) {
// console.log('data')
if (ourdata.lon) {
//设置相机位置、视角,便于观察场景
that.map.scene.camera.setView({
destination: new Cesium.Cartesian3.fromDegrees(Number(ourdata.lon), Number(ourdata.lat), Number(ourdata.height)),
orientation: {
heading: Cesium.Math.toRadians(Number(ourdata.yawAngle)),
pitch: Cesium.Math.toRadians(Number(ourdata.pitchAngle)),
roll: Cesium.Math.toRadians(Number(ourdata.rollAngle))
}
});
// console.log(ourdata.lon)
// console.log(ourdata.lat)
// console.log(ourdata.height)
// console.log(ourdata.yawAngle)
// console.log(ourdata.pitchAngle)
// console.log(ourdata.rollAngle)
//115.996858
//29.170348
//232.99
//84.10
//-22.98
//360.00
}
if (ourdata.src.indexOf('.openrealspace') != -1) {
// console.log('数据正确');
this.SelectClose();//关闭需要三维数据的窗口
that.promise = {
src: ourdata.src,
ZName: ourdata.title,
name: ourdata.serviceName,
id: ourdata.id
};
} else {
// console.log('数据错误');
that.promise = 'NODATA';
this.SelectClose();//关闭需要三维数据的窗口
}
} else {
// console.log('数据错误没有data');
that.promise = 'NODATA';
//关闭平面裁剪
this.SelectClose();//关闭需要三维数据的窗口
}
})
},
appendItemS: function (item, obj, layer) {
// console.log('a1')
var that = this;
if (item == this.name) {
// $("#SelectLayerToolItemTitle .no-data").stop().hide();
var flag = true;
var liList = $("#SelectLayerToolItemTitle li");
// console.log(liList)
// console.log($('#SelectLayerToolItemTitle'))
for (var i = 0; i < liList.length; i++) {
if ($(liList[i]).attr('itemid') && $(liList[i]).attr('itemid') == obj.id + 's') {
flag = false
}
}
if (flag == true) {
var liItem = $(" " +
"" +
obj.title +
"" +
"
");
that[obj.id] = layer;
$("#SelectLayerToolItemTitle").append(liItem);
}
that.liClick(obj.id, obj.title, obj);
}
},
removeItemS: function (item, obj) {
// console.log(obj, 'r1')
var that = this;
if (item == this.name) {
var liList = $("#SelectLayerToolItemTitle li");
for (var i = 0; i < liList.length; i++) {
if ($(liList[i]).attr('itemid') && $(liList[i]).attr('itemid') == obj.id + 's') {
$(liList[i]).remove();
var dom = $('.SelectLayerTool').attr("title");
// console.log(dom == obj.title, this.liClick)
if (dom == obj.title) {
that.morenliClick('默认:天地图影像', '默认:天地图影像');
that.promise = 'NODATA';
}
}
}
if ($("#SelectLayerToolItemTitle li").length == 1 && $("#SelectLayerToolItemTitle li").length == 0) {
$("#SelectLayerToolItemTitle .no-data").stop().show();
$(".jimu-widget-spatialAnalysis .tree-layer-opcity").stop().hide();
}
}
// this.liClick();
},
appendTiltS: function (item, obj, layer) {
// console.log('a2')
var that = this;
if (item == this.name) {
// $("#SelectLayerToolItemTitle .no-data").stop().hide();
var flag = true;
var liList = $("#SelectLayerToolItemTitle li");
for (var i = 0; i < liList.length; i++) {
if ($(liList[i]).attr('itemid') && $(liList[i]).attr('itemid') == obj.id + 's') {
flag = false
}
}
if (flag == true) {
var liItem = $(" " +
"" +
obj.title +
"" +
"
");
$("#SelectLayerToolItemTitle").append(liItem);
}
that.liClick(obj.id, obj.title, obj);
}
},
removeTiltS: function (item, obj) {
// console.log(obj, 'r2')
// console.log('r2')
var that = this;
if (item == this.name) {
var liList = $("#SelectLayerToolItemTitle li");
for (var i = 0; i < liList.length; i++) {
if ($(liList[i]).attr('itemid') && $(liList[i]).attr('itemid') == obj.id + 's') {
$(liList[i]).remove();
var dom = $('.SelectLayerTool').attr("title");
if (dom == obj.title) {
that.morenliClick('默认:天地图影像', '默认:天地图影像');
that.promise = 'NODATA';
}
}
}
if ($("#SelectLayerToolItemTitle li").length == 1 && $("#SelectLayerToolItemTitle li").length == 0) {
// $("#SelectLayerToolItemTitle .no-data").stop().show();
// $(".jimu-widget-spatialAnalysis .tree-layer-opcity").stop().hide();
}
}
},
closeToolBox: function (item) {
if (item != this.name) {
$('.tool-y-box').hide();
}
},
closeOnceUse: function (who) {
var that = this;
that.map.scene.globe.depthTestAgainstTerrain = true;
// 关闭量算
topic.publish('closeMeasurement', 'Measurement');
// 关闭卷帘
topic.publish('closeRolling', 'Rolling');
// 关闭分屏
topic.publish('closeSplitScreen', 'SplitScreen');
// 关闭标记
topic.publish('closeSign', 'Sign');
topic.publish('closeFlyRoute', 'FlyRoute');
$('.jimu-widget-CoorPosition').hide();
$('.jimu-widget-MapPrinting').hide();
// 关闭可视
topic.publish('closev', '');
// 关闭剖面
topic.publish('closep', '');
// 关闭坡度
topic.publish('closes', '');
$(".jimu-widget-visibleArea").hide();
$(".jimu-widget-profileAnalysis").hide();
$(".jimu-widget-slope").hide();
$('.tool-y-box').stop().hide();
//关闭飞行
$('.jimu-widget-visualAngle').find('.v-a-Two').removeClass('on');//清楚样式
topic.publish('closeFly', 'closeFly');
//清除实体
this.map.entities.removeAll();
$(".jimu-widget-modelDiagram").hide();
//清除SQL查询
$(".jimu-widget-SQLQuery").hide();
topic.publish('closesSQL', 'closesSQL');
//关闭地形开挖
if ($(".jimu-widget-digTheEarth").is(":visible")) {//判断是否隐藏
$(".jimu-widget-digTheEarth").hide();
topic.publish('closesDigTheEarth');
}
//关闭方量贩分析
if ($(".jimu-widget-volumeAnalysis").is(":visible")) {//判断是否隐藏
$(".jimu-widget-volumeAnalysis").hide();
topic.publish('closesVolumeAnalysis');
}
//关闭空间查询
if ($(".jimu-widget-spatialQuery").is(":visible")) {//判断是否隐藏
$(".jimu-widget-spatialQuery").hide();
topic.publish('closesSpatialQuery');
}
//关闭多边形裁剪
if ($(".jimu-widget-polygonClipping").is(":visible")) {//判断是否隐藏
$(".jimu-widget-polygonClipping").hide();
topic.publish('closespolygonClipping');
}
//关闭通视分析
if ($(".jimu-widget-throughSee").is(":visible")) {//判断是否隐藏
$(".jimu-widget-throughSee").hide();
topic.publish('closesthroughSee');
}
//关闭平面裁剪
if ($(".jimu-widget-clippingPlanes").is(":visible")) {//判断是否隐藏
$(".jimu-widget-clippingPlanes").hide();
topic.publish('closesclippingPlanes');
}
//关闭BOX裁剪
if ($(".jimu-widget-BOXTailoring").is(":visible")) {//判断是否隐藏
$(".jimu-widget-BOXTailoring").hide();
topic.publish('closesBOXTailoring');
}
//关闭Cross裁剪
if ($(".jimu-widget-crossTailoring").is(":visible")) {//判断是否隐藏
$(".jimu-widget-crossTailoring").hide();
topic.publish('closescrossTailoring');
}
},
onOpen: function () {
},
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);
}
});
});