///////////////////////////////////////////////////////////////////////////
|
// 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));
|
|
function createTooltip(frameDiv) {//抄录createTooltip函数
|
|
var tooltip = function (frameDiv) {
|
|
var div = document.createElement('DIV');
|
div.className = "twipsy right";
|
|
var arrow = document.createElement('DIV');
|
arrow.className = "twipsy-arrow";
|
div.appendChild(arrow);
|
|
var title = document.createElement('DIV');
|
title.className = "twipsy-inner";
|
div.appendChild(title);
|
|
this._div = div;
|
this._title = title;
|
this.message = '';
|
|
// add to frame div and display coordinates
|
frameDiv.appendChild(div);
|
var that = this;
|
div.onmousemove = function (evt) {
|
that.showAt({ x: evt.clientX, y: evt.clientY }, that.message);
|
};
|
};
|
|
tooltip.prototype.setVisible = function (visible) {
|
this._div.style.display = visible ? 'block' : 'none';
|
};
|
|
tooltip.prototype.showAt = function (position, message) {
|
if (position && message) {
|
this.setVisible(true);
|
this._title.innerHTML = message;
|
this._div.style.left = position.x + 10 + "px";
|
this._div.style.top = (position.y - this._div.clientHeight / 2) + "px";
|
this.message = message;
|
}
|
};
|
|
return new tooltip(frameDiv);
|
}
|
window.MYcreateTooltip = createTooltip;//全局使用
|
|
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/pdpx.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/pdpx.png'
|
}
|
// , {//方量分析//做好
|
// name: '方量分析',
|
// classs: 'volumeAnalysis-tool',
|
// img: './images/addL/pdpx.png'
|
// }
|
];
|
|
that.beginSpatialAnalysis(domHtmls);
|
var 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: '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-CBDCache20200416/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;
|
})
|
|
},
|
beginSpatialAnalysis: function (domHtmls) {
|
var that = this;
|
var domHtmls = domHtmls;
|
var dom = $('#spatialAnalysis-mains');
|
dom.empty();
|
var str = '<ul>';
|
for (var k in domHtmls) {
|
str += `<li class="${domHtmls[k].classs}">
|
<i class="imgs">
|
<img src="${domHtmls[k].img}" alt="">
|
</i>
|
<span>${domHtmls[k].name}</span>
|
</li>`
|
}
|
str += '</ul>';
|
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');
|
})
|
|
},
|
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');
|
}
|
|
|
|
},
|
onOpen: function () {
|
//面板打开的时候触发 (when open this panel trigger)
|
// var domHtmls = [
|
// {
|
// name: '可视分析',
|
// classs: 'visibleArea-tool'
|
// }, {
|
// name: '剖面分析',
|
// classs: 'profileAnalysis-tool'
|
// }, {
|
// name: '坡度分析',
|
// classs: 'slope-tool'
|
// },
|
// ];
|
// var dom = $('#spatialAnalysis-main');
|
// var str = '';
|
// for (var k in domHtmls) {
|
// str += `<li class="${domHtmls[k].classs}"><i></i> <span>${domHtmls[k].name}</span></li>`
|
// }
|
// dom.replaceWith(str);
|
},
|
|
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);
|
}
|
|
});
|
});
|