From f26fde54fdc51424030eed8e9a0fc4c6529f1ac2 Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Fri, 25 Jun 2021 08:44:18 +0800
Subject: [PATCH] 空间分析
---
config.json | 8
widgets/polygonClipping/nls/strings.js | 7
widgets/searchL/Cesiumadd.js | 162 +++++++
widgets/throughSee/Widget.html | 10
widgets/polygonClipping/nls/es/strings.js | 5
widgets/polygonClipping/nls/zh-cn/strings.js | 5
widgets/throughSee/manifest.json | 17
widgets/polygonClipping/Widget.html | 45 ++
widgets/polygonClipping/css/style.css | 42 +
widgets/slope/Widget.js | 46 --
widgets/throughSee/css/style.css | 45 ++
widgets/volumeAnalysis/Widget.js | 3
widgets/LeftNavigationBar/Widget.js | 55 +-
widgets/spatialAnalysis/css/style.css | 2
widgets/digTheEarth/Widget.js | 15
widgets/polygonClipping/manifest.json | 17
widgets/spatialAnalysis/Widget.js | 160 +++---
widgets/throughSee/nls/strings.js | 7
widgets/throughSee/nls/zh-cn/strings.js | 5
widgets/searchL/Widget.js | 60 --
widgets/polygonClipping/Widget.js | 253 +++++++++++
widgets/throughSee/Widget.js | 330 +++++++++++++++
widgets/profileAnalysis/Widget.js | 4
widgets/throughSee/nls/es/strings.js | 5
24 files changed, 1,094 insertions(+), 214 deletions(-)
diff --git a/config.json b/config.json
index ed28577..a3095ac 100644
--- a/config.json
+++ b/config.json
@@ -264,6 +264,14 @@
{
"name": "空间查询",
"uri": "widgets/spatialQuery/Widget"
+ },
+ {
+ "name": "多边形裁剪",
+ "uri": "widgets/polygonClipping/Widget"
+ },
+ {
+ "name": "通视分析",
+ "uri": "widgets/throughSee/Widget"
}
],
"groups": [],
diff --git a/widgets/LeftNavigationBar/Widget.js b/widgets/LeftNavigationBar/Widget.js
index 7494f73..7f15f4f 100644
--- a/widgets/LeftNavigationBar/Widget.js
+++ b/widgets/LeftNavigationBar/Widget.js
@@ -3,16 +3,16 @@
// 模块描述:显示坐标
///////////////////////////////////////////////////////////////////////////
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'
- ],
+ '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,
@@ -102,13 +102,13 @@
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'
- })
- },
+ 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') {
@@ -159,7 +159,7 @@
}
},
- closeToolBox: function (item) {},
+ closeToolBox: function (item) { },
onOpen: function () {
//面板打开的时候触发 (when open this panel trigger)
@@ -343,7 +343,7 @@
tree.render({
elem: '#left-tree-list' //默认是点击节点可进行收缩
- ,
+ ,
data: data,
id: 'demoId1',
showCheckbox: true, //是否显示复选框
@@ -388,6 +388,7 @@
that[item.id] = scene.open(host + partOfUrl, undefined, {
autoSetView: false //不自动定位
});
+ console.log(222)
topic.publish('appendTilt', 'Layermanagement', item);
topic.publish('appendTiltS', 'spatialAnalysis', item);
topic.publish('addLayersLegends', 'legends', item);
@@ -431,6 +432,7 @@
destination: rectangle
});
});
+ console.log(444)
topic.publish('appendItem', 'Layermanagement', item, that[item.id]);
topic.publish('appendItemS', 'spatialAnalysis', item, that[item.id]);
topic.publish('addLayersLegends', 'legends', item);
@@ -441,7 +443,7 @@
dataType: 'JSON',
success: function (res) {
-
+ // console.log(111)
that[item.id] = that.map.imageryLayers.addImageryProvider(new Cesium.SuperMapImageryProvider({
url: res[0].path,
}));
@@ -461,9 +463,6 @@
}
-
-
-
} else {
@@ -514,6 +513,7 @@
that[obj.data.id] = scene.open(host + partOfUrl, undefined, {
autoSetView: false //不自动定位
});
+ console.log(333)
topic.publish('appendTilt', 'Layermanagement', obj.data);
topic.publish('appendTiltS', 'spatialAnalysis', obj.data);
topic.publish('addLayersLegends', 'legends', obj.data);
@@ -552,6 +552,7 @@
destination: rectangle
});
});
+ console.log(555)
topic.publish('appendItem', 'Layermanagement', obj.data, that[obj.data.id]);
topic.publish('appendItemS', 'spatialAnalysis', obj.data, that[obj.data.id]);
topic.publish('addLayersLegends', 'legends', obj.data);
@@ -703,15 +704,15 @@
title: '采集站点',
id: 1,
field: '1'
- // , checked: true
- ,
+ // , checked: true
+ ,
spread: true,
children: [{
title: '南矶山保护区',
id: 11,
field: '1-1'
- // , checked: true
- ,
+ // , checked: true
+ ,
spread: true,
children: [{
title: '北深渊',
diff --git a/widgets/digTheEarth/Widget.js b/widgets/digTheEarth/Widget.js
index ad787cd..9c56eda 100644
--- a/widgets/digTheEarth/Widget.js
+++ b/widgets/digTheEarth/Widget.js
@@ -27,8 +27,8 @@
that.closesDigTheEarth();
})
- $("#beginigTheEarth").click(()=>{
- that.beginDigTheEarth();
+ $("#beginigTheEarth").click(() => {
+ that.beginDigTheEarth();
})
},
@@ -52,8 +52,9 @@
// roll: 6.2831853016686185
// }
// });
-
+
var tooltip = window.MYcreateTooltip(viewer._element);
+ // console.log(viewer._element, 534)
//绘制多边形
var handlerPolygon = new Cesium.DrawHandler(viewer, Cesium.DrawMode.Polygon, 0);
handlerPolygon.activeEvt.addEventListener(function (isActive) {
@@ -68,6 +69,9 @@
}
});
handlerPolygon.movingEvt.addEventListener(function (windowPosition) {
+ // console.log(windowPosition,534)
+ // console.log(handlerPolygon.isDrawing,555)
+ // console.log(viewer._element, 534)
if (windowPosition.x < 200 && windowPosition.y < 150) {
tooltip.setVisible(false);
return;
@@ -126,6 +130,7 @@
// }
// handlerPolygon.polygon.show = false;
// handlerPolygon.polyline.show = false;
+
that.closesDigTheEarth();
};
@@ -135,8 +140,10 @@
$('#toolbardigTheEarth').show();
$('#loadingbar').remove();
that.handlerPolygon = handlerPolygon;
+ that.tooltip = tooltip;
},
handlerPolygon: '',
+ tooltip: '',
closesDigTheEarth: function () {
// console.log('gaunbi');
var that = this;
@@ -148,7 +155,7 @@
that.handlerPolygon.polyline.show = false;
}
that.handlerPolygon.deactivate();
-
+ that.tooltip.setVisible(false);
},
onOpen: function () {
diff --git a/widgets/polygonClipping/Widget.html b/widgets/polygonClipping/Widget.html
new file mode 100644
index 0000000..525cebe
--- /dev/null
+++ b/widgets/polygonClipping/Widget.html
@@ -0,0 +1,45 @@
+<div>
+ <div id='loadingbar' class="spinner">
+ <div class="spinner-container container1">
+ <div class="circle1"></div>
+ <div class="circle2"></div>
+ <div class="circle3"></div>
+ <div class="circle4"></div>
+ </div>
+ <div class="spinner-container container2">
+ <div class="circle1"></div>
+ <div class="circle2"></div>
+ <div class="circle3"></div>
+ <div class="circle4"></div>
+ </div>
+ <div class="spinner-container container3">
+ <div class="circle1"></div>
+ <div class="circle2"></div>
+ <div class="circle3"></div>
+ <div class="circle4"></div>
+ </div>
+ </div>
+ <div id="toolbarpolygonClipping" class="param-container tool-bar">
+ <table>
+ <tr>
+ <td>
+ <button type="button" id="polygon" class="button black">绘制裁剪面</button>
+ </td>
+ <td>
+ <button type="button" id="clear" class="button black">清除</button>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <select id="clip-modepolygonClipping" class="cesium-button">
+ <option value="clip-outside">开挖外部</option>
+ <option value="clip-inside">开挖内部</option>
+ </select>
+ </td>
+ </tr>
+ </table>
+ </div>
+ <i class="layui-icon closeOUR">
+ ဆ
+ </i></span>
+</div>
\ No newline at end of file
diff --git a/widgets/polygonClipping/Widget.js b/widgets/polygonClipping/Widget.js
new file mode 100644
index 0000000..9c56982
--- /dev/null
+++ b/widgets/polygonClipping/Widget.js
@@ -0,0 +1,253 @@
+define([
+ 'dojo/_base/declare',
+ 'dojo/_base/lang',
+ 'dojo/_base/array',
+ 'dojo/_base/html',
+ 'dojo/topic',
+ 'jimu/BaseWidget',
+],
+ function (declare,
+ lang,
+ array,
+ html,
+ topic,
+ BaseWidget
+ ) {
+ return declare([BaseWidget], {
+ baseClass: 'jimu-widget-polygonClipping',
+ name: 'polygonClipping',
+ flag: false,
+ startup: function () {
+ var that = this;
+ topic.subscribe("beginpolygonClipping", lang.hitch(this, this.beginpolygonClipping));
+ topic.subscribe("closespolygonClipping", lang.hitch(this, this.closespolygonClipping));
+ // topic.publish('getbeginSlope', that.beginSlope);
+ $(`.${that.baseClass}`).find('.closeOUR').click(() => {
+ $(`.${that.baseClass}`).hide();
+ that.closespolygonClipping();
+ })
+
+
+ // that.beginpolygonClipping();
+
+ },
+ beginpolygonClipping: function () {
+ console.log(`${this.name}--kaishi`);
+ var that = this;
+
+
+
+ // 初始化viewer部件
+ var viewer = this.map;
+ // viewer.imageryLayers.addImageryProvider(new Cesium.BingMapsImageryProvider({
+ // url: 'https://dev.virtualearth.net',
+ // mapStyle: Cesium.BingMapsStyle.AERIAL,
+ // key: window.MYURL_CONFIG.BING_MAP_KEY
+ // }));
+ var scene = viewer.scene;
+ var positions = [], regions = [], geometry = null, clipMode = Cesium.ModifyRegionMode.CLIP_OUTSIDE;
+ console.log(Cesium.SpatialQuery3D);
+ var spatialQuery = new Cesium.SpatialQuery3D(scene);
+ // try {
+ //场景添加S3M图层服务
+ var promise = scene.open('http://www.supermapol.com/realspace/services/3D-BIMbuilding/rest/realspace');
+ Cesium.when(promise, function (layers) {
+ // 精准定位
+ scene.camera.setView({
+ destination: new Cesium.Cartesian3(-2180753.065987198, 4379023.266141494, 4092583.575045952),
+ orientation: {
+ heading: 4.0392222751147955,
+ pitch: 0.010279641987852584,
+ roll: 1.240962888005015e-11
+ }
+ });
+
+ if (!scene.pickPositionSupported) {
+ alert('不支持深度纹理,无法拾取位置!');
+ }
+ for (var layer of layers) {
+ layer.selectEnabled = false;
+ // 设置被裁剪对象的颜色
+ layer.clipLineColor = new Cesium.Color(1, 1, 1, 0);
+ }
+
+ var tooltip = createTooltip(document.body);
+ var handlerPolygon = new Cesium.DrawHandler(viewer, Cesium.DrawMode.Polygon, 0);
+ handlerPolygon.activeEvt.addEventListener(function (isActive) {
+ if (isActive == true) {
+ viewer.enableCursorStyle = false;
+ viewer._element.style.cursor = '';
+ $('body').removeClass('drawCur').addClass('drawCur');
+ } else {
+ viewer.enableCursorStyle = true;
+ $('body').removeClass('drawCur');
+ }
+ });
+ handlerPolygon.movingEvt.addEventListener(function (windowPosition) {
+ if (handlerPolygon.isDrawing) {
+ tooltip.showAt(windowPosition, '<p>点击确定多边形顶点</p><p>右键单击结束绘制</p>');
+ } else {
+ tooltip.showAt(windowPosition, '<p>点击绘制第一个点</p>');
+ }
+ });
+ handlerPolygon.drawEvt.addEventListener(function (result) {
+ tooltip.setVisible(false);
+ handlerPolygon.polygon.show = false;
+ handlerPolygon.polyline.show = false;
+ if (clipMode === Cesium.ModifyRegionMode.CLIP_OUTSIDE) {
+ positions = [];
+ for (var pt of result.object.positions) {
+ var cartographic = Cesium.Cartographic.fromCartesian(pt);
+ var longitude = Cesium.Math.toDegrees(cartographic.longitude);
+ var latitude = Cesium.Math.toDegrees(cartographic.latitude);
+ var height = cartographic.height;
+ positions.push(longitude, latitude, height);
+ }
+ regions = [];
+ regions.push(positions);
+ geometry = regions;
+ for (var layer of layers) {
+ layer.setModifyRegions(regions, clipMode);
+ }
+ } else {
+ for (var layer of layers) {
+ var array = [].concat(result.object.positions);
+ var point3ds = new Cesium.Point3Ds();
+ regions = [];
+ for (var i = 0, len = array.length; i < len; i++) {
+ var cartographic = Cesium.Cartographic.fromCartesian(array[i]);
+ var longitude = Cesium.Math.toDegrees(cartographic.longitude);
+ var latitude = Cesium.Math.toDegrees(cartographic.latitude);
+ var h = cartographic.height;
+ var pnt = new Cesium.Point3D(longitude, latitude, h);
+ point3ds.add(pnt);
+ }
+ regions.push(point3ds);
+ geometry = null;
+ geometry = new Cesium.GeoRegion3D(regions);
+ geometry.extrudedHeight = -100;
+ geometry.isLatLon = false;
+ spatialQuery.build();
+ layer.setCustomClipGeometry({
+ geometry: geometry,
+ clippingType: Cesium.ClippingType.KeepOutside,
+ spatialQuery: spatialQuery
+ });
+ }
+ }
+ });
+
+ $('#polygon').click(function () {
+ handlerPolygon.activate();
+ });
+
+ $('#clear').click(function () {
+ handlerPolygon.clear();
+ // 清除裁剪结果
+ if (clipMode === Cesium.ModifyRegionMode.CLIP_OUTSIDE) {
+ for (var layer of layers) {
+ layer.clearModifyRegions();
+ }
+ } else {
+ for (var layer of layers) {
+ layer.clearCustomClipGeometry();
+ }
+ geometry = null;
+ }
+ positions = [];
+ regions = [];
+ });
+
+ $('#clip-modepolygonClipping').on('propertychange input', function () {
+ clipMode = $(this).val() === 'clip-inside' ? Cesium.ModifyRegionMode.CLIP_INSIDE : Cesium.ModifyRegionMode.CLIP_OUTSIDE;
+ if (clipMode === Cesium.ModifyRegionMode.CLIP_OUTSIDE) {
+ for (var layer of layers) {
+ layer.clearModifyRegions();
+ }
+ } else {
+ for (var layer of layers) {
+ layer.clearCustomClipGeometry();
+ }
+ }
+ geometry = null;
+ positions = [];
+ regions = [];
+ });
+
+ $('#clip-modepolygonClipping').on('propertychange input', function () {
+ clipMode = $(this).val() === 'clip-inside' ? Cesium.ModifyRegionMode.CLIP_INSIDE : Cesium.ModifyRegionMode.CLIP_OUTSIDE;
+ if (clipMode === Cesium.ModifyRegionMode.CLIP_INSIDE) {
+ for (var layer of layers) {
+ if (geometry !== null) {
+ layer.setCustomClipGeometry({
+ geometry: geometry,
+ clippingType: Cesium.ClippingType.KeepInside,
+ spatialQuery: spatialQuery
+ });
+ geometry = null;
+ } else {
+ alert("请点击绘制裁剪面");
+ }
+ }
+ } else {
+ if (geometry !== null) {
+ for (var layer of layers) {
+ layer.setModifyRegions(regions, clipMode);
+ }
+ geometry = null;
+ } else {
+ alert("请点击绘制裁剪面");
+ }
+ }
+ });
+
+ $('#toolbarpolygonClipping').show();
+ $('#loadingbar').remove();
+ }, function (e) {
+ if (widget._showRenderLoopErrors) {
+ var title = '加载SCP失败,请检查网络连接状态或者url地址是否正确?';
+ widget.showErrorPanel(title, undefined, e);
+ }
+ });
+ // }
+ // catch (e) {
+ // if (widget._showRenderLoopErrors) {
+ // var title = '渲染时发生错误,已停止渲染。';
+ // widget.showErrorPanel(title, undefined, e);
+ // }
+ // }
+
+ },
+ closespolygonClipping: function (froms) {
+ console.log(`${this.name}--guanbi`);
+ },
+ onOpen: function () {
+
+ },
+
+ onClose: function () {
+ //面板关闭的时候触发 (when this panel is closed trigger)
+ console.log('jies')
+ },
+
+ onMinimize: function () {
+ this.resize();
+ },
+
+ onMaximize: function () {
+ this.resize();
+ },
+
+ resize: function () {
+
+ },
+
+ destroy: function () {
+ //销毁的时候触发
+ //todo
+ //do something before this func
+ this.inherited(arguments);
+ }
+
+ });
+ });
diff --git a/widgets/polygonClipping/css/style.css b/widgets/polygonClipping/css/style.css
new file mode 100644
index 0000000..b5b3b4c
--- /dev/null
+++ b/widgets/polygonClipping/css/style.css
@@ -0,0 +1,42 @@
+.jimu-widget-polygonClipping {
+ position: fixed !important;
+ top: 72px !important;
+ right: 388px !important;
+ width: 200px !important;
+ height: 40px !important;
+ background-color: rgb(255, 255, 255);
+ font-size: 14px;
+ color: rgb(0, 0, 0);
+ z-index: 12 !important;
+ border-radius: 10px;
+ display: none;
+ box-shadow: 0 0 8px #fff;
+ padding: 0px 5px !important;
+}
+
+.jimu-widget-polygonClipping .closeOUR {
+ position: absolute;
+ right: 5px;
+ top: 5px;
+ font-size: 18px;
+ cursor: pointer;
+}
+
+.jimu-widget-polygonClipping .closeOUR:hover {
+ color: red;
+}
+
+/* .jimu-widget-polygonClipping .but {
+ line-height: 30px;
+ width: 80px;
+ height: 30px;
+ font-size: 16px;
+ border-radius: 5px;
+ box-shadow: 2px 2px 15px -5px #378ef1;
+ border: 1px solid transparent;
+ background-color: #fff;
+}
+
+.jimu-widget-polygonClipping .but:hover {
+ box-shadow: 2px 2px 25px -5px #1679eb;
+} */
\ No newline at end of file
diff --git a/widgets/polygonClipping/manifest.json b/widgets/polygonClipping/manifest.json
new file mode 100644
index 0000000..1913976
--- /dev/null
+++ b/widgets/polygonClipping/manifest.json
@@ -0,0 +1,17 @@
+{
+ "name": "polygonClipping",
+ "2D": true,
+ "3D": true,
+ "platform": "HTML",
+ "version": "2.10",
+ "wabVersion": "2.10",
+ "author": "liuyg",
+ "description": "",
+ "copyright": "",
+ "license": "",
+ "properties": {
+ "hasConfig": false,
+ "inPanel": false,
+ "hasVersionManager": false
+ }
+}
\ No newline at end of file
diff --git a/widgets/polygonClipping/nls/es/strings.js b/widgets/polygonClipping/nls/es/strings.js
new file mode 100644
index 0000000..df53f25
--- /dev/null
+++ b/widgets/polygonClipping/nls/es/strings.js
@@ -0,0 +1,5 @@
+define(
+ ({
+ _widgetLabel: "polygonClipping"
+ })
+);
\ No newline at end of file
diff --git a/widgets/polygonClipping/nls/strings.js b/widgets/polygonClipping/nls/strings.js
new file mode 100644
index 0000000..2d01d74
--- /dev/null
+++ b/widgets/polygonClipping/nls/strings.js
@@ -0,0 +1,7 @@
+define({
+ root: ({
+ _widgetLabel: "polygonClipping"
+ }),
+ "es": 1,
+ "zh-cn": 1
+});
\ No newline at end of file
diff --git a/widgets/polygonClipping/nls/zh-cn/strings.js b/widgets/polygonClipping/nls/zh-cn/strings.js
new file mode 100644
index 0000000..21e152c
--- /dev/null
+++ b/widgets/polygonClipping/nls/zh-cn/strings.js
@@ -0,0 +1,5 @@
+define(
+ ({
+ _widgetLabel: "多边形裁剪"
+ })
+);
\ No newline at end of file
diff --git a/widgets/profileAnalysis/Widget.js b/widgets/profileAnalysis/Widget.js
index 378ff2d..ea4ab10 100644
--- a/widgets/profileAnalysis/Widget.js
+++ b/widgets/profileAnalysis/Widget.js
@@ -149,7 +149,6 @@
}
//创建剖面分析对象
var profile = new Cesium.Profile(scene);
-
function createTooltip(frameDiv) {//抄录createTooltip函数
var tooltip = function (frameDiv) {
@@ -190,14 +189,13 @@
this.message = message;
}
};
-
return new tooltip(frameDiv);
}
var tooltip = createTooltip(document.body);
var widget = viewer.cesiumWidget;
try {
- //添加S3M图层 // 舍弃
+ //添加S3M图层 // 舍弃
// var ground1Promise = scene.addS3MTilesLayerByScp(URL_CONFIG.SCP_CBD_GROUND1, {
// name: 'ground1'
diff --git a/widgets/searchL/Cesiumadd.js b/widgets/searchL/Cesiumadd.js
new file mode 100644
index 0000000..1053307
--- /dev/null
+++ b/widgets/searchL/Cesiumadd.js
@@ -0,0 +1,162 @@
+define([], function () {
+ function createTooltip(frameDiv) {//抄录createTooltip函数
+ var oldDiv = document.getElementsByClassName('mytwipsy');
+ // console.log(oldDiv)
+ if (oldDiv.length != 0) {
+ oldDiv[0].remove();
+ }
+ var tooltip = function (frameDiv) {
+ var div = document.createElement('DIV');
+ div.className = "mytwipsy myright";
+ div.style.position = 'absolute';
+ div.style.backgroundColor = '#fff';
+ div.style.borderRadius = '5px';
+ div.style.boxShadow = '2px 2px 15px -5px #39A5FD';
+ div.style.padding = '2px 5px 2px 5px';
+ div.style.fontSize = '14px';
+
+ 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 + 40 + "px";
+ this._div.style.top = (position.y - this._div.clientHeight / 2) + "px";
+ this.message = message;
+ }
+ };
+
+ return new tooltip(frameDiv);
+ }
+ window.MYcreateTooltip = createTooltip;//全局使用
+
+ var URL_CONFIG = {
+ BINGMAP: "//dev.virtualearth.net"
+ , BING_MAP_KEY: "AkOyUpgDCoz063AWW1WfHnxp5222UBdxLOp1XvRv0tuebQnr2S7UcZkiLgME7gX0"
+ , SCENE_BIMBUILDING: "http://www.supermapol.com/realspace/services/3D-BIMbuilding/rest/realspace"
+ , SCENE_CBD: "http://www.supermapol.com/realspace/services/3D-CBDCache20200416/rest/realspace"
+ , SCENE_CHONGQING_TX: "http://www.supermapol.com/realspace/services/3D-CQmodel_wireframe_2000/rest/realspace"
+ , SCENE_CLIP: "http://www.supermapol.com/realspace/services/3D-clip_fengbian/rest/realspace"
+ , SCENE_FEATUREVALUE: "http://www.supermapol.com/realspace/services/3D-featureValue_building9/rest/realspace/datas/%E4%B9%9D%E5%8F%B7@%E4%B9%9D%E5%8F%B7%E6%A5%BC/config"
+ , SCENE_GTC_BUILDIBG: "http://www.supermapol.com/realspace/services/3D-data_all/rest/realspace/datas/building_udb@building/config"
+ , SCENE_GTC_FLOOR9: "http://www.supermapol.com/realspace/services/3D-data_all/rest/realspace/datas/%E6%8B%89%E4%BD%8E%E6%A5%BC%E5%B1%82@%E4%B9%9D%E5%8F%B7%E6%A5%BC/config"
+ , SCENE_GTC_GROUND: "http://www.supermapol.com/realspace/services/3D-data_all/rest/realspace/datas/%E5%9C%B0%E9%9D%A2/config"
+ , SCENE_GTC_HILL: "http://www.supermapol.com/realspace/services/3D-data_all/rest/realspace/datas/%E5%B1%B1/config"
+ , SCENE_GTC_LB9: "http://www.supermapol.com/realspace/services/3D-data_all/rest/realspace/datas/%E6%8B%89%E4%BD%8E%E6%A5%BC%E6%9D%BF@%E4%B9%9D%E5%8F%B7%E6%A5%BC/config"
+ , SCENE_GTC_LWALL9: "http://www.supermapol.com/realspace/services/3D-data_all/rest/realspace/datas/%E6%8B%89%E4%BD%8E%E5%A2%99@%E4%B9%9D%E5%8F%B7%E6%A5%BC/config"
+ , SCENE_GTC_LWINDOW9: "http://www.supermapol.com/realspace/services/3D-data_all/rest/realspace/datas/%E6%8B%89%E4%BD%8E%E7%AA%97@%E4%B9%9D%E5%8F%B7%E6%A5%BC/config"
+ , SCENE_GTC_UINSIDE: "http://www.supermapol.com/realspace/services/3D-data_all/rest/realspace/datas/%E5%86%85%E9%83%A8%E7%BB%93%E6%9E%84@%E5%AE%A4%E5%86%85/config"
+ , SCENE_GTC_UNIT9: "http://www.supermapol.com/realspace/services/3D-data_all/rest/realspace/datas/%E5%90%88%E5%B9%B6%E5%90%8E@%E4%B9%9D%E5%8F%B7%E6%A5%BC/config"
+ , SCENE_GTC_UOUTSIDE: "http://www.supermapol.com/realspace/services/3D-data_all/rest/realspace/datas/%E5%A4%96%E9%83%A8%E7%BB%93%E6%9E%84@%E5%AE%A4%E5%86%85/config"
+ , SCENE_GTC_UWINDOW: "http://www.supermapol.com/realspace/services/3D-data_all/rest/realspace/datas/U%E5%9E%8B%E5%BB%BA%E7%AD%91%E7%AA%97@%E5%AE%A4%E5%86%85/config"
+ , SCENE_GTC_WALL9: "http://www.supermapol.com/realspace/services/3D-data_all/rest/realspace/datas/%E5%90%88%E5%B9%B6%E5%89%8D%E5%A2%99@%E4%B9%9D%E5%8F%B7%E6%A5%BC/config"
+ , SCENE_GTC_WINDOW9: "http://www.supermapol.com/realspace/services/3D-data_all/rest/realspace/datas/%E5%90%88%E5%B9%B6%E5%89%8D%E6%A5%BC%E6%9D%BF@%E4%B9%9D%E5%8F%B7%E6%A5%BC/config"
+ , SCENE_HISTOGRAM: "http://www.supermapol.com/realspace/services/3D-Histogram/rest/realspace"
+ , SCENE_JINJIANG: "http://www.supermapol.com/realspace/services/3D-jinjiang/rest/realspace"
+ , SCENE_MODELUPDATE: "http://www.supermapol.com/realspace/services/3D-MoXingGengXin/rest/realspace"
+ , SCENE_MOVINGLIGHT: "http://www.supermapol.com/realspace/services/3D-BIMMoXing/rest/realspace"
+ , SCENE_NIAOCHAO: "http://www.supermapol.com/realspace/services/3D-OlympicGreen20200416/rest/realspace"
+ , SCENE_OLYMPIC: "http://www.supermapol.com/realspace/services/3D-Olympic/rest/realspace"
+ , SCENE_OLYMPIC_GREEN: "http://www.supermapol.com/realspace/services/3D-SampleCodeForFan20200420/rest/realspace"
+ , SCENE_OLYMPIC_NIGHT: "http://www.supermapol.com/realspace/services/3D-OlympicGreenNight/rest/realspace"
+ , SCENE_POINTCLOUD: "http://www.supermapol.com/realspace/services/3D-cloud/rest/realspace"
+ , SCENE_POLYLINEGROW_BUINDINGS: "http://www.supermapol.com/realspace/services/3D-buildings1122/rest/realspace"
+ , SCENE_RECT: "http://www.supermapol.com/realspace/services/3D-Text01/rest/realspace"
+ , SCENE_SGNS: "http://www.supermapol.com/realspace/services/3D-SGNS/rest/realspace"
+ , SCENE_SICHUAN: "http://www.supermapol.com/realspace/services/3D-dixingyingxiang/rest/realspace"
+ , SCENE_SRSB: "http://www.supermapol.com/realspace/services/3D-srsb/rest/realspace"
+ , SCENE_SUOFEIYA: "http://www.supermapol.com/realspace/services/3D-suofeiya_church/rest/realspace"
+ , SCENE_TISHUJU: "http://www.supermapol.com/realspace/services/3D-tishuju/rest/realspace"
+ , SCENE_VOLUME_NEAREST: "http://www.supermapol.com/realspace/services/3D-compare/rest/realspace"
+ , SCENE_WIREFRAME: "http://www.supermapol.com/realspace/services/3D-wireFrame/rest/realspace"
+ , SCENE_WebGLCBD: "http://www.supermapol.com/realspace/services/3D-CBDCache20200416/rest/realspace"
+ , SCENE_XGPARK: "http://www.supermapol.com/realspace/services/3D-yanmofenxi/rest/realspace"
+ , SCP_BIM: "https://www.supermapol.com/realspace/services/3D-S3MData/rest/realspace/datas/T8H_NoLod/config"
+ , SCP_CBD_BRIDGE: "http://www.supermapol.com/realspace/services/3D-CBDCache20200416/rest/realspace/datas/Ground_qiao@CBD/config"
+ , SCP_CBD_BUILD: "http://www.supermapol.com/realspace/services/3D-CBD/rest/realspace/datas/Building@CBD/config"
+ , SCP_CBD_GROUND1: "http://www.supermapol.com/realspace/services/3D-CBDCache20200416/rest/realspace/datas/Ground_1@CBD/config"
+ , SCP_CBD_GROUND2: "http://www.supermapol.com/realspace/services/3D-WebGLCBD/rest/realspace/datas/Ground_2@%E6%96%B0CBD/config"
+ , SCP_CBD_LAKE: "http://www.supermapol.com/realspace/services/3D-CBDCache20200416/rest/realspace/datas/Lake@CBD/config"
+ , SCP_CBD_ROAD: "http://www.supermapol.com/realspace/services/3D-CBDCache20200416/rest/realspace/datas/Ground_Daolu@CBD/config"
+ , SCP_CBD_TREE: "http://www.supermapol.com/realspace/services/3D-CBDCache20200416/rest/realspace/datas/Tree@CBD/config"
+ , SCP_FCFH_DATA: "http://www.supermapol.com/realspace/services/data-FCFH_Shangdong/rest/data"
+ , SCP_FCFH_QX: "http://www.supermapol.com/realspace/services/3D-FCFH_Shangdong/rest/realspace/datas/config/config"
+ , SCP_FCFH_VECTOR_EXTRUDE: "http://www.supermapol.com/realspace/services/3D-individualHouse/rest/realspace/datas/%E4%B8%93%E9%A2%98%E6%88%B7%E5%9E%8B%E9%9D%A2_%E6%8B%89%E4%BC%B8/config"
+ , SCP_HISTOGRAM1: "http://www.supermapol.com/realspace/services/3D-Histogram/rest/realspace/datas/Point2D_3000_5000/config"
+ , SCP_HISTOGRAM2: "http://www.supermapol.com/realspace/services/3D-Histogram/rest/realspace/datas/Point2D_10000_max/config"
+ , SCP_HISTOGRAM3: "http://www.supermapol.com/realspace/services/3D-Histogram/rest/realspace/datas/Point2D_min_1000/config"
+ , SCP_HISTOGRAM4: "http://www.supermapol.com/realspace/services/3D-Histogram/rest/realspace/datas/Point2D_5000_10000/config"
+ , SCP_HISTOGRAM5: "http://www.supermapol.com/realspace/services/3D-Histogram/rest/realspace/datas/Point2D_1000_3000/config"
+ , SCP_JINJIANG: "http://www.supermapol.com/realspace/services/3D-jinjiang/rest/realspace/datas/jinjiang/config"
+ , SCP_NIAOCHAO: "http://www.supermapol.com/realspace/services/3D-niaocao_water/rest/realspace/datas/%E9%B8%9F%E5%B7%A2%E4%BA%94%E6%9C%9F/config"
+ , SCP_NIAOCHAO_WATER: "http://www.supermapol.com/realspace/services/3D-Olympic/rest/realspace/datas/NewDataset@water-caijian/config"
+ , SCP_OLYMPIC_BILLBOARD: "http://www.supermapol.com/realspace/services/3D-WebGLOlympicGreen/rest/realspace/datas/BillBoard@OlympicGreen/config"
+ , SCP_OLYMPIC_BUILD: "http://www.supermapol.com/realspace/services/3D-WebGLOlympicGreen/rest/realspace/datas/Building@OlympicGreen/config"
+ , SCP_OLYMPIC_GROUND: "http://www.supermapol.com/realspace/services/3D-WebGLOlympicGreen/rest/realspace/datas/Ground@OlympicGreen/config"
+ , SCP_OLYMPIC_TREE: "http://www.supermapol.com/realspace/services/3D-WebGLOlympicGreen/rest/realspace/datas/Tree@OlympicGreen/config"
+ , SCP_OLYMPIC_WATER: "http://www.supermapol.com/realspace/services/3D-WebGLOlympicGreen/rest/realspace/datas/Waters@OlympicGreen/config"
+ , SCP_PIPELINE: "https://www.supermapol.com/realspace/services/3D-pipeline_s3m/rest/realspace/datas/NetWork@Pipe3D/config"
+ , SCP_POINTCLOUD: "http://www.supermapol.com/realspace/services/3D-cloud/rest/realspace/datas/POINTCLOUD23/config"
+ , SCP_SGNS: "http://www.supermapol.com/realspace/services/3D-SGNS/rest/realspace/datas/siguniang/config"
+ , SCP_SRSB: "http://www.supermapol.com/realspace/services/3D-srsb/rest/realspace/datas/srsb/config"
+ , SCP_SRSB_WATER: "http://www.supermapol.com/realspace/services/3D-srsb/rest/realspace/datas/%E6%B0%B4%E9%9D%A2@vector/config"
+ , SCP_SUOFEIYA: "http://www.supermapol.com/realspace/services/3D-suofeiya_church/rest/realspace/datas/Config/config"
+ , SCP_VECTOR_LINE: "http://www.supermapol.com/realspace/services/3D-China/rest/realspace/datas/Line/config"
+ , SCP_VECTOR_POLYGON: "http://www.supermapol.com/realspace/services/3D-China/rest/realspace/datas/%E4%B8%93%E9%A2%98%E5%9B%BE/config"
+ , SCP_VECTOR_TEXT: "http://www.supermapol.com/realspace/services/3D-China/rest/realspace/datas/text/config"
+ , SCP_WORLD_COUNTRY_VECTOR: "http://www.supermapol.com/realspace/services/3D-Countries-World2/rest/realspace/datas/Countries_1@World/config"
+ , SCP_WORLD_COUNTRY_VECTOR2: " http://www.supermapol.com/realspace/services/3D-ShiJieGuoJiaBianJie/rest/realspace"
+ , SCP_XGPARK: "http://www.supermapol.com/realspace/services/3D-yanmofenxi/rest/realspace/datas/sci_park/config"
+ , STK: "https://www.supermapol.com/realspace/services/3D-stk_terrain/rest/realspace/datas/info/data/path"
+ , SUPERMAP_IMG_MEC: "http://www.supermapol.com/realspace/services/map-China400/rest/maps/China400"
+ , SUPERMAP_IMG_WGS: "http://www.supermapol.com/realspace/services/map-World/rest/maps/World_Google"
+ , SiChuan_IMG: "http://www.supermapol.com/realspace/services/3D-dixingyingxiang/rest/realspace/datas/MosaicResult"
+ , SiChuan_TERRAIN: "http://www.supermapol.com/realspace/services/3D-dixingyingxiang/rest/realspace/datas/DatasetDEM"
+ , TDT_IMG: "https://[subdomain].tianditu.com/img_w/wmts"
+ , TDT_LABEL: "https://[subdomain].tianditu.com/cia_w/wmts"
+ , TENSE_IMG0: "http://www.supermapol.com/realspace/services/3D-HuanJingJianCe-2/rest/realspace/datas/rs0300@%E6%88%BF%E5%B1%B1"
+ , TENSE_IMG1: "http://www.supermapol.com/realspace/services/3D-HuanJingJianCe-2/rest/realspace/datas/rs0310@%E6%88%BF%E5%B1%B1"
+ , TENSE_IMG2: "http://www.supermapol.com/realspace/services/3D-HuanJingJianCe-2/rest/realspace/datas/rs0330@%E6%88%BF%E5%B1%B1"
+ , TENSE_IMG3: "http://www.supermapol.com/realspace/services/3D-HuanJingJianCe-2/rest/realspace/datas/rs0340@%E6%88%BF%E5%B1%B1"
+ , TENSE_IMG4: "http://www.supermapol.com/realspace/services/3D-HuanJingJianCe-2/rest/realspace/datas/rs0350@%E6%88%BF%E5%B1%B1"
+ , TENSE_IMG5: "http://www.supermapol.com/realspace/services/3D-HuanJingJianCe-2/rest/realspace/datas/rs0400@%E6%88%BF%E5%B1%B1"
+ , TENSE_IMG6: "http://www.supermapol.com/realspace/services/3D-HuanJingJianCe-2/rest/realspace/datas/rs0410@%E6%88%BF%E5%B1%B1"
+ , TENSE_IMG7: "http://www.supermapol.com/realspace/services/3D-HuanJingJianCe-2/rest/realspace/datas/rs0420@%E6%88%BF%E5%B1%B1"
+ , TENSE_IMG8: "http://www.supermapol.com/realspace/services/3D-HuanJingJianCe-2/rest/realspace/datas/rs0430@%E6%88%BF%E5%B1%B1"
+ , TENSE_IMG9: "http://www.supermapol.com/realspace/services/3D-HuanJingJianCe-2/rest/realspace/datas/rs0440@%E6%88%BF%E5%B1%B1"
+ , TENSE_IMG10: "http://www.supermapol.com/realspace/services/3D-HuanJingJianCe-2/rest/realspace/datas/rs0450@%E6%88%BF%E5%B1%B1"
+ , TOKEN_TIANDITU: "4a00a1dc5387b8ed8adba3374bd87e5e"
+ , ZF_IMG: "http://www.supermapol.com/realspace/services/3D-dxyx_ios2/rest/realspace/datas/MosaicResult_2@IMAGE_1"
+ , ZF_IMG2: "http://www.supermapol.com/realspace/services/3D-ZF_normal/rest/realspace/datas/image"
+ , ZF_TERRAIN: "http://www.supermapol.com/realspace/services/3D-dxyx_ios2/rest/realspace/datas/DatasetDEM_1@sichuanTer"
+ , ZF_TERRAIN2: "http://www.supermapol.com/realspace/services/3D-ZF_normal/rest/realspace/datas/srtm_54_07@zhufeng"
+
+ }
+
+ window.MYURL_CONFIG = URL_CONFIG;//全局使用
+
+});
\ No newline at end of file
diff --git a/widgets/searchL/Widget.js b/widgets/searchL/Widget.js
index 0c7a8ac..760379e 100644
--- a/widgets/searchL/Widget.js
+++ b/widgets/searchL/Widget.js
@@ -11,7 +11,8 @@
'jimu/BaseWidget',
'jimu/utils',
'jimu/css!libs/zTree_v3/css/zTreeStyle/zTreeStyle.css',
- 'libs/zTree_v3/js/jquery.ztree.all'
+ 'libs/zTree_v3/js/jquery.ztree.all',
+ './Cesiumadd'
],
function (declare,
lang,
@@ -33,50 +34,7 @@
startup: function () {
var that = this;
- 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;//全局使用
+
//关键词&&坐标
$("#i-f-gjz").click(function () {
@@ -215,13 +173,13 @@
if (d == []) {
if (n == 0) {
this.beginLayUi(d);
- topic.publish('getLegendsData', "legends", d, "./images/addL/全景.png", "全景站点");
+ topic.publish('getLegendsData', "legends", d, "./images/addL/全景.png", "全景站点");
} else if (n == 1) {
this.beginLayUi(1, d);
- topic.publish('getLegendsData', "legends", d, "./images/addL/监控.png", "监控站点");
+ topic.publish('getLegendsData', "legends", d, "./images/addL/监控.png", "监控站点");
} else if (n == 2) {
this.beginLayUi(1, 1, d);
- topic.publish('getLegendsData', "legends", d, "./images/addL/全景.png", "监测站点");
+ topic.publish('getLegendsData', "legends", d, "./images/addL/全景.png", "监测站点");
}
} else {
var i = 1;
@@ -233,13 +191,13 @@
var data = d;
if (n == 0) {
this.beginLayUi(data);
- topic.publish('getLegendsData', "legends", d, "./images/addL/全景.png", "全景站点");
+ topic.publish('getLegendsData', "legends", d, "./images/addL/全景.png", "全景站点");
} else if (n == 1) {
this.beginLayUi(1, data);
- topic.publish('getLegendsData', "legends", d, "./images/addL/监控.png", "监控站点");
+ topic.publish('getLegendsData', "legends", d, "./images/addL/监控.png", "监控站点");
} else if (n == 2) {
this.beginLayUi(1, 1, data);
- topic.publish('getLegendsData', "legends", d, "./images/addL/监测.png", "监测站点");
+ topic.publish('getLegendsData', "legends", d, "./images/addL/监测.png", "监测站点");
}
}
},
diff --git a/widgets/slope/Widget.js b/widgets/slope/Widget.js
index 90c394f..65114f2 100644
--- a/widgets/slope/Widget.js
+++ b/widgets/slope/Widget.js
@@ -59,51 +59,7 @@
slope.ColorTable = colorTable;
slope.Opacity = 1;
- function createTooltip(frameDiv) {//创建需要的函数
-
- 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);
- }
-
- var tooltip = createTooltip(viewer._element);
+ var tooltip = window.MYcreateTooltip(viewer._element);
//绘制多边形
var handlerPolygon = new Cesium.DrawHandler(viewer, Cesium.DrawMode.Polygon, 0);
handlerPolygon.activeEvt.addEventListener(function (isActive) {
diff --git a/widgets/spatialAnalysis/Widget.js b/widgets/spatialAnalysis/Widget.js
index 62e479c..1ac956e 100644
--- a/widgets/spatialAnalysis/Widget.js
+++ b/widgets/spatialAnalysis/Widget.js
@@ -45,11 +45,11 @@
classs: 'profileAnalysis-tool',
img: './images/addL/剖面分析.png'
}
- // , {//做好静态,
- // name: '建造实体',
- // classs: 'modelDiagram-tool',
- // img: './images/addL/pdpx.png'
- // }
+ , {//做好静态,
+ name: '建造实体',
+ classs: 'modelDiagram-tool',
+ img: './images/addL/pdpx.png'
+ }
// , {//https://blog.csdn.net/supermapsupport/article/details/100134590
// //需要iServer发布成三维服务
// name: '坡度分析',
@@ -66,11 +66,16 @@
classs: 'digTheEarth-tool',
img: './images/addL/pdpx.png'
}
- // , {//方量分析//做好
- // name: '方量分析',
- // classs: 'volumeAnalysis-tool',
- // img: './images/addL/pdpx.png'
- // }
+ , {//方量分析//做好
+ name: '方量分析',
+ classs: 'volumeAnalysis-tool',
+ img: './images/addL/pdpx.png'
+ },
+ {//通视分析
+ name: '通视分析',
+ classs: 'throughSee-tool',
+ img: './images/addL/pdpx.png'
+ }
];
that.beginSpatialAnalysis(domHtmls);
@@ -119,6 +124,16 @@
, {//空间查询
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'
}
,
@@ -235,23 +250,20 @@
topic.publish('beginSpatialQuery', 'beginSpatialQuery');
})
- // var datas = [//layui舍弃
- // {
- // title: '默认:天地图影像'
- // // , child: [
- // // {
- // // title: 'menu item 3-2-1'
- // // , id: 105
- // // }
- // // ]
- // }
- // ]
- // // that.beginRool(datas);
- // that.datas = datas;
- // // 注册添加工具事件--规定操作图层
- // topic.subscribe("addSelectLayerTool", lang.hitch(this, this.addSelectLayerTool));
- // // 注册删除工具事件--规定操作图层
- // topic.subscribe("removeSelectLayerTool", lang.hitch(this, this.removeSelectLayerTool));
+ //多边形裁剪
+ $('.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');
+ })
+
$('.SelectLayerTool').click(() => {
$('#SelectLayerToolItem').toggle();
@@ -310,12 +322,17 @@
}
},
removeItemS: function (item, obj) {
- // console.log('r1')
+ console.log(obj, 'r1')
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) {
+ this.liClick('默认:天地图影像', '默认:天地图影像');
+ }
}
}
@@ -359,12 +376,17 @@
}
},
removeTiltS: function (item, obj) {
+ console.log(obj, 'r2')
// console.log('r2')
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) {
+ this.liClick('默认:天地图影像', '默认:天地图影像');
+ }
}
}
@@ -375,42 +397,24 @@
}
},
- // datas: [],//layui舍弃
- // addSelectLayerTool: function (num, val) {
- // console.log(num, val);
- // var that = this
- // , d = that.datas;
- // //三维数据处理 添加全部 9 添加时删除 10 删除全部 6 //添加单个 9 添加时删除 10 删除全部 6
- // // var sanwei = {};
- // // if (num == 9) {
- // // sanwei.title = '三维倾斜数据'
- // // }
- // // d.push({
- // // title: val.title
- // // })
- // // that.beginRool(that.datas);
+ // beginRool: function (data) {
+ // //选择图层Layui
+ // layui.use(['dropdown', 'util', 'layer', 'table'], function () {
+ // var dropdown = layui.dropdown
+ // , layer = layui.layer;
+ // dropdown.render({
+ // elem: '.SelectLayerTool'
+ // , data: data
+ // , click: function (obj) {
+ // layer.tips('选择了:' + obj.title, this.elem, { tips: [1, '#5FB878'] });
+ // var dom = $('.SelectLayerTool');
+ // dom.empty();
+ // var str = `${obj.title} <i class="layui-icon layui-icon-down layui-font-12"></i>`
+ // dom.append(str);
+ // }
+ // });
+ // });
// },
- // removeSelectLayerTool: function (num, val) {
- // console.log(num, val)
- // },
- beginRool: function (data) {
- //选择图层Layui
- layui.use(['dropdown', 'util', 'layer', 'table'], function () {
- var dropdown = layui.dropdown
- , layer = layui.layer;
- dropdown.render({
- elem: '.SelectLayerTool'
- , data: data
- , click: function (obj) {
- layer.tips('选择了:' + obj.title, this.elem, { tips: [1, '#5FB878'] });
- var dom = $('.SelectLayerTool');
- dom.empty();
- var str = `${obj.title} <i class="layui-icon layui-icon-down layui-font-12"></i>`
- dom.append(str);
- }
- });
- });
- },
closeToolBox: function (item) {
if (item != this.name) {
$('.tool-y-box').hide();
@@ -464,29 +468,19 @@
$(".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');
+ }
},
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 () {
diff --git a/widgets/spatialAnalysis/css/style.css b/widgets/spatialAnalysis/css/style.css
index 1279759..3689824 100644
--- a/widgets/spatialAnalysis/css/style.css
+++ b/widgets/spatialAnalysis/css/style.css
@@ -44,7 +44,7 @@
padding: 5px;
text-align: center;
overflow: hidden;
- height: calc(100% - 40px);
+ height: calc(100% - 90px);
width: 100%;
margin: 0;
overflow: auto;
diff --git a/widgets/throughSee/Widget.html b/widgets/throughSee/Widget.html
new file mode 100644
index 0000000..ae87091
--- /dev/null
+++ b/widgets/throughSee/Widget.html
@@ -0,0 +1,10 @@
+<div>
+ <div id='toolbarthroughSee' class="param-container tool-bar">
+ <button type="button" id="addViewPointthroughSee" class="button black">添加观察点</button>
+ <button type="button" id="addTargetPointthroughSee" class="button black">添加目标点</button>
+ <button type="button" id="clearthroughSee" class="button black">清除</button>
+ </div>
+ <i class="layui-icon closeOUR">
+ ဆ
+ </i></span>
+</div>
\ No newline at end of file
diff --git a/widgets/throughSee/Widget.js b/widgets/throughSee/Widget.js
new file mode 100644
index 0000000..68f6772
--- /dev/null
+++ b/widgets/throughSee/Widget.js
@@ -0,0 +1,330 @@
+define([
+ 'dojo/_base/declare',
+ 'dojo/_base/lang',
+ 'dojo/_base/array',
+ 'dojo/_base/html',
+ 'dojo/topic',
+ 'jimu/BaseWidget',
+],
+ function (declare,
+ lang,
+ array,
+ html,
+ topic,
+ BaseWidget
+ ) {
+ return declare([BaseWidget], {
+ baseClass: 'jimu-widget-throughSee',
+ name: 'throughSee',
+ flag: false,
+ startup: function () {
+ var that = this;
+ topic.subscribe("beginthroughSee", lang.hitch(this, this.beginthroughSee));
+ topic.subscribe("closesthroughSee", lang.hitch(this, this.closesthroughSee));
+ // topic.publish('getbeginSlope', that.beginSlope);
+ $(`.${that.baseClass}`).find('.closeOUR').click(() => {
+ $(`.${that.baseClass}`).hide();
+ that.closesthroughSee();
+ })
+
+
+ // that.beginthroughSee();
+
+ },
+ beginthroughSee: function () {
+ console.log(`${this.name}--kaishi`);
+ var that = this;
+
+ var viewer = that.map;
+
+ if (!viewer.scene.pickPositionSupported) {
+ alert('不支持深度纹理,通视分析功能无法使用(无法添加观测点目标点)!');
+ }
+ $("#toolbarthroughSee").show();
+ $('#loadingbar').remove();
+ var scene = viewer.scene;
+ scene.shadowMap.darkness = 1.275; //设置第二重烘焙纹理的效果(明暗程度)
+ scene.skyAtmosphere.brightnessShift = 0.4; //修改大气的亮度
+ scene.debugShowFramesPerSecond = false;
+ scene.hdrEnabled = false;
+ scene.sun.show = false;
+ // 01设置环境光的强度-新处理CBD场景
+ scene.lightSource.ambientLightColor = new Cesium.Color(0.65, 0.65, 0.65, 1);
+ // 添加光源
+ var position1 = new Cesium.Cartesian3.fromDegrees(116.261209157595, 39.3042238956531, 480);
+ //光源方向点
+
+ var targetPosition1 = new Cesium.Cartesian3.fromDegrees(116.261209157595, 39.3042238956531, 430);
+ var dirLightOptions = {
+ targetPosition: targetPosition1,
+ color: new Cesium.Color(1.0, 1.0, 1.0, 1),
+ intensity: 0.55
+ };
+ directionalLight_1 = new Cesium.DirectionalLight(position1, dirLightOptions);
+ scene.addLightSource(directionalLight_1);
+ var sightline = new Cesium.Sightline(scene);
+
+ var widget = viewer.cesiumWidget;
+ // try {
+
+ var promise = scene.open(window.MYURL_CONFIG.SCENE_CBD);
+ Cesium.when.all(promise, function (layer) {
+ scene.camera.setView({
+ destination: new Cesium.Cartesian3.fromDegrees(116.44621857300415, 39.899281526734555, 216.7793905027196),
+ orientation: {
+ heading: 0.41348036210986194,
+ pitch: -0.13636490404291735,
+ roll: 6.283185307179563
+ }
+ });
+ for (var i = 0; i < layer.length; i++) {
+ layer[i].selectEnabled = false;
+ }
+
+ sightline.build();
+ }, function (e) {
+ if (widget._showRenderLoopErrors) {
+ var title = '加载SCP失败,请检查网络连接状态或者url地址是否正确?';
+ widget.showErrorPanel(title, undefined, e);
+ }
+ });
+ // } catch (e) {
+ // if (widget._showRenderLoopErrors) {
+ // var title = '渲染时发生错误,已停止渲染。';
+ // widget.showErrorPanel(title, undefined, e);
+ // }
+ // }
+
+
+ var addViewFlag = false;//当前点击状态是否是 添加观察点
+ var addTargetFlag = false;//当前点击状态是否是 添加目标点
+ var mv = false;//当前点击状态是否是 添加观察点
+ var tf = false;//当前点击状态是否是 添加目标点
+
+ var num = 0;//添加的目标点的点号
+ var couldRemove = false;//是否能移除目标点
+ var tooltip = window.MYcreateTooltip(viewer._element)
+ var handlerPoint = new Cesium.DrawHandler(viewer, Cesium.DrawMode.Point);
+ handlerPoint.drawEvt.addEventListener(function (result) {
+ //添加观察点
+ if (addViewFlag) {
+ var point = result.object;
+ // point.show = false;
+ var position = result.object.position;
+
+ //将获取的点的位置转化成经纬度
+ var cartographic = Cartesian2toDegrees(position);
+
+ //设置观察点
+ sightline.viewPosition = cartographic;
+ addViewFlag = false;
+ }
+ handlerPoint.deactivate();
+ });
+
+
+
+
+ var handler = new Cesium.ScreenSpaceEventHandler(scene.canvas);
+
+ document.getElementById("addViewPointthroughSee").onclick = function () {
+ if (tf == false) {
+ addViewFlag = true;
+
+ if (handlerPoint.active) {
+ return;
+ }
+ viewer.entities.removeAll();
+ if (couldRemove) {
+ sightline.removeAllTargetPoint();
+ }
+ handlerPoint.activate();
+ handler.setInputAction(function (evt) {
+
+ //鼠标移动,更新最后一次添加的目标点的位置
+ var position = scene.pickPosition(evt.endPosition);
+
+ }, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
+
+ if (addViewFlag || addTargetFlag) {
+ viewer.enableCursorStyle = false;
+ viewer._element.style.cursor = '';
+ $('body').removeClass('drawCur').addClass('drawCur');
+ }
+ //鼠标移动事件,更新点
+ handler.setInputAction(function (evt) {
+ tooltip.showAt(evt.endPosition, '<p>点击确定观察点</p>');
+ }, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
+ //鼠标点击事件,添加点
+ handler.setInputAction(function (e) {
+ $('body').removeClass('drawCur');
+ mv = true;
+ tooltip.setVisible(false);
+ handler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK);
+ handler.removeInputAction(Cesium.ScreenSpaceEventType.MOUSE_MOVE);
+ }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
+ } else {
+ layer.tips('正在添加目标点,请先右键关闭', $('#addViewPointthroughSee'), { tips: [1, 'red'] });
+ }
+ }
+
+
+ document.getElementById("addTargetPointthroughSee").onclick = function () {
+ if (mv) {
+ addViewFlag = false;
+ addTargetFlag = true;
+ tf = true;
+ if (addViewFlag || addTargetFlag) {
+ viewer.enableCursorStyle = false;
+ viewer._element.style.cursor = '';
+ $('body').removeClass('drawCur').addClass('drawCur');
+ }
+
+ //鼠标点击事件,添加点
+ handler.setInputAction(function (e) {
+ var position = scene.pickPosition(e.position);
+ addTarget(position);
+ }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
+
+ //鼠标移动事件,更新点
+ handler.setInputAction(function (evt) {
+
+ //鼠标移动,更新最后一次添加的目标点的位置
+ var position = scene.pickPosition(evt.endPosition);
+
+ if (num > 0) {
+ sightline.removeTargetPoint("point0");
+
+ var cartographic = Cartesian2toDegrees(position);
+
+ var flag = sightline.addTargetPoint({
+ position: cartographic,
+ name: "point0"
+ });
+ }
+ tooltip.showAt(evt.endPosition, '<p>点击确定目标点右键结束</p>');
+ }, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
+
+ //鼠标右键事件,结束
+ handler.setInputAction(function () {
+ viewer.enableCursorStyle = true;
+ $('body').removeClass('drawCur');
+ tooltip.setVisible(false);
+ handler.removeInputAction(Cesium.ScreenSpaceEventType.MOUSE_MOVE);
+ handler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK);
+ tf = false;
+ }, Cesium.ScreenSpaceEventType.RIGHT_CLICK);
+ } else {
+ layer.tips('未添加观察点', $('#addTargetPointthroughSee'), { tips: [1, 'red'] });
+ }
+ };
+
+ document.getElementById("clearthroughSee").onclick = function () {
+ if (tf == false) {
+ addViewFlag = false;
+ addTargetFlag = false;
+ mv = false;
+ tf = false;
+ handlerPoint.clear();
+ viewer.entities.removeAll();
+ if (couldRemove) {
+ sightline.removeAllTargetPoint();
+ couldRemove = false;
+ }
+ viewer.enableCursorStyle = true;
+ $('body').removeClass('drawCur');
+ } else {
+ layer.tips('正在添加目标点,请先右键关闭', $('#addViewPointthroughSee'), { tips: [1, 'red'] });
+
+ }
+ }
+
+
+
+
+ //添加通视点
+ function addTarget(CartesianPosition) {
+ if (addViewFlag === false && addTargetFlag) {
+ num += 1;
+ //将获取的点的位置转化成经纬度
+ var cartographic = Cartesian2toDegrees(CartesianPosition);
+ //添加目标点
+ var name = "point" + num;
+ var flag = sightline.addTargetPoint({
+ position: cartographic,
+ name: name
+ });
+ couldRemove = true;
+ }
+ }
+
+ //笛卡尔转换为经纬度
+ function Cartesian2toDegrees(position) {
+ var cartographic = Cesium.Cartographic.fromCartesian(position);
+ var longitude = Cesium.Math.toDegrees(cartographic.longitude);
+ var latitude = Cesium.Math.toDegrees(cartographic.latitude);
+ var height = cartographic.height;
+
+ return [longitude, latitude, height];
+ }
+
+ that.promise = promise;
+ that.addViewFlag = addViewFlag;
+ that.addTargetFlag = addTargetFlag;
+ that.handlerPoint = handlerPoint;
+
+ },
+ promise: '',
+ addViewFlag: '',
+ addTargetFlag: '',
+ handlerPoint: '',
+ closesthroughSee: function (froms) {
+ console.log(`${this.name}--guanbi`);
+ that = this;
+
+ Cesium.when.all(that.promise, function (layer) {
+ for (var i = 0; i < layer.length; i++) {
+ that.map.scene.layers.remove(layer[i].name)
+ }
+ })
+ that.addViewFlag = false;
+ that.addTargetFlag = false;
+ that.handlerPoint.clear();
+ that.map.entities.removeAll();
+ if (couldRemove) {
+ sightline.removeAllTargetPoint();
+ couldRemove = false;
+ }
+ that.map.enableCursorStyle = true;
+ $('body').removeClass('drawCur');
+ },
+ onOpen: function () {
+
+ },
+
+ onClose: function () {
+ //面板关闭的时候触发 (when this panel is closed trigger)
+ console.log('jies')
+ },
+
+ onMinimize: function () {
+ this.resize();
+ },
+
+ onMaximize: function () {
+ this.resize();
+ },
+
+ resize: function () {
+
+ },
+
+ destroy: function () {
+ //销毁的时候触发
+ //todo
+ //do something before this func
+ this.inherited(arguments);
+ }
+
+ });
+ });
diff --git a/widgets/throughSee/css/style.css b/widgets/throughSee/css/style.css
new file mode 100644
index 0000000..2193504
--- /dev/null
+++ b/widgets/throughSee/css/style.css
@@ -0,0 +1,45 @@
+.jimu-widget-throughSee {
+ position: fixed !important;
+ top: 72px !important;
+ right: 388px !important;
+ width: 230px !important;
+ height: 40px !important;
+ background-color: rgb(255, 255, 255);
+ font-size: 14px;
+ color: rgb(0, 0, 0);
+ z-index: 12 !important;
+ border-radius: 10px;
+ /* display: none; */
+ box-shadow: 0 0 8px #fff;
+ padding: 0px 5px !important;
+ line-height: 41px;
+}
+
+.jimu-widget-throughSee .closeOUR {
+ position: absolute;
+ right: 5px;
+ top: -2.5px;
+ font-size: 18px;
+ cursor: pointer;
+}
+
+.jimu-widget-throughSee .closeOUR:hover {
+ color: red;
+}
+
+.jimu-widget-throughSee button {
+ line-height: 30px;
+ /* width: 80px; */
+ height: 30px;
+ font-size: 14px;
+ border-radius: 5px;
+ box-shadow: 2px 2px 15px -5px #378ef1;
+ border: 1px solid transparent;
+ background-color: #fff;
+ padding: 0 2px;
+ margin-right: 2px;
+}
+
+.jimu-widget-throughSee button:hover {
+ box-shadow: 2px 2px 25px -5px #1679eb;
+}
\ No newline at end of file
diff --git a/widgets/throughSee/manifest.json b/widgets/throughSee/manifest.json
new file mode 100644
index 0000000..312e7e4
--- /dev/null
+++ b/widgets/throughSee/manifest.json
@@ -0,0 +1,17 @@
+{
+ "name": "throughSee",
+ "2D": true,
+ "3D": true,
+ "platform": "HTML",
+ "version": "2.10",
+ "wabVersion": "2.10",
+ "author": "liuyg",
+ "description": "",
+ "copyright": "",
+ "license": "",
+ "properties": {
+ "hasConfig": false,
+ "inPanel": false,
+ "hasVersionManager": false
+ }
+}
\ No newline at end of file
diff --git a/widgets/throughSee/nls/es/strings.js b/widgets/throughSee/nls/es/strings.js
new file mode 100644
index 0000000..f03cd0a
--- /dev/null
+++ b/widgets/throughSee/nls/es/strings.js
@@ -0,0 +1,5 @@
+define(
+ ({
+ _widgetLabel: "throughSee"
+ })
+);
\ No newline at end of file
diff --git a/widgets/throughSee/nls/strings.js b/widgets/throughSee/nls/strings.js
new file mode 100644
index 0000000..dee7c8b
--- /dev/null
+++ b/widgets/throughSee/nls/strings.js
@@ -0,0 +1,7 @@
+define({
+ root: ({
+ _widgetLabel: "throughSee"
+ }),
+ "es": 1,
+ "zh-cn": 1
+});
\ No newline at end of file
diff --git a/widgets/throughSee/nls/zh-cn/strings.js b/widgets/throughSee/nls/zh-cn/strings.js
new file mode 100644
index 0000000..b1b66e3
--- /dev/null
+++ b/widgets/throughSee/nls/zh-cn/strings.js
@@ -0,0 +1,5 @@
+define(
+ ({
+ _widgetLabel: "通视分析"
+ })
+);
\ No newline at end of file
diff --git a/widgets/volumeAnalysis/Widget.js b/widgets/volumeAnalysis/Widget.js
index 130f24c..9513175 100644
--- a/widgets/volumeAnalysis/Widget.js
+++ b/widgets/volumeAnalysis/Widget.js
@@ -175,9 +175,11 @@
}
// })
that.handlerPolygon = handlerPolygon;
+ that.tooltip = tooltip;
},
handlerPolygon: '',
+ tooltip: '',
closesVolumeAnalysis: function (froms) {
// console.log('guanbi');
this.map.scene.globe.removeAllModifyRegion();
@@ -187,6 +189,7 @@
document.getElementById("fillVolumeVolumeAnalysis").value = "";
document.getElementById("remainderAreaVolumeAnalysis").value = "";
this.handlerPolygon.clear();
+ this.tooltip.setVisible(false);
},
onOpen: function () {
--
Gitblit v1.9.3