<template>
|
<div>
|
<div class="closeBtn">
|
<span>分析与特效</span><span class="closeSpan" @click="closeJm">×</span>
|
</div>
|
|
<!-- 特效 -->
|
<hr class="firhr" />
|
<div class="tx">
|
<!-- <div class="tx-top">
|
<el-checkbox v-model="checkedLc" @change="gb">流场</el-checkbox>
|
<el-checkbox v-model="checkedFc" @change="gb">风场</el-checkbox>
|
</div> -->
|
<!-- 空间分析 -->
|
<div class="kjfx">
|
<el-row :gutter="20">
|
<el-col :span="12">
|
<ul>
|
<li @click="ymfx" :class="isOpen['ymfx'] ? 'selected' : ''">
|
<img
|
class="left-function"
|
src="@/assets/img/left/kjfx/ymfx.png"
|
/>
|
<span>淹没分析</span>
|
</li>
|
<li @click="tsfx" :class="isOpen['tsfx'] ? 'selected' : ''">
|
<img
|
class="left-function"
|
src="@/assets/img/left/kjfx/tsfx.png"
|
/>
|
<span>通视分析</span>
|
</li>
|
<li @click="syfx" :class="isOpen['syfx'] ? 'selected' : ''">
|
<img
|
class="left-function"
|
src="@/assets/img/left/kjfx/syfx.png"
|
/>
|
<span>视域分析</span>
|
</li>
|
<li @click="tjxfx" :class="isOpen['tjxfx'] ? 'selected' : ''">
|
<img
|
class="left-function"
|
src="@/assets/img/left/kjfx/tjxfx.png"
|
/>
|
<span>天际线分析</span>
|
</li>
|
<li @click="hcqfx" :class="isOpen['hcqfx'] ? 'selected' : ''">
|
<img
|
class="left-function"
|
src="@/assets/img/left/kjfx/hcqfx.png"
|
/>
|
<span>缓冲区分析</span>
|
</li>
|
<li @click="rzfx" :class="isOpen['rzfx'] ? 'selected' : ''">
|
<img
|
class="left-function"
|
src="@/assets/img/left/kjfx/rzfx.png"
|
/>
|
<span>日照分析</span>
|
</li>
|
</ul>
|
</el-col>
|
<el-col :span="12">
|
<ul>
|
<li @click="dgxfx" :class="isOpen['dgxfx'] ? 'selected' : ''">
|
<img
|
class="left-function"
|
src="@/assets/img/left/kjfx/dgxfx.png"
|
/>
|
<span>等高线分析</span>
|
</li>
|
<li @click="pmfx" :class="isOpen['pmfx'] ? 'selected' : ''">
|
<img
|
class="left-function"
|
src="@/assets/img/left/kjfx/pmfx.png"
|
/>
|
<span>剖面分析</span>
|
</li>
|
<li @click="dxkw" :class="isOpen['dxkw'] ? 'selected' : ''">
|
<img
|
class="left-function"
|
src="@/assets/img/left/kjfx/dxkw.png"
|
/>
|
<span>地形开挖</span>
|
</li>
|
<li @click="pdfx" :class="isOpen['pdfx'] ? 'selected' : ''">
|
<img
|
class="left-function"
|
src="@/assets/img/left/kjfx/pdfx.png"
|
/>
|
<span>坡度分析</span>
|
</li>
|
<li @click="mxyp" :class="isOpen['mxyp'] ? 'selected' : ''">
|
<img
|
class="left-function"
|
src="@/assets/img/left/kjfx/mxyp.png"
|
/>
|
<span>模型压平</span>
|
</li>
|
<li @click="yyfx" :class="isOpen['yyfx'] ? 'selected' : ''">
|
<img
|
class="left-function"
|
src="@/assets/img/left/kjfx/yyfx.png"
|
/>
|
<span>阴影分析</span>
|
</li>
|
</ul>
|
</el-col>
|
</el-row>
|
</div>
|
<hr />
|
<div class="tx-in">
|
<div class="in-yxw">
|
<el-checkbox
|
v-model="checkedYu"
|
class="y"
|
label="雨"
|
@change="yu('checkbox')"
|
></el-checkbox>
|
<el-slider
|
class="sl"
|
v-model="value1"
|
:show-tooltip="false"
|
@change="yu"
|
:disabled="!checkedYu"
|
></el-slider>
|
</div>
|
<div class="in-yxw">
|
<el-checkbox
|
v-model="checkedXue"
|
class="y"
|
label="雪"
|
@change="xue('checkbox')"
|
></el-checkbox>
|
<el-slider
|
class="sl"
|
v-model="value2"
|
:show-tooltip="false"
|
@change="xue"
|
:disabled="!checkedXue"
|
></el-slider>
|
</div>
|
<div class="in-yxw">
|
<el-checkbox
|
v-model="checkedWu"
|
class="y"
|
label="雾"
|
@change="wu('checkbox')"
|
></el-checkbox>
|
<el-slider
|
class="sl"
|
v-model="value3"
|
:show-tooltip="false"
|
@change="wu"
|
:disabled="!checkedWu"
|
></el-slider>
|
</div>
|
</div>
|
<hr />
|
<div class="tx-in">
|
<div class="in-yxw">
|
<!-- <el-checkbox
|
v-model="checkedYu"
|
class="y"
|
label="雨"
|
@change="yu('checkbox')"
|
></el-checkbox> -->
|
|
<label class="labelText">亮度</label>
|
<el-slider
|
class="sl"
|
v-model="brightness"
|
:show-tooltip="false"
|
@change="ld"
|
:step="0.1" :min="0" :max="3"
|
></el-slider>
|
</div>
|
<div class="in-yxw">
|
<!-- <el-checkbox
|
v-model="checkedXue"
|
class="y"
|
label="雪"
|
@change="xue('checkbox')"
|
></el-checkbox> -->
|
|
<label class="labelText">对比度</label>
|
<el-slider
|
class="sl"
|
v-model="contrast"
|
:show-tooltip="false"
|
@change="dbd"
|
:step="0.1" :min="0" :max="3"
|
></el-slider>
|
</div>
|
<div class="in-yxw">
|
<!-- <el-checkbox
|
v-model="checkedWu"
|
class="y"
|
label="雾"
|
@change="wu('checkbox')"
|
></el-checkbox> -->
|
<label class="labelText">饱和度</label>
|
<el-slider
|
class="sl"
|
v-model="saturation"
|
:show-tooltip="false"
|
@change="bhd"
|
:step="0.1" :min="0" :max="3"
|
></el-slider>
|
</div>
|
</div>
|
<hr />
|
<div class="tx-bottom">
|
<!-- 特效 -->
|
<el-row :gutter="20">
|
<el-col :span="12">
|
<ul>
|
<li :class="isOpen['flame'] ? 'active' : ''" @click="flame">
|
<img class="left-function" src="@/assets/img/left/tx/hy.png" />
|
<span>火焰</span>
|
</li>
|
<li :class="isOpen['smog'] ? 'active' : ''" @click="smog">
|
<img class="left-function" src="@/assets/img/left/tx/yw.png" />
|
<span>烟雾</span>
|
</li>
|
<li :class="isOpen['fountain'] ? 'active' : ''" @click="fountain">
|
<img class="left-function" src="@/assets/img/left/tx/pq.png" />
|
<span>喷泉</span>
|
</li>
|
<li
|
:class="isOpen['fireworks'] ? 'active' : ''"
|
@click="fireworks"
|
>
|
<img class="left-function" src="@/assets/img/left/tx/yh.png" />
|
<span>烟花</span>
|
</li>
|
</ul>
|
</el-col>
|
<el-col :span="12">
|
<ul>
|
<li
|
:class="isOpen['TrailLine_Line'] ? 'active' : ''"
|
@click="TrailLine_Line"
|
>
|
<img class="left-function" src="@/assets/img/left/tx/ldx.png" />
|
<span>流动线</span>
|
</li>
|
<li
|
:class="isOpen['TrailLine_Wall'] ? 'active' : ''"
|
@click="TrailLine_Wall"
|
>
|
<img class="left-function" src="@/assets/img/left/tx/ldq.png" />
|
<span>流动墙</span>
|
</li>
|
<li :class="isOpen['link'] ? 'active' : ''" @click="link">
|
<img class="left-function" src="@/assets/img/left/tx/ll.png" />
|
<span>链路</span>
|
</li>
|
</ul>
|
</el-col>
|
</el-row>
|
<hr />
|
<el-row :gutter="20">
|
<el-col :span="12">
|
<ul>
|
<li :class="isOpen['ksy'] ? 'active' : ''" @click="ksy">
|
<img
|
class="left-function"
|
src="@/assets/img/left/tx/yxks.png"
|
/>
|
<span>圆形扩散</span>
|
</li>
|
<li :class="isOpen['sxks'] ? 'active' : ''" @click="sxks">
|
<img
|
class="left-function"
|
src="@/assets/img/left/tx/sxks.png"
|
/>
|
<span>扇形扩散</span>
|
</li>
|
<li :class="isOpen['ksy_pro'] ? 'active' : ''" @click="ksy_pro">
|
<img class="left-function" src="@/assets/img/left/tx/ksy.png" />
|
<span>扩散源</span>
|
</li>
|
</ul>
|
</el-col>
|
<el-col :span="12">
|
<ul>
|
<li :class="isOpen['ksy2'] ? 'active' : ''" @click="ksy2">
|
<img
|
class="left-function"
|
src="@/assets/img/left/tx/fxksml.png"
|
/>
|
<span>风险扩散模拟</span>
|
</li>
|
<li :class="isOpen['smx'] ? 'active' : ''" @click="smx">
|
<img
|
class="left-function"
|
src="@/assets/img/left/tx/ldsmml.png"
|
/>
|
<span>雷达扫描模拟</span>
|
</li>
|
<li :class="isOpen['ldsmzz'] ? 'active' : ''" @click="ldsmzz">
|
<img
|
class="left-function"
|
src="@/assets/img/left/tx/ldsm.png"
|
/>
|
<span>雷达遮罩扫描</span>
|
</li>
|
</ul>
|
</el-col>
|
</el-row>
|
</div>
|
</div>
|
</div>
|
</template>
|
|
<script>
|
import { mapState, mapMutations } from "vuex"; //空间分析
|
import axios from "axios";
|
let LayerGrid, HawkeyeData; //场景模式
|
|
let fengchang;
|
let liuchang;
|
let particleHandel;
|
let skyBox;
|
let TrailLine = [],
|
KS = [],
|
LD = [],
|
linkData = [];
|
|
export default {
|
name: "leftkjfx",
|
data() {
|
return {
|
brightness: 1, // 亮度
|
contrast: 1, //对比度
|
saturation: 1, //饱和度
|
skyline: false, //空间分析
|
isUnderground: false, //场景模式
|
isYyms: false,
|
isQqwg: false,
|
isDxms: false,
|
|
status: false, //特效
|
isOpen: {
|
snms: false, //场景模式
|
dxms: false,
|
yy: false,
|
qqgw: false,
|
jjms: false,
|
|
ymfx: false, //空间分析
|
tsfx: false,
|
syfx: false,
|
tjxfx: false,
|
hcqfx: false,
|
rzfx: false,
|
yyfx: false,
|
dgxfx: false,
|
pmfx: false,
|
dxkw: false,
|
dxyp: false,
|
pdfx: false,
|
mxyp: false,
|
|
flame: false, //特效
|
smog: false,
|
fountain: false,
|
fireworks: false,
|
TrailLine_Line: false,
|
TrailLine_Wall: false,
|
link: false,
|
ksy: false,
|
sxks: false,
|
ksy_pro: false,
|
ksy2: false,
|
smx: false,
|
ldsmzz: false,
|
dtwxzs: false,
|
scene: false,
|
},
|
checkedYu: false,
|
checkedXue: false,
|
checkedWu: false,
|
checkedLc: false,
|
checkedFc: false,
|
value1: 0,
|
value2: 0,
|
value3: 0,
|
enableLight: false,
|
};
|
},
|
mounted() {},
|
computed: {
|
...mapState(["viewer1Show", "yqfk"]),
|
},
|
methods: {
|
ld() {
|
sgworld.brightness = this.brightness;
|
},
|
dbd() {
|
sgworld.contrast = this.contrast;
|
},
|
bhd() {
|
sgworld.saturation = this.saturation;
|
},
|
/*
|
场景模式
|
*/
|
// yhadd
|
//室内模式
|
snms() {
|
this.$parent.$parent.$parent.closeAllHighLight();
|
|
//收缩面板
|
// this.close();
|
//结束之前操作
|
layuiLayer.close(SmartEarthPopupData.layerProp);
|
sgworld.drawObj &&
|
(sgworld.drawObj.drawHandler && sgworld.drawObj.drawHandler.destroy(),
|
sgworld.drawObj.end && sgworld.drawObj.end());
|
|
this.$notify({
|
title: "提示",
|
message:
|
"移动鼠标控制方向<br>键盘W、A、S、D控制前后左右<br>点击中键调节速度",
|
dangerouslyUseHTMLString: true,
|
showClose: false,
|
position: "bottom-left",
|
offset: 50,
|
customClass: "tipStyle",
|
});
|
sgworld.Analysis.createindoormode();
|
},
|
//地下模式
|
dxms() {
|
this.isOpen["dxms"] = !this.isOpen["dxms"];
|
this.$parent.$parent.$parent.closeAllHighLight();
|
|
//收缩面板
|
this.isDxms = !this.isDxms;
|
this.close();
|
//结束之前操作
|
layuiLayer.close(SmartEarthPopupData.layerProp);
|
sgworld.drawObj &&
|
(sgworld.drawObj.drawHandler && sgworld.drawObj.drawHandler.destroy(),
|
sgworld.drawObj.end && sgworld.drawObj.end());
|
|
this.isUnderground = !this.isUnderground;
|
this.$parent.$parent.$parent.$parent.openUnderGround = this.isUnderground;
|
if (this.isUnderground) {
|
Viewer.scene.globe.translucency.enabled = true;
|
Viewer.scene.screenSpaceCameraController.enableCollisionDetection = false;
|
Viewer.scene.globe.translucency.backFaceAlpha = 0;
|
this.undergroundValue("set");
|
} else {
|
Viewer.scene.globe.translucency.enabled = false;
|
Viewer.scene.screenSpaceCameraController.enableCollisionDetection = true;
|
Viewer.scene.globe.translucency.backFaceAlpha = 1;
|
this.undergroundValue("get");
|
}
|
},
|
undergroundValue(type) {
|
if (type === "set") {
|
this.defaultUnderground = {
|
highDynamicRange: Viewer.scene.highDynamicRange,
|
skyBox: Viewer.scene.skyBox.show,
|
fog: Viewer.scene.fog.enabled,
|
minViewHeight: sgworld.minViewHeight,
|
};
|
Viewer.scene.highDynamicRange = false;
|
Viewer.scene.skyBox.show = false;
|
Viewer.scene.fog.enabled = false;
|
sgworld.minViewHeight = -1000000;
|
let alpha = Viewer.scene.globe.translucency.frontFaceAlpha;
|
sgworld.Creator.set3DTilesetsAlpha(alpha);
|
} else {
|
Viewer.scene.highDynamicRange =
|
this.defaultUnderground.highDynamicRange;
|
Viewer.scene.skyBox.show = this.defaultUnderground.skyBox;
|
Viewer.scene.fog.enabled = this.defaultUnderground.fog;
|
sgworld.minViewHeight = this.defaultUnderground.minViewHeight;
|
let alpha = Viewer.scene.globe.translucency.frontFaceAlpha;
|
sgworld.Creator.set3DTilesetsAlpha(1);
|
}
|
},
|
//鹰眼
|
yy() {
|
this.isOpen["yy"] = !this.isOpen["yy"];
|
this.$parent.$parent.$parent.closeAllHighLight();
|
|
//收缩面板
|
this.isYyms = !this.isYyms;
|
this.close();
|
// this.isOpen["yy"] = !this.isOpen["yy"];
|
//结束之前操作
|
layuiLayer.close(SmartEarthPopupData.layerProp);
|
sgworld.drawObj &&
|
(sgworld.drawObj.drawHandler && sgworld.drawObj.drawHandler.destroy(),
|
sgworld.drawObj.end && sgworld.drawObj.end());
|
|
if (!HawkeyeData) {
|
let imageryProvider;
|
Viewer.imageryLayers._layers.forEach((item) => {
|
if (item.baseLayer) {
|
imageryProvider = item.imageryProvider;
|
}
|
});
|
HawkeyeData = sgworld.Creator.createHawkeye(
|
{
|
imageryProvider:
|
imageryProvider ||
|
new Cesium.WebMapTileServiceImageryProvider({
|
url: "http://t0.tianditu.com/img_w/wmts?service=wmts&request=GetTile&version=1.0.0&LAYER=img&tileMatrixSet=w&TileMatrix={TileMatrix}&TileRow={TileRow}&TileCol={TileCol}&style=default&format=tiles&tk=ebf64362215c081f8317203220f133eb",
|
layer: "tdtBasicLayer",
|
style: "default",
|
format: "image/jpeg",
|
tileMatrixSetID: "GoogleMapsCompatible",
|
show: false,
|
}),
|
},
|
{ left: "0px" }
|
);
|
} else {
|
HawkeyeData.close();
|
HawkeyeData = undefined;
|
}
|
},
|
//全球网格
|
qqgw() {
|
this.isOpen["qqgw"] = !this.isOpen["qqgw"];
|
this.$parent.$parent.$parent.closeAllHighLight();
|
|
//收缩面板
|
this.isQqwg = !this.isQqwg;
|
this.close();
|
// this.isOpen["qqgw"] = !this.isOpen["qqgw"];
|
//结束之前操作
|
layuiLayer.close(SmartEarthPopupData.layerProp);
|
sgworld.drawObj &&
|
(sgworld.drawObj.drawHandler && sgworld.drawObj.drawHandler.destroy(),
|
sgworld.drawObj.end && sgworld.drawObj.end());
|
|
if (!LayerGrid) {
|
LayerGrid = sgworld.Creator.createImageryLayerGrid();
|
} else {
|
LayerGrid.item.show = !LayerGrid.item.show;
|
}
|
},
|
|
/*
|
空间分析
|
*/
|
// yhadd
|
layerOpen() {
|
layuiLayer.open({
|
title: "图层列表",
|
content: "可以填写任意的layer代码<br>123321",
|
shade: 0,
|
btn: false,
|
});
|
},
|
//淹没分析
|
ymfx() {
|
this.$parent.$parent.$parent.closeAllHighLight("kjfx");
|
//收缩面板
|
this.close();
|
//结束之前操作
|
layuiLayer.close(SmartEarthPopupData.layerProp);
|
|
if (this.isOpen.ymfx) {
|
this.isOpen.ymfx = false;
|
sgworld.drawObj && sgworld.drawObj.end && sgworld.drawObj.end("cancel");
|
return;
|
}
|
|
// 清除选中,选中当前
|
this.clearSelected();
|
sgworld.drawObj &&
|
(sgworld.drawObj.drawHandler && sgworld.drawObj.drawHandler.destroy(),
|
sgworld.drawObj.end && sgworld.drawObj.end());
|
this.isOpen.ymfx = true;
|
|
layerOpen("淹没分析", {
|
width: 370,
|
height: 120,
|
offset: ["60%", "10px"],
|
url: "./static/html/AnalysisFloodSubmergence.html",
|
fn: {
|
success: (layero, index) => {
|
SmartEarthPopupData.layerContainer = layero;
|
},
|
end: () => {
|
this.isOpen.ymfx = false;
|
},
|
cancel: () => {
|
sgworld.drawObj &&
|
sgworld.drawObj.end &&
|
sgworld.drawObj.end("cancel");
|
},
|
},
|
});
|
},
|
// 通视分析
|
tsfx() {
|
this.$parent.$parent.$parent.closeAllHighLight("kjfx");
|
//收缩面板
|
this.close();
|
|
if (this.isOpen.tsfx) {
|
this.isOpen.tsfx = false;
|
sgworld.drawObj && sgworld.drawObj.end && sgworld.drawObj.end("cancel");
|
return;
|
}
|
|
//结束之前操作
|
// 清除选中,选中当前
|
this.clearSelected();
|
|
layuiLayer.close(SmartEarthPopupData.layerProp);
|
|
sgworld.drawObj &&
|
(sgworld.drawObj.drawHandler && sgworld.drawObj.drawHandler.destroy(),
|
sgworld.drawObj.end && sgworld.drawObj.end());
|
|
this.isOpen.tsfx = true;
|
layerOpen("通视分析", {
|
width: 350,
|
height: 250,
|
offset: ["60%", "10px"],
|
url: "./static/html/AnalysisIntervisibility.html",
|
fn: {
|
success: (layero, index) => {
|
SmartEarthPopupData.layerContainer = layero;
|
},
|
end: () => {
|
this.isOpen.syfx = false;
|
},
|
cancel: () => {
|
sgworld.drawObj &&
|
sgworld.drawObj.end &&
|
sgworld.drawObj.end("cancel");
|
},
|
},
|
});
|
// window.CreateLineOfSight &&window.CreateLineOfSight(() => {this.isOpen.tsfx = false;});
|
},
|
// 视域分析
|
syfx() {
|
this.$parent.$parent.$parent.closeAllHighLight("kjfx");
|
//收缩面板
|
this.close();
|
//结束之前操作
|
layuiLayer.close(SmartEarthPopupData.layerProp);
|
|
if (this.isOpen.syfx) {
|
this.isOpen.syfx = false;
|
sgworld.drawObj && sgworld.drawObj.end && sgworld.drawObj.end("cancel");
|
return;
|
}
|
|
// 清除选中,选中当前
|
this.clearSelected();
|
sgworld.drawObj &&
|
(sgworld.drawObj.drawHandler && sgworld.drawObj.drawHandler.destroy(),
|
sgworld.drawObj.end && sgworld.drawObj.end());
|
|
this.isOpen.syfx = true;
|
layerOpen("视域分析", {
|
width: 350,
|
height: 300,
|
offset: ["60%", "10px"],
|
url: "./static/html/AnalysisViewshed.html",
|
fn: {
|
success: (layero, index) => {
|
SmartEarthPopupData.layerContainer = layero;
|
},
|
end: () => {
|
this.isOpen.syfx = false;
|
},
|
cancel: () => {
|
sgworld.drawObj &&
|
sgworld.drawObj.end &&
|
sgworld.drawObj.end("cancel");
|
},
|
},
|
});
|
},
|
// 天际线分析
|
tjxfx() {
|
this.$parent.$parent.$parent.closeAllHighLight("kjfx");
|
//收缩面板
|
this.close();
|
//结束之前操作
|
// 清除选中,选中当前
|
this.clearSelected();
|
|
layuiLayer.close(SmartEarthPopupData.layerProp);
|
sgworld.drawObj &&
|
(sgworld.drawObj.drawHandler && sgworld.drawObj.drawHandler.destroy(),
|
sgworld.drawObj.end && sgworld.drawObj.end());
|
|
this.skyline = !this.skyline;
|
this.isOpen.tjxfx = this.skyline;
|
// if (this.skyline) {
|
if (!sgworld.Analysis.skyline) {
|
sgworld.Analysis.createSkylineAnalysis("rgba(237, 7, 7, 0.9)");
|
this.$message({
|
showClose: true,
|
|
message: "开启天际线",
|
});
|
sgworld.Analysis.skyline = true;
|
} else {
|
sgworld.Analysis.clearSkylineAnalysis();
|
this.$message({
|
showClose: true,
|
|
message: "关闭天际线",
|
});
|
sgworld.Analysis.skyline = false;
|
}
|
},
|
//缓冲区分析
|
hcqfx() {
|
this.$parent.$parent.$parent.closeAllHighLight("kjfx");
|
//收缩面板
|
this.close();
|
//结束之前操作
|
layuiLayer.close(SmartEarthPopupData.layerProp);
|
|
if (this.isOpen.hcqfx) {
|
this.isOpen.hcqfx = false;
|
sgworld.drawObj && sgworld.drawObj.end && sgworld.drawObj.end("cancel");
|
return;
|
}
|
// 清除选中,选中当前
|
this.clearSelected();
|
sgworld.drawObj &&
|
(sgworld.drawObj.drawHandler && sgworld.drawObj.drawHandler.destroy(),
|
sgworld.drawObj.end && sgworld.drawObj.end());
|
this.isOpen.hcqfx = true;
|
|
layerOpen("缓冲区分析", {
|
width: 370,
|
height: 180,
|
offset: ["60%", "10px"],
|
url: "./static/html/AnalysisBuffer.html",
|
fn: {
|
success: (layero, index) => {
|
SmartEarthPopupData.layerContainer = layero;
|
},
|
cancel: () => {
|
sgworld.drawObj &&
|
sgworld.drawObj.end &&
|
sgworld.drawObj.end("cancel");
|
},
|
end: () => {
|
this.isOpen.hcqfx = false;
|
},
|
},
|
});
|
},
|
// 等高线分析
|
dgxfx() {
|
this.$parent.$parent.$parent.closeAllHighLight("kjfx");
|
//收缩面板
|
this.close();
|
layuiLayer.close(SmartEarthPopupData.layerProp);
|
|
//结束之前操作
|
if (this.isOpen.dgxfx) {
|
return;
|
}
|
|
// 清除选中,选中当前
|
this.clearSelected();
|
sgworld.drawObj &&
|
(sgworld.drawObj.drawHandler && sgworld.drawObj.drawHandler.destroy(),
|
sgworld.drawObj.end && sgworld.drawObj.end());
|
this.isOpen.dgxfx = true;
|
|
layerOpen("等高线分析", {
|
width: 350,
|
height: 160,
|
offset: ["60%", "10px"],
|
url: "./static/html/AnalysisContour.html",
|
fn: {
|
end: () => {
|
this.isOpen.dgxfx = false;
|
},
|
cancel: () => {},
|
},
|
});
|
},
|
// 剖面线分析
|
pmfx() {
|
this.$parent.$parent.$parent.closeAllHighLight("kjfx");
|
//收缩面板
|
this.close();
|
layuiLayer.close(SmartEarthPopupData.layerProp);
|
|
//结束之前操作
|
if (this.isOpen.pmfx) {
|
this.isOpen.pmfx = false;
|
sgworld.drawObj && sgworld.drawObj.end && sgworld.drawObj.end("cancel");
|
return;
|
}
|
|
// 清除选中,选中当前
|
this.clearSelected();
|
sgworld.drawObj &&
|
(sgworld.drawObj.drawHandler && sgworld.drawObj.drawHandler.destroy(),
|
sgworld.drawObj.end && sgworld.drawObj.end());
|
this.isOpen.pmfx = true;
|
|
layerOpen("剖面线分析", {
|
width: 350,
|
height: 120,
|
offset: ["60%", "10px"],
|
url: "./static/html/AnalysisFuncEchartLine.html",
|
fn: {
|
success: (layero, index) => {
|
SmartEarthPopupData.layerContainer = layero;
|
},
|
end: () => {
|
this.isOpen.pmfx = false;
|
},
|
cancel: () => {
|
sgworld.drawObj &&
|
sgworld.drawObj.end &&
|
sgworld.drawObj.end("cancel");
|
},
|
},
|
});
|
},
|
// 地形开挖
|
dxkw() {
|
this.$parent.$parent.$parent.closeAllHighLight("kjfx");
|
//收缩面板
|
this.close();
|
layuiLayer.close(SmartEarthPopupData.layerProp);
|
|
//结束之前操作
|
if (this.isOpen.dxkw) {
|
this.isOpen.dxkw = false;
|
sgworld.drawObj && sgworld.drawObj.end && sgworld.drawObj.end("cancel");
|
return;
|
}
|
|
//结束之前操作
|
// 清除选中,选中当前
|
this.clearSelected();
|
sgworld.drawObj &&
|
(sgworld.drawObj.drawHandler && sgworld.drawObj.drawHandler.destroy(),
|
sgworld.drawObj.end && sgworld.drawObj.end());
|
this.isOpen.dxkw = true;
|
|
layerOpen("地形开挖", {
|
width: 350,
|
height: 120,
|
offset: ["60%", "10px"],
|
url: "./static/html/AnalysisTerrainExcavation.html",
|
fn: {
|
success: (layero, index) => {
|
SmartEarthPopupData.layerContainer = layero;
|
},
|
end: () => {
|
this.isOpen.dxkw = false;
|
},
|
cancel: () => {
|
sgworld.drawObj &&
|
sgworld.drawObj.end &&
|
sgworld.drawObj.end("cancel");
|
},
|
},
|
});
|
},
|
//地形压平
|
dxyp() {
|
this.$parent.$parent.$parent.closeAllHighLight("kjfx");
|
//收缩面板
|
this.close();
|
layuiLayer.close(SmartEarthPopupData.layerProp);
|
//结束之前操作
|
if (this.isOpen.dxyp) {
|
this.isOpen.dxyp = false;
|
sgworld.drawObj && sgworld.drawObj.end && sgworld.drawObj.end("cancel");
|
return;
|
}
|
//结束之前操作
|
// 清除选中,选中当前
|
this.clearSelected();
|
sgworld.drawObj &&
|
(sgworld.drawObj.drawHandler && sgworld.drawObj.drawHandler.destroy(),
|
sgworld.drawObj.end && sgworld.drawObj.end());
|
this.isOpen.dxyp = true;
|
|
layerOpen("地形压平", {
|
width: 350,
|
height: 120,
|
offset: ["60%", "10px"],
|
url: "./static/html/AnalysisTerrainFlattening.html",
|
fn: {
|
success: (layero, index) => {
|
SmartEarthPopupData.layerContainer = layero;
|
},
|
end: () => {
|
this.isOpen.dxyp = false;
|
},
|
cancel: () => {
|
sgworld.drawObj &&
|
sgworld.drawObj.end &&
|
sgworld.drawObj.end("cancel");
|
},
|
},
|
});
|
},
|
// 坡度分析
|
pdfx() {
|
this.$parent.$parent.$parent.closeAllHighLight("kjfx");
|
//收缩面板
|
this.close();
|
layuiLayer.close(SmartEarthPopupData.layerProp);
|
//结束之前操作
|
if (this.isOpen.pdfx) {
|
return;
|
}
|
//结束之前操作
|
// 清除选中,选中当前
|
this.clearSelected();
|
sgworld.drawObj &&
|
(sgworld.drawObj.drawHandler && sgworld.drawObj.drawHandler.destroy(),
|
sgworld.drawObj.end && sgworld.drawObj.end());
|
this.isOpen.pdfx = true;
|
|
layerOpen("坡度分析", {
|
width: 350,
|
height: 160,
|
offset: ["60%", "10px"],
|
url: "./static/html/AnalysisSlope.html",
|
fn: {
|
end: () => {
|
this.isOpen.pdfx = false;
|
},
|
cancel: () => {
|
sgworld.drawObj &&
|
sgworld.drawObj.end &&
|
sgworld.drawObj.end("cancel");
|
},
|
},
|
});
|
},
|
// 日照分析
|
rzfx() {
|
this.$parent.$parent.$parent.closeAllHighLight("kjfx");
|
//收缩面板
|
this.close();
|
layuiLayer.close(SmartEarthPopupData.layerProp);
|
//结束之前操作
|
if (this.isOpen.rzfx) {
|
this.isOpen.rzfx = false;
|
sgworld.drawObj && sgworld.drawObj.end && sgworld.drawObj.end("cancel");
|
return;
|
}
|
|
//结束之前操作
|
// 清除选中,选中当前
|
this.clearSelected();
|
sgworld.drawObj &&
|
(sgworld.drawObj.drawHandler && sgworld.drawObj.drawHandler.destroy(),
|
sgworld.drawObj.end && sgworld.drawObj.end());
|
this.isOpen.rzfx = true;
|
|
layerOpen("日照分析", {
|
width: 350,
|
height: 350,
|
offset: ["60%", "10px"],
|
url: "./static/html/AnalysisSunshine.html",
|
fn: {
|
success(layero, index) {
|
SmartEarthPopupData.layerContainer = layero;
|
layero.find("iframe").height(520);
|
},
|
end: () => {
|
this.isOpen.rzfx = false;
|
},
|
cancel: () => {
|
sgworld.drawObj &&
|
sgworld.drawObj.end &&
|
sgworld.drawObj.end("cancel");
|
},
|
},
|
});
|
},
|
// 阴影分析
|
yyfx() {
|
this.$parent.$parent.$parent.closeAllHighLight("kjfx");
|
//收缩面板
|
this.close();
|
layuiLayer.close(SmartEarthPopupData.layerProp);
|
//结束之前操作
|
if (this.isOpen.yyfx) {
|
return;
|
}
|
//结束之前操作
|
// 清除选中,选中当前
|
this.clearSelected();
|
clearnViewshed();
|
|
sgworld.drawObj &&
|
(sgworld.drawObj.drawHandler && sgworld.drawObj.drawHandler.destroy(),
|
sgworld.drawObj.end && sgworld.drawObj.end());
|
this.isOpen.yyfx = true;
|
|
let currentTime = Viewer.clock.currentTime.clone();
|
let startTime = Viewer.clock.startTime.clone();
|
let stopTime = Viewer.clock.stopTime.clone();
|
let multiplier = Viewer.clock.multiplier;
|
layerOpen("阴影分析", {
|
width: 350,
|
height: 333,
|
offset: ["60%", "10px"],
|
url: "./static/html/AnalysisShadow.html",
|
fn: {
|
end: () => {
|
Viewer.clock.currentTime = currentTime;
|
Viewer.clock.startTime = startTime;
|
Viewer.clock.stopTime = stopTime;
|
Viewer.clock.multiplier = multiplier;
|
Viewer.shadows = false;
|
this.isOpen.yyfx = false;
|
},
|
success(layero, index) {
|
layero.find("iframe").height(520);
|
},
|
cancel: () => {
|
sgworld.drawObj &&
|
sgworld.drawObj.end &&
|
sgworld.drawObj.end("cancel");
|
},
|
},
|
});
|
},
|
// 模型压平
|
mxyp() {
|
this.$parent.$parent.$parent.closeAllHighLight("kjfx");
|
//收缩面板
|
this.close();
|
layuiLayer.close(SmartEarthPopupData.layerProp);
|
//结束之前操作
|
if (this.isOpen.mxyp) {
|
this.isOpen.mxyp = false;
|
sgworld.drawObj && sgworld.drawObj.end && sgworld.drawObj.end("cancel");
|
return;
|
}
|
|
//结束之前操作
|
// 清除选中,选中当前
|
this.clearSelected();
|
layuiLayer.close(SmartEarthPopupData.layerProp);
|
sgworld.drawObj &&
|
(sgworld.drawObj.drawHandler && sgworld.drawObj.drawHandler.destroy(),
|
sgworld.drawObj.end && sgworld.drawObj.end());
|
|
this.isOpen.mxyp = true;
|
|
layerOpen("模型压平", {
|
width: 350,
|
height: 120,
|
offset: ["60%", "10px"],
|
url: "./static/html/AnalysisModelFlattening.html",
|
fn: {
|
success: (layero, index) => {
|
SmartEarthPopupData.layerContainer = layero;
|
},
|
end: () => {
|
// ClearAllClippingPlanes();
|
this.isOpen.mxyp = false;
|
},
|
cancel: () => {
|
sgworld.drawObj &&
|
sgworld.drawObj.end &&
|
sgworld.drawObj.end("cancel");
|
},
|
},
|
});
|
},
|
// 清除所有选中状态
|
clearSelected() {
|
for (var i in this.isOpen) {
|
this.isOpen[i] = false;
|
}
|
},
|
|
/*
|
特效
|
*/
|
// yhadd
|
closeJm() {
|
this.$parent.$parent.$parent.isShowSpeEffect = false;
|
},
|
// 清除添加的高亮样式
|
clearActive() {
|
for (var item in this.isOpen) {
|
this.isOpen[item] = false;
|
}
|
},
|
// yhadd
|
//雨雪雾
|
yu(type) {
|
this.passSta();
|
if (type === "checkbox") {
|
if (this.checkedYu) {
|
!this.value1 && (this.value1 = 20);
|
} else {
|
this.value1 = 0;
|
}
|
}
|
if (!this.value1) {
|
sgworld.Analysis.createWeather("rain", false);
|
} else {
|
var rainValue = {
|
test1: this.value1 / 10,
|
test2: 0.3,
|
test3: -0.4,
|
test4: 1.0,
|
};
|
sgworld.Analysis.createWeather("rain", true, rainValue);
|
}
|
},
|
xue(type) {
|
this.passSta();
|
if (type === "checkbox") {
|
if (this.checkedXue) {
|
!this.value2 && (this.value2 = 20);
|
} else {
|
this.value2 = 0;
|
}
|
}
|
if (!this.value2) {
|
sgworld.Analysis.createWeather("snow", false);
|
} else {
|
var snowValue = {
|
test1: this.value2 / 10,
|
test2: 1.0,
|
test3: 0.5,
|
test4: 0.5,
|
};
|
sgworld.Analysis.createWeather("snow", true, snowValue);
|
}
|
},
|
wu(type) {
|
this.passSta();
|
if (type === "checkbox") {
|
if (this.checkedWu) {
|
!this.value3 && (this.value3 = 20);
|
} else {
|
this.value3 = 0;
|
}
|
}
|
if (!this.value3) {
|
sgworld.Analysis.createWeather("fog", false);
|
} else {
|
var fogValue = {
|
distance: 5050 - this.value3 * 50.3,
|
color: "rgba(255,255,255,0.9)",
|
};
|
sgworld.Analysis.createWeather("fog", true, fogValue);
|
}
|
},
|
//流场
|
liuchang(value) {
|
//结束之前操作
|
layuiLayer.close(SmartEarthPopupData.layerProp);
|
sgworld.drawObj &&
|
(sgworld.drawObj.drawHandler && sgworld.drawObj.drawHandler.destroy(),
|
sgworld.drawObj.end && sgworld.drawObj.end());
|
|
if (value) {
|
liuchang = sgworld.Creator.createWindField("./static/json/wind.json", {
|
color: "random",
|
num: value * 10,
|
});
|
liuchang.WindFieldOption.color = "random";
|
} else {
|
liuchang && liuchang.destroy();
|
liuchang = undefined;
|
}
|
},
|
//风场
|
fengchang(value) {
|
//结束之前操作
|
layuiLayer.close(SmartEarthPopupData.layerProp);
|
sgworld.drawObj &&
|
(sgworld.drawObj.drawHandler && sgworld.drawObj.drawHandler.destroy(),
|
sgworld.drawObj.end && sgworld.drawObj.end());
|
|
if (value) {
|
fengchang = sgworld.Creator.createWindField("./static/json/wind.json", {
|
num: value * 15,
|
});
|
} else {
|
fengchang && fengchang.destroy();
|
fengchang = undefined;
|
}
|
},
|
//修改
|
gb() {
|
this.passSta();
|
if (!this.checkedLc) {
|
this.liuchang(0);
|
} else {
|
this.liuchang(20);
|
}
|
if (!this.checkedFc) {
|
this.fengchang(0);
|
} else {
|
this.fengchang(20);
|
}
|
},
|
//火焰
|
flame() {
|
this.$parent.$parent.$parent.closeAllHighLight("tx");
|
layuiLayer.close(SmartEarthPopupData.layerProp);
|
if (this.isOpen["flame"]) {
|
this.isOpen["flame"] = false;
|
this.passSta();
|
sgworld.drawObj && sgworld.drawObj.end && sgworld.drawObj.end("cancel");
|
return;
|
}
|
// 清除所有的高亮状态
|
this.clearActive();
|
//结束之前操作
|
|
sgworld.drawObj &&
|
(sgworld.drawObj.drawHandler && sgworld.drawObj.drawHandler.destroy(),
|
sgworld.drawObj.end && sgworld.drawObj.end());
|
|
this.isOpen["flame"] = true;
|
this.passSta();
|
let tooltip = sgworld.Core.CreateTooltip();
|
particleHandel && particleHandel.destroy();
|
sgworld._core.mouse(
|
Viewer.container,
|
1,
|
window.SmartEarthRootUrl + "Workers/image/cursor/draw.cur"
|
);
|
particleHandel = sgworld.AttachEvent("OnLButtonClk", (x, y, movement) => {
|
particleHandel.destroy();
|
tooltip.show(false);
|
sgworld._core.mouse(Viewer.container, 0);
|
this.isOpen["flame"] = false;
|
|
var degrees = sgworld.Navigate.getMouseDegrees(movement);
|
sgworld.Analysis.createParticleEffect(
|
"flame",
|
{
|
x: degrees.lon,
|
y: degrees.lat,
|
z: degrees.height,
|
},
|
{
|
translation: Cesium.Cartesian3.fromElements(0, 0, 0), //平移
|
},
|
function (data) {}
|
);
|
});
|
particleHandel.setInputAction((event) => {
|
tooltip.showAt(event.endPosition, "点击绘制火焰");
|
}, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
|
sgworld.drawObj = {
|
drawHandler: particleHandel,
|
end: function () {
|
sgworld._core.mouse(Viewer.container, 0);
|
tooltip.show(false);
|
particleHandel && particleHandel.destroy();
|
},
|
};
|
},
|
//烟雾
|
smog() {
|
this.$parent.$parent.$parent.closeAllHighLight("tx");
|
layuiLayer.close(SmartEarthPopupData.layerProp);
|
if (this.isOpen["smog"]) {
|
this.isOpen["smog"] = false;
|
this.passSta();
|
sgworld.drawObj && sgworld.drawObj.end && sgworld.drawObj.end("cancel");
|
return;
|
}
|
// 清除所有的高亮状态
|
this.clearActive();
|
//结束之前操作
|
|
sgworld.drawObj &&
|
(sgworld.drawObj.drawHandler && sgworld.drawObj.drawHandler.destroy(),
|
sgworld.drawObj.end && sgworld.drawObj.end());
|
|
this.isOpen["smog"] = true;
|
this.passSta();
|
let tooltip = sgworld.Core.CreateTooltip();
|
particleHandel && particleHandel.destroy();
|
|
sgworld._core.mouse(
|
Viewer.container,
|
1,
|
window.SmartEarthRootUrl + "Workers/image/cursor/draw.cur"
|
);
|
|
particleHandel = sgworld.AttachEvent("OnLButtonClk", (x, y, movement) => {
|
particleHandel.destroy();
|
tooltip.show(false);
|
sgworld._core.mouse(Viewer.container, 0);
|
|
this.isOpen["smog"] = false;
|
var degrees = sgworld.Navigate.getMouseDegrees(movement);
|
sgworld.Analysis.createParticleEffect(
|
"smog",
|
{
|
x: degrees.lon,
|
y: degrees.lat,
|
z: degrees.height,
|
},
|
{
|
translation: Cesium.Cartesian3.fromElements(0, 0, 0), //平移
|
},
|
function (data) {}
|
);
|
});
|
particleHandel.setInputAction((event) => {
|
tooltip.showAt(event.endPosition, "点击绘制烟雾");
|
}, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
|
sgworld.drawObj = {
|
drawHandler: particleHandel,
|
end: function () {
|
sgworld._core.mouse(Viewer.container, 0);
|
tooltip.show(false);
|
particleHandel && particleHandel.destroy();
|
},
|
};
|
},
|
//喷泉
|
fountain() {
|
this.$parent.$parent.$parent.closeAllHighLight("tx");
|
layuiLayer.close(SmartEarthPopupData.layerProp);
|
if (this.isOpen["fountain"]) {
|
this.isOpen["fountain"] = false;
|
this.passSta();
|
sgworld.drawObj && sgworld.drawObj.end && sgworld.drawObj.end("cancel");
|
return;
|
}
|
|
// 清除所有的高亮状态
|
this.clearActive();
|
//结束之前操作
|
|
sgworld.drawObj &&
|
(sgworld.drawObj.drawHandler && sgworld.drawObj.drawHandler.destroy(),
|
sgworld.drawObj.end && sgworld.drawObj.end());
|
|
this.isOpen["fountain"] = true;
|
this.passSta();
|
let tooltip = sgworld.Core.CreateTooltip();
|
particleHandel && particleHandel.destroy();
|
sgworld._core.mouse(
|
Viewer.container,
|
1,
|
window.SmartEarthRootUrl + "Workers/image/cursor/draw.cur"
|
);
|
|
particleHandel = sgworld.AttachEvent("OnLButtonClk", (x, y, movement) => {
|
particleHandel.destroy();
|
tooltip.show(false);
|
sgworld._core.mouse(Viewer.container, 0);
|
this.isOpen["fountain"] = false;
|
|
var degrees = sgworld.Navigate.getMouseDegrees(movement);
|
sgworld.Analysis.createParticleEffect(
|
"fountain",
|
{
|
x: degrees.lon,
|
y: degrees.lat,
|
z: degrees.height,
|
},
|
{
|
translation: Cesium.Cartesian3.fromElements(0, 0, 0), //平移
|
},
|
function (data) {}
|
);
|
});
|
particleHandel.setInputAction((event) => {
|
tooltip.showAt(event.endPosition, "点击绘制喷泉");
|
}, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
|
sgworld.drawObj = {
|
drawHandler: particleHandel,
|
end: function () {
|
sgworld._core.mouse(Viewer.container, 0);
|
tooltip.show(false);
|
particleHandel && particleHandel.destroy();
|
},
|
};
|
},
|
//烟花
|
fireworks() {
|
this.$parent.$parent.$parent.closeAllHighLight("tx");
|
layuiLayer.close(SmartEarthPopupData.layerProp);
|
if (this.isOpen["fireworks"]) {
|
this.isOpen["fireworks"] = false;
|
this.passSta();
|
sgworld.drawObj && sgworld.drawObj.end && sgworld.drawObj.end("cancel");
|
return;
|
}
|
// 清除所有的高亮状态
|
this.clearActive();
|
//结束之前操作
|
|
sgworld.drawObj &&
|
(sgworld.drawObj.drawHandler && sgworld.drawObj.drawHandler.destroy(),
|
sgworld.drawObj.end && sgworld.drawObj.end());
|
|
this.isOpen["fireworks"] = true;
|
this.passSta();
|
let tooltip = sgworld.Core.CreateTooltip();
|
particleHandel && particleHandel.destroy();
|
sgworld._core.mouse(
|
Viewer.container,
|
1,
|
window.SmartEarthRootUrl + "Workers/image/cursor/draw.cur"
|
);
|
|
particleHandel = sgworld.AttachEvent("OnLButtonClk", (x, y, movement) => {
|
particleHandel.destroy();
|
tooltip.show(false);
|
sgworld._core.mouse(Viewer.container, 0);
|
this.isOpen["fireworks"] = false;
|
|
var degrees = sgworld.Navigate.getMouseDegrees(movement);
|
sgworld.Analysis.createParticleEffect(
|
"fireworks",
|
{
|
x: degrees.lon,
|
y: degrees.lat,
|
z: degrees.height,
|
},
|
{},
|
function (data) {}
|
);
|
});
|
particleHandel.setInputAction((event) => {
|
tooltip.showAt(event.endPosition, "点击绘制烟花");
|
}, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
|
sgworld.drawObj = {
|
drawHandler: particleHandel,
|
end: function () {
|
sgworld._core.mouse(Viewer.container, 0);
|
tooltip.show(false);
|
particleHandel && particleHandel.destroy();
|
},
|
};
|
},
|
//清除特效
|
clearTX() {
|
//收缩面板
|
this.close();
|
|
let type = ["fireworks", "fountain", "flame", "smog"];
|
type.forEach((item) => {
|
sgworld.Analysis.removeParticleEffect(item);
|
});
|
particleHandel && particleHandel.destroy();
|
|
TrailLine.forEach((item) => {
|
item.clear();
|
});
|
TrailLine = [];
|
|
KS.forEach((item) => {
|
item.remove();
|
});
|
KS = [];
|
|
LD.forEach((item) => {
|
item.deleteObject();
|
});
|
LD = [];
|
|
linkData.forEach((item) => {
|
Viewer.entities.remove(item.item);
|
});
|
},
|
//流动线
|
TrailLine_Line() {
|
this.$parent.$parent.$parent.closeAllHighLight("tx");
|
layuiLayer.close(SmartEarthPopupData.layerProp);
|
if (this.isOpen["TrailLine_Line"]) {
|
this.isOpen["TrailLine_Line"] = false;
|
this.passSta();
|
sgworld.drawObj && sgworld.drawObj.end && sgworld.drawObj.end("cancel");
|
return;
|
}
|
// 清除所有的高亮状态
|
this.clearActive();
|
|
//结束之前操作
|
|
sgworld.drawObj &&
|
(sgworld.drawObj.drawHandler && sgworld.drawObj.drawHandler.destroy(),
|
sgworld.drawObj.end && sgworld.drawObj.end());
|
|
this.isOpen["TrailLine_Line"] = true;
|
this.passSta();
|
sgworld.drawObj = sgworld.Creator.createSimpleGraphic(
|
"polyline",
|
{ clampToGround: true },
|
(entity) => {
|
sgworld.drawObj = undefined;
|
this.isOpen["TrailLine_Line"] = false;
|
if (entity) {
|
let _TrailLine = sgworld.Creator.createTrailLine(
|
entity.polyline.positions.getValue(),
|
{
|
//time: 3000, //时间(可选)
|
width: 5, //线宽(可选)
|
color: "#0000ff", //线颜色(可选)
|
//url: 'http://36.7.136.132:1988/sdkdemo/src/static/image/TrailLine.png', //渐变图片链接(可选)
|
clampToGround: true, //是否贴地(可选)
|
}
|
);
|
sgworld.Creator.SimpleGraphic.remove(entity.id);
|
TrailLine.push(_TrailLine);
|
}
|
}
|
);
|
},
|
//流动墙
|
TrailLine_Wall() {
|
this.$parent.$parent.$parent.closeAllHighLight("tx");
|
layuiLayer.close(SmartEarthPopupData.layerProp);
|
if (this.isOpen["TrailLine_Wall"]) {
|
this.isOpen["TrailLine_Wall"] = false;
|
this.passSta();
|
sgworld.drawObj && sgworld.drawObj.end && sgworld.drawObj.end("cancel");
|
return;
|
}
|
// 清除所有的高亮状态
|
this.clearActive();
|
// 根据当前的高亮状态,决定当前操作是否要显示高亮
|
|
//结束之前操作
|
|
sgworld.drawObj &&
|
(sgworld.drawObj.drawHandler && sgworld.drawObj.drawHandler.destroy(),
|
sgworld.drawObj.end && sgworld.drawObj.end());
|
|
this.isOpen["TrailLine_Wall"] = true;
|
this.passSta();
|
sgworld.drawObj = sgworld.Creator.createSimpleGraphic(
|
"polyline",
|
{ clampToGround: true },
|
(entity) => {
|
sgworld.drawObj = undefined;
|
this.isOpen["TrailLine_Wall"] = false;
|
if (entity) {
|
let positions = entity.polyline.positions.getValue();
|
addWall(positions, [entity]);
|
|
sgworld.Creator.SimpleGraphic.remove(entity.id);
|
}
|
}
|
);
|
async function addWall(positions, objectsToExclude) {
|
let LineInterpolation = sgworld.Core.LineInterpolation(Viewer, {
|
positions: positions,
|
num: 50,
|
getHeight: true,
|
});
|
let min = LineInterpolation.height;
|
let max = min.map((item) => {
|
return item + 50;
|
});
|
|
let _TrailLine = sgworld.Creator.createTrailLineWall(
|
LineInterpolation.positions,
|
{
|
maximumHeights: max,
|
minimumHeights: Array(max.length).fill(0),
|
color: "#ffffff", //线颜色(可选)
|
url: SmartEarthRootUrl + "Workers/image/colors.png",
|
}
|
);
|
TrailLine.push(_TrailLine);
|
}
|
},
|
//链路
|
link() {
|
this.$parent.$parent.$parent.closeAllHighLight("tx");
|
layuiLayer.close(SmartEarthPopupData.layerProp);
|
if (this.isOpen["link"]) {
|
this.isOpen["link"] = false;
|
this.passSta();
|
sgworld.drawObj && sgworld.drawObj.end && sgworld.drawObj.end("cancel");
|
return;
|
}
|
// 清除所有的高亮状态
|
this.clearActive();
|
|
//结束之前操作
|
|
sgworld.drawObj &&
|
(sgworld.drawObj.drawHandler && sgworld.drawObj.drawHandler.destroy(),
|
sgworld.drawObj.end && sgworld.drawObj.end());
|
|
this.isOpen["link"] = true;
|
this.passSta();
|
let _linkData = (sgworld.drawObj = sgworld.Creator.createLinkPros(() => {
|
this.isOpen["link"] = false;
|
}));
|
linkData.push(_linkData);
|
},
|
//
|
smx() {
|
this.$parent.$parent.$parent.closeAllHighLight("tx");
|
layuiLayer.close(SmartEarthPopupData.layerProp);
|
if (this.isOpen["smx"]) {
|
this.isOpen["smx"] = false;
|
this.passSta();
|
sgworld.drawObj && sgworld.drawObj.end && sgworld.drawObj.end("cancel");
|
return;
|
}
|
// 清除所有的高亮状态
|
this.clearActive();
|
//结束之前操作
|
|
sgworld.drawObj &&
|
(sgworld.drawObj.drawHandler && sgworld.drawObj.drawHandler.destroy(),
|
sgworld.drawObj.end && sgworld.drawObj.end());
|
|
this.isOpen["smx"] = true;
|
this.passSta();
|
sgworld.drawObj = sgworld.Creator.createSimpleGraphic(
|
"circle",
|
{ color: "rgba(0,0,255,0.6)" },
|
(entity) => {
|
sgworld.drawObj = undefined;
|
this.isOpen["smx"] = false;
|
if (entity) {
|
let circle = sgworld.Analysis.createRadarScan(
|
sgworld.Core.toDegrees(entity.position.getValue()),
|
entity.ellipse.semiMajorAxis.getValue(),
|
"#0000ff",
|
3000,
|
true
|
);
|
sgworld.Creator.SimpleGraphic.remove(entity.id);
|
KS.push(circle);
|
}
|
}
|
);
|
},
|
//扩散圆
|
ksy() {
|
this.$parent.$parent.$parent.closeAllHighLight("tx");
|
layuiLayer.close(SmartEarthPopupData.layerProp);
|
if (this.isOpen["ksy"]) {
|
this.isOpen["ksy"] = false;
|
this.passSta();
|
sgworld.drawObj && sgworld.drawObj.end && sgworld.drawObj.end("cancel");
|
return;
|
}
|
// 清除所有的高亮状态
|
this.clearActive();
|
|
//结束之前操作
|
|
sgworld.drawObj &&
|
(sgworld.drawObj.drawHandler && sgworld.drawObj.drawHandler.destroy(),
|
sgworld.drawObj.end && sgworld.drawObj.end());
|
|
this.isOpen["ksy"] = true;
|
this.passSta();
|
sgworld.drawObj = sgworld.Creator.createSimpleGraphic(
|
"circle",
|
{},
|
(entity) => {
|
sgworld.drawObj = undefined;
|
this.isOpen["ksy"] = false;
|
if (entity) {
|
let circle = sgworld.Analysis.createCircleScan(
|
sgworld.Core.toDegrees(entity.position.getValue()),
|
entity.ellipse.semiMajorAxis.getValue(),
|
"#00ff00",
|
3000,
|
true
|
);
|
sgworld.Creator.SimpleGraphic.remove(entity.id);
|
KS.push(circle);
|
}
|
}
|
);
|
},
|
//扩散圆
|
ksy2() {
|
this.$parent.$parent.$parent.closeAllHighLight("tx");
|
layuiLayer.close(SmartEarthPopupData.layerProp);
|
if (this.isOpen["ksy2"]) {
|
this.isOpen["ksy2"] = false;
|
this.passSta();
|
sgworld.drawObj && sgworld.drawObj.end && sgworld.drawObj.end("cancel");
|
return;
|
}
|
|
// 清除所有的高亮状态
|
this.clearActive();
|
//结束之前操作
|
|
sgworld.drawObj &&
|
(sgworld.drawObj.drawHandler && sgworld.drawObj.drawHandler.destroy(),
|
sgworld.drawObj.end && sgworld.drawObj.end());
|
|
this.isOpen["ksy2"] = true;
|
this.passSta();
|
sgworld.drawObj = sgworld.Creator.createSimpleGraphic(
|
"circle",
|
{ color: "rgba(255,0,0,0.6)" },
|
(entity) => {
|
sgworld.drawObj = undefined;
|
this.isOpen["ksy2"] = false;
|
if (entity) {
|
let circle = sgworld.Analysis.createCircleScan(
|
sgworld.Core.toDegrees(entity.position.getValue()),
|
entity.ellipse.semiMajorAxis.getValue(),
|
"#ff0000",
|
3000,
|
true
|
);
|
sgworld.Creator.SimpleGraphic.remove(entity.id);
|
KS.push(circle);
|
}
|
}
|
);
|
},
|
//扩散源
|
ksy_pro() {
|
this.$parent.$parent.$parent.closeAllHighLight("tx");
|
layuiLayer.close(SmartEarthPopupData.layerProp);
|
if (this.isOpen["ksy_pro"]) {
|
this.isOpen["ksy_pro"] = false;
|
this.passSta();
|
sgworld.drawObj && sgworld.drawObj.end && sgworld.drawObj.end("cancel");
|
return;
|
}
|
// 清除所有的高亮状态
|
this.clearActive();
|
|
//结束之前操作
|
|
sgworld.drawObj &&
|
(sgworld.drawObj.drawHandler && sgworld.drawObj.drawHandler.destroy(),
|
sgworld.drawObj.end && sgworld.drawObj.end());
|
|
this.isOpen["ksy_pro"] = true;
|
this.passSta();
|
sgworld.drawObj = sgworld.Creator.createSimpleGraphic(
|
"circle",
|
{ color: "rgba(255,0,0,0.6)" },
|
(entity) => {
|
sgworld.drawObj = undefined;
|
this.isOpen["ksy_pro"] = false;
|
if (entity) {
|
let circle = sgworld.Analysis.createMultiCircleScan(
|
sgworld.Core.toDegrees(entity.position.getValue()),
|
entity.ellipse.semiMajorAxis.getValue(),
|
"#ff0000",
|
3000,
|
true
|
);
|
sgworld.Creator.SimpleGraphic.remove(entity.id);
|
KS.push(circle);
|
}
|
}
|
);
|
},
|
//扇形扩散
|
sxks() {
|
this.$parent.$parent.$parent.closeAllHighLight("tx");
|
layuiLayer.close(SmartEarthPopupData.layerProp);
|
if (this.isOpen["sxks"]) {
|
this.isOpen["sxks"] = false;
|
this.passSta();
|
sgworld.drawObj && sgworld.drawObj.end && sgworld.drawObj.end("cancel");
|
return;
|
}
|
// 清除所有的高亮状态
|
this.clearActive();
|
//结束之前操作
|
|
sgworld.drawObj &&
|
(sgworld.drawObj.drawHandler && sgworld.drawObj.drawHandler.destroy(),
|
sgworld.drawObj.end && sgworld.drawObj.end());
|
|
this.isOpen["sxks"] = true;
|
this.passSta();
|
sgworld.drawObj = sgworld.Command.execute(
|
1,
|
7,
|
{
|
fillColor: Cesium.Color.RED.withAlpha(0.7),
|
},
|
(entity, data) => {
|
Viewer.entities.remove(entity);
|
this.isOpen["sxks"] = false;
|
|
if (entity) {
|
let sxksData = sgworld.Analysis.createSectorScan(
|
data.position,
|
data.distance,
|
"#ff0000",
|
60,
|
data.angle - 30,
|
true,
|
4000,
|
true
|
);
|
KS.push(sxksData);
|
}
|
}
|
);
|
},
|
//雷达扫描遮罩
|
ldsmzz() {
|
this.$parent.$parent.$parent.closeAllHighLight("tx");
|
layuiLayer.close(SmartEarthPopupData.layerProp);
|
if (this.isOpen["ldsmzz"]) {
|
this.isOpen["ldsmzz"] = false;
|
this.passSta();
|
sgworld.drawObj && sgworld.drawObj.end && sgworld.drawObj.end("cancel");
|
return;
|
}
|
// 清除所有的高亮状态
|
this.clearActive();
|
|
//结束之前操作
|
|
sgworld.drawObj &&
|
(sgworld.drawObj.drawHandler && sgworld.drawObj.drawHandler.destroy(),
|
sgworld.drawObj.end && sgworld.drawObj.end());
|
|
this.isOpen["ldsmzz"] = true;
|
this.passSta();
|
sgworld.drawObj = sgworld.Creator.createSimpleGraphic(
|
"circle",
|
{ color: "rgba(127,255,212,0.5)" },
|
(entity) => {
|
sgworld.drawObj = undefined;
|
this.isOpen["ldsmzz"] = false;
|
|
if (entity) {
|
let degrees = sgworld.Core.toDegrees(entity.position.getValue());
|
let position = [degrees.lon, degrees.lat, degrees.height];
|
let cylinder = {
|
radius: entity.ellipse.semiMajorAxis.getValue(), //半径
|
angle: 30, //扫描角度(可选)
|
speed: 5, //倍速(可选)
|
stackPartitions: 80, //横向网格数(可选)
|
slicePartitions: 80, //纵向网格数(可选)
|
//color: 'rgba(255,255,255,0.5)', //球颜色(可选)
|
//outlineColor: 'rgba(255,255,255,0.5)', //球边框线颜色(可选)
|
wallColor: "rgba(255,255,255,0)", //扫描墙颜色(可选)
|
//wallOutlineColor: 'rgba(255,0,0,0.5)', //扫描墙颜色(可选)
|
//surfaceColor: 'rgba(255,0,0,0.5)', //扫描夹角颜色(可选)
|
};
|
let ldData = sgworld.Creator.createRectangularSensor(
|
position,
|
cylinder
|
);
|
sgworld.Creator.SimpleGraphic.remove(entity.id);
|
LD.push(ldData);
|
}
|
}
|
);
|
},
|
//动态卫星正射
|
dtwxzs() {
|
this.$parent.$parent.$parent.closeAllHighLight("tx");
|
layuiLayer.close(SmartEarthPopupData.layerProp);
|
if (this.isOpen["dtwxzs"]) {
|
this.isOpen["dtwxzs"] = false;
|
this.passSta();
|
sgworld.drawObj && sgworld.drawObj.end && sgworld.drawObj.end("cancel");
|
return;
|
}
|
// 清除所有的高亮状态
|
this.clearActive();
|
|
//结束之前操作
|
sgworld.drawObj &&
|
(sgworld.drawObj.drawHandler && sgworld.drawObj.drawHandler.destroy(),
|
sgworld.drawObj.end && sgworld.drawObj.end());
|
|
this.isOpen["dtwxzs"] = true;
|
this.passSta();
|
let tooltip = sgworld.Core.CreateTooltip();
|
particleHandel && particleHandel.destroy();
|
particleHandel = sgworld.AttachEvent("OnLButtonClk", (x, y, movement) => {
|
particleHandel.destroy();
|
tooltip.show(false);
|
this.isOpen["dtwxzs"] = false;
|
|
let degrees = sgworld.Navigate.getMouseDegrees(movement);
|
let position = [degrees.lon, degrees.lat, 700000];
|
let dtwxzsData = sgworld.Creator.createConeRadar(position, {
|
color: "#7b9ef7",
|
radius: 200000,
|
});
|
let weixin = sgworld.Creator.createModel(
|
position,
|
"./static/gltf/weixin.gltf",
|
{ scale: 15 },
|
"0",
|
"卫星"
|
);
|
LD.push(dtwxzsData, weixin);
|
});
|
particleHandel.setInputAction((event) => {
|
tooltip.showAt(event.endPosition, "点击选择卫星正射中心");
|
}, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
|
sgworld.drawObj = {
|
drawHandler: particleHandel,
|
end: function () {
|
sgworld._core.mouse(Viewer.container, 0);
|
tooltip.show(false);
|
particleHandel && particleHandel.destroy();
|
},
|
};
|
},
|
//场景颜色
|
scene() {
|
this.$parent.$parent.$parent.closeAllHighLight("tx");
|
layuiLayer.close(SmartEarthPopupData.layerProp);
|
if (this.isOpen["scene"]) {
|
this.isOpen["scene"] = false;
|
this.passSta();
|
return;
|
}
|
// 清除所有的高亮状态
|
this.clearActive();
|
|
//结束之前操作
|
sgworld.drawObj &&
|
(sgworld.drawObj.drawHandler && sgworld.drawObj.drawHandler.destroy(),
|
sgworld.drawObj.end && sgworld.drawObj.end());
|
// 根据当前的高亮状态,决定当前操作是否要显示高亮
|
this.isOpen["scene"] = true;
|
this.passSta();
|
//二级菜单
|
layerOpen("场景", {
|
width: 415,
|
height: 400,
|
url: "./static/html/scene.html",
|
fn: {
|
end: () => {
|
this.isOpen["scene"] = false;
|
},
|
},
|
});
|
},
|
close() {
|
//弹出框收缩按钮
|
// this.$parent.tx = false;
|
var sta =
|
this.isDxms ||
|
this.isQqwg ||
|
this.isYyms ||
|
this.checkedLc ||
|
this.checkedFc ||
|
this.checkedYu ||
|
this.checkedXue ||
|
this.checkedWu;
|
this.$parent.$parent.$parent.isShowSpeEffect = false;
|
if (sta) {
|
this.$parent.$parent.$parent.speEffectImgSta = true;
|
} else {
|
this.$parent.$parent.$parent.speEffectImgSta = false;
|
}
|
},
|
passSta() {
|
var sta =
|
this.isDxms ||
|
this.isQqwg ||
|
this.isYyms ||
|
this.checkedLc ||
|
this.checkedFc ||
|
this.checkedYu ||
|
this.checkedXue ||
|
this.checkedWu;
|
// for (var key in this.isOpen) {
|
// if (this.isOpen[key] == true) {
|
// sta = true;
|
// break;
|
// }
|
// }
|
if (sta) {
|
this.$parent.$parent.$parent.speEffectImgSta = true;
|
// this.$parent.$parent.$parent.sceneImgSta = true;
|
} else {
|
this.$parent.$parent.$parent.speEffectImgSta = false;
|
// this.$parent.$parent.$parent.sceneImgSta = false;
|
}
|
},
|
},
|
};
|
</script>
|
|
|
<style scoped>
|
/* 空间分析 */
|
.kjfx {
|
width: 320px;
|
height: 100%;
|
/* max-height: 360px; */
|
overflow-y: auto;
|
overflow-x: hidden;
|
/* margin: 20px 0; */
|
}
|
|
.kjfx ul li {
|
color: white;
|
}
|
|
.kjfx span {
|
font-size: 16px;
|
margin-top: 13px;
|
display: block;
|
width: 100px;
|
float: right;
|
}
|
/* yhadd */
|
.el-checkbox {
|
color: white;
|
}
|
.el-checkbox /deep/ .el-checkbox__label {
|
font-size: 16px;
|
}
|
.closeBtn {
|
color: white;
|
position: relative;
|
height: 21px;
|
line-height: 21px;
|
font-size: 17px;
|
padding-left: 10px;
|
}
|
.closeSpan {
|
position: absolute;
|
font-size: 30px;
|
right: 0;
|
color: white;
|
transition: 1s;
|
right: 40px;
|
}
|
.closeSpan:hover {
|
cursor: pointer;
|
transform: rotateZ(90deg);
|
}
|
.active {
|
background: rgba(0, 168, 255, 0.16);
|
}
|
li:hover {
|
background: rgba(0, 168, 255, 0.16);
|
}
|
/* yhadd */
|
|
.tx-bottom ul li {
|
color: white;
|
font-size: 16px;
|
}
|
.tx-bottom ul li span {
|
color: white;
|
font-size: 16px;
|
margin-top: 13px;
|
display: block;
|
width: 108px;
|
float: right;
|
}
|
.tx {
|
/* width: 100%;
|
height: 100%; */
|
width: 320px;
|
max-height: 280px;
|
overflow-y: auto;
|
overflow-x: hidden;
|
margin-right: 40px;
|
}
|
.tx::-webkit-scrollbar {
|
/*滚动条整体样式*/
|
width: 4px;
|
/*高宽分别对应横竖滚动条的尺寸*/
|
height: 8px;
|
scrollbar-arrow-color: red;
|
}
|
|
.tx::-webkit-scrollbar-thumb {
|
border-radius: 5px;
|
-webkit-box-shadow: inset 0 0 5px rgba(218, 218, 218, 0.2);
|
box-shadow: inset 0 0 5px rgba(218, 218, 218, 0.2);
|
background: rgba(218, 218, 218, 0.5);
|
scrollbar-arrow-color: red;
|
}
|
|
.tx::-webkit-scrollbar-track {
|
-webkit-box-shadow: inset 0 0 5px rgba(218, 218, 218, 0.2);
|
box-shadow: inset 0 0 5px rgba(218, 218, 218, 0.2);
|
border-radius: 0;
|
background: rgba(218, 218, 218, 0.1);
|
}
|
.left-function {
|
margin-top: 8px;
|
margin-left: 8px;
|
margin-bottom: 8px;
|
cursor: pointer;
|
}
|
.tx-top {
|
color: white;
|
padding: 0 10px;
|
height: 48px;
|
line-height: 48px;
|
}
|
hr {
|
width: 92%;
|
}
|
.firhr {
|
width: 114%;
|
margin: 11px 0;
|
margin-left: -14px;
|
}
|
.in-yxw {
|
width: 185px;
|
margin-right: 20px;
|
display: inline-block;
|
}
|
.slider {
|
width: 50px;
|
}
|
.y {
|
float: left;
|
top: 8px;
|
}
|
.check {
|
float: unset;
|
margin: 3px 0;
|
}
|
.sl {
|
margin-left: 60px;
|
}
|
.tx-in {
|
padding: 0 10px;
|
}
|
.bottom-tol1 {
|
margin-top: 5px;
|
margin-left: 15px;
|
width: 110px;
|
display: inline-block;
|
border-right: 1px solid #a0a0a0;
|
vertical-align: top;
|
}
|
.bottom-tol2 {
|
margin-top: 5px;
|
margin-left: 15px;
|
width: 130px;
|
display: inline-block;
|
border-right: 1px solid #a0a0a0;
|
vertical-align: top;
|
}
|
.bottom-tol3 {
|
margin-top: 5px;
|
margin-left: 15px;
|
width: 130px;
|
display: inline-block;
|
vertical-align: top;
|
}
|
li {
|
cursor: pointer;
|
}
|
/* .left-ssan {
|
position: absolute;
|
bottom: 0;
|
right: 0;
|
cursor: pointer;
|
} */
|
.cjms a {
|
text-decoration: none;
|
color: #fff;
|
font-size: 16px;
|
display: block;
|
margin: 20px;
|
}
|
.cjms {
|
width: 320px;
|
/* height: 360px; */
|
}
|
.cjms-tol1 {
|
margin-top: 5px;
|
width: 100%;
|
}
|
.cjms-tol1 ul li {
|
color: white;
|
}
|
.cjms-tol1 span {
|
font-size: 16px;
|
margin-top: 13px;
|
display: block;
|
width: 85px;
|
float: right;
|
}
|
.labelText {
|
color: white;
|
display: block;
|
float: left;
|
padding-top: 6px;
|
}
|
</style>
|
|