|  | @@ -1,450 +0,0 @@
 | 
	
		
			
				|  |  | -<template>
 | 
	
		
			
				|  |  | -  <div class="ZTGlobal" style="width: 100%; padding: 1rem 1.1rem 0rem; color: white">
 | 
	
		
			
				|  |  | -    <el-row :gutter="10">
 | 
	
		
			
				|  |  | -      <el-col :span="24">
 | 
	
		
			
				|  |  | -        <div class="titleHeader">
 | 
	
		
			
				|  |  | -          <h3>参数设置</h3>
 | 
	
		
			
				|  |  | -        </div>
 | 
	
		
			
				|  |  | -      </el-col>
 | 
	
		
			
				|  |  | -    </el-row>
 | 
	
		
			
				|  |  | -    <el-row :gutter="10">
 | 
	
		
			
				|  |  | -      <el-col :span="24">
 | 
	
		
			
				|  |  | -        <el-row :gutter="10" style="display: flex; align-items: center">
 | 
	
		
			
				|  |  | -          <el-col :span="24">
 | 
	
		
			
				|  |  | -            日 期:
 | 
	
		
			
				|  |  | -            <el-date-picker size="mini" v-model="form.selDate" type="date" placeholder="选择日期">
 | 
	
		
			
				|  |  | -            </el-date-picker>
 | 
	
		
			
				|  |  | -          </el-col>
 | 
	
		
			
				|  |  | -        </el-row>
 | 
	
		
			
				|  |  | -        <el-row :gutter="10" style="display: flex; align-items: center">
 | 
	
		
			
				|  |  | -          <el-col :span="6"> 日照时间范围: </el-col>
 | 
	
		
			
				|  |  | -          <el-col :span="18">
 | 
	
		
			
				|  |  | -            <el-slider size="mini" v-model="datavalue" range :marks="marks" :max="24" @change="datavalueChange">
 | 
	
		
			
				|  |  | -            </el-slider>
 | 
	
		
			
				|  |  | -          </el-col>
 | 
	
		
			
				|  |  | -        </el-row>
 | 
	
		
			
				|  |  | -        <el-row :gutter="10">
 | 
	
		
			
				|  |  | -          <el-col :span="12">
 | 
	
		
			
				|  |  | -            时间间隔:
 | 
	
		
			
				|  |  | -            <el-input-number style="width: 50%" size="mini" v-model="form.timeInterval"></el-input-number>
 | 
	
		
			
				|  |  | -          </el-col>
 | 
	
		
			
				|  |  | -          <el-col :span="12">
 | 
	
		
			
				|  |  | -            间距(米):
 | 
	
		
			
				|  |  | -            <el-input-number style="width: 50%" size="mini" v-model="form.spacing"></el-input-number>
 | 
	
		
			
				|  |  | -          </el-col>
 | 
	
		
			
				|  |  | -        </el-row>
 | 
	
		
			
				|  |  | -        <el-row :gutter="10">
 | 
	
		
			
				|  |  | -          <el-col :span="24">
 | 
	
		
			
				|  |  | -            <div class="SaveCenter">
 | 
	
		
			
				|  |  | -              <el-button size="mini" type="primary" @click="statrSunlight">执行日照效果</el-button>
 | 
	
		
			
				|  |  | -              <el-button size="mini" type="primary" @click="dqSunlight">当前日照</el-button>
 | 
	
		
			
				|  |  | -            </div>
 | 
	
		
			
				|  |  | -          </el-col>
 | 
	
		
			
				|  |  | -        </el-row>
 | 
	
		
			
				|  |  | -        <el-divider></el-divider>
 | 
	
		
			
				|  |  | -        <el-row :gutter="10">
 | 
	
		
			
				|  |  | -          <el-col :span="12">
 | 
	
		
			
				|  |  | -            底部高程(米):
 | 
	
		
			
				|  |  | -            <el-input-number style="width: 50%" size="mini" v-model="form.bottomHeight"></el-input-number>
 | 
	
		
			
				|  |  | -          </el-col>
 | 
	
		
			
				|  |  | -          <el-col :span="12">
 | 
	
		
			
				|  |  | -            拉伸高度(米):
 | 
	
		
			
				|  |  | -            <el-input-number style="width: 50%" size="mini" v-model="form.extrudeHeight"></el-input-number>
 | 
	
		
			
				|  |  | -          </el-col>
 | 
	
		
			
				|  |  | -        </el-row>
 | 
	
		
			
				|  |  | -        <!-- <el-row :gutter="10">
 | 
	
		
			
				|  |  | -          <el-col :span="24">
 | 
	
		
			
				|  |  | -            阴影分析时日照时间案范围重合时为时刻阴影,不重合时计算为时间范围内阴影率
 | 
	
		
			
				|  |  | -          </el-col>
 | 
	
		
			
				|  |  | -        </el-row> -->
 | 
	
		
			
				|  |  | -      </el-col>
 | 
	
		
			
				|  |  | -    </el-row>
 | 
	
		
			
				|  |  | -    <div class="SaveCenter">
 | 
	
		
			
				|  |  | -      <el-button size="mini" type="primary" @click="onSubmit">日照时长</el-button>
 | 
	
		
			
				|  |  | -      <el-button size="mini" @click="resetForm">清除</el-button>
 | 
	
		
			
				|  |  | -    </div>
 | 
	
		
			
				|  |  | -    <div>
 | 
	
		
			
				|  |  | -        <el-form ref="form" :model="sunTimesForm" label-width="80px">
 | 
	
		
			
				|  |  | -          <el-form-item label="经度">
 | 
	
		
			
				|  |  | -            <el-input v-model="sunTimesForm.longitude" readonly="true"></el-input>
 | 
	
		
			
				|  |  | -          </el-form-item>
 | 
	
		
			
				|  |  | -          <el-form-item label="纬度">
 | 
	
		
			
				|  |  | -            <el-input v-model="sunTimesForm.latitude"  readonly="true"></el-input>
 | 
	
		
			
				|  |  | -          </el-form-item>
 | 
	
		
			
				|  |  | -          <el-form-item label="高度">
 | 
	
		
			
				|  |  | -            <el-input v-model="sunTimesForm.height"  readonly="true"></el-input>
 | 
	
		
			
				|  |  | -          </el-form-item>
 | 
	
		
			
				|  |  | -          <el-form-item label="日照率(%)">
 | 
	
		
			
				|  |  | -            <el-input  readonly="true">{{ (1- sunTimesForm.shadowRadio)*100}}</el-input>
 | 
	
		
			
				|  |  | -          </el-form-item>
 | 
	
		
			
				|  |  | -          <el-form-item label="日照时长(小时)">
 | 
	
		
			
				|  |  | -            <el-input v-model="sunTimesForm.sunTimes"  readonly="true"></el-input>
 | 
	
		
			
				|  |  | -          </el-form-item>
 | 
	
		
			
				|  |  | -        </el-form>
 | 
	
		
			
				|  |  | -    </div>>
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -  </div>
 | 
	
		
			
				|  |  | -</template>
 | 
	
		
			
				|  |  | -<script>
 | 
	
		
			
				|  |  | -let handlerPolygon = null,
 | 
	
		
			
				|  |  | -  layers = null,
 | 
	
		
			
				|  |  | -  shadowQuery = null;
 | 
	
		
			
				|  |  | -export default {
 | 
	
		
			
				|  |  | -  data() {
 | 
	
		
			
				|  |  | -    return {
 | 
	
		
			
				|  |  | -      tooltip: createTooltip(document.body),
 | 
	
		
			
				|  |  | -      form: {
 | 
	
		
			
				|  |  | -        timeInterval: 60,
 | 
	
		
			
				|  |  | -        spacing: 10,
 | 
	
		
			
				|  |  | -        selDate: new Date(),
 | 
	
		
			
				|  |  | -        startTime: 10,
 | 
	
		
			
				|  |  | -        endTime: 14,
 | 
	
		
			
				|  |  | -        bottomHeight: 0,
 | 
	
		
			
				|  |  | -        extrudeHeight: 100,
 | 
	
		
			
				|  |  | -      },
 | 
	
		
			
				|  |  | -      datavalue: [8, 18],
 | 
	
		
			
				|  |  | -      positions: [],
 | 
	
		
			
				|  |  | -      points: [],
 | 
	
		
			
				|  |  | -      // layers: null,
 | 
	
		
			
				|  |  | -      // shadowQuery: null,
 | 
	
		
			
				|  |  | -      marks: {
 | 
	
		
			
				|  |  | -        8: "8点",
 | 
	
		
			
				|  |  | -        12: {
 | 
	
		
			
				|  |  | -          style: {
 | 
	
		
			
				|  |  | -            color: "#1989FA",
 | 
	
		
			
				|  |  | -          },
 | 
	
		
			
				|  |  | -          label: this.$createElement("strong", "12点"),
 | 
	
		
			
				|  |  | -        },
 | 
	
		
			
				|  |  | -        20: "20点",
 | 
	
		
			
				|  |  | -      },
 | 
	
		
			
				|  |  | -      sunTimesForm: {
 | 
	
		
			
				|  |  | -        longitude:0.0,
 | 
	
		
			
				|  |  | -        latitude:0.0,
 | 
	
		
			
				|  |  | -        height:0.0,
 | 
	
		
			
				|  |  | -        shadowRadio:0.6,
 | 
	
		
			
				|  |  | -        sunTimes:(endTime-startTime)*(1-shadowRadio)
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -    };
 | 
	
		
			
				|  |  | -  },
 | 
	
		
			
				|  |  | -  props: {
 | 
	
		
			
				|  |  | -    info: {
 | 
	
		
			
				|  |  | -      type: Object,
 | 
	
		
			
				|  |  | -      default: () => {
 | 
	
		
			
				|  |  | -        return {};
 | 
	
		
			
				|  |  | -      },
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    layerid: {
 | 
	
		
			
				|  |  | -      type: String,
 | 
	
		
			
				|  |  | -      default: "",
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    lydata: {
 | 
	
		
			
				|  |  | -      type: Object,
 | 
	
		
			
				|  |  | -      default: () => {
 | 
	
		
			
				|  |  | -        return {};
 | 
	
		
			
				|  |  | -      },
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    lyoption: {
 | 
	
		
			
				|  |  | -      type: Object,
 | 
	
		
			
				|  |  | -      default: () => {
 | 
	
		
			
				|  |  | -        return {};
 | 
	
		
			
				|  |  | -      },
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -  },
 | 
	
		
			
				|  |  | -  computed: {},
 | 
	
		
			
				|  |  | -  mounted() {
 | 
	
		
			
				|  |  | -    this.init();
 | 
	
		
			
				|  |  | -  },
 | 
	
		
			
				|  |  | -  methods: {
 | 
	
		
			
				|  |  | -    init() {
 | 
	
		
			
				|  |  | -      if (layers) {
 | 
	
		
			
				|  |  | -        return;
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -      if (viewer.shadows == false) {
 | 
	
		
			
				|  |  | -        viewer.shadows = true; //开启场景阴影
 | 
	
		
			
				|  |  | -        viewer.terrainShadows = true; //地形阴影
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -      let scene = viewer.scene;
 | 
	
		
			
				|  |  | -      layers = scene.layers.layerQueue;
 | 
	
		
			
				|  |  | -      //图层模型设置阴影
 | 
	
		
			
				|  |  | -      for (let i = 0; i < layers.length; i++) {
 | 
	
		
			
				|  |  | -        if (layers[i].shadowType !== 2) {
 | 
	
		
			
				|  |  | -          layers[i].shadowType = 2;
 | 
	
		
			
				|  |  | -          // layers[i].refresh();
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -      //创建阴影查询对象
 | 
	
		
			
				|  |  | -      if (!shadowQuery) {
 | 
	
		
			
				|  |  | -        shadowQuery = new Cesium.ShadowQueryPoints(scene);
 | 
	
		
			
				|  |  | -        shadowQuery.build();
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -      let that = this;
 | 
	
		
			
				|  |  | -      //   this.setCurrentTime();
 | 
	
		
			
				|  |  | -      this.dqSunlight();
 | 
	
		
			
				|  |  | -      handlerPolygon = new Cesium.DrawHandler(
 | 
	
		
			
				|  |  | -        viewer,
 | 
	
		
			
				|  |  | -        Cesium.DrawMode.Polygon,
 | 
	
		
			
				|  |  | -        0
 | 
	
		
			
				|  |  | -      );
 | 
	
		
			
				|  |  | -      handlerPolygon.activeEvt.addEventListener(function (isActive) {
 | 
	
		
			
				|  |  | -        if (isActive == true) {
 | 
	
		
			
				|  |  | -          viewer.enableCursorStyle = false;
 | 
	
		
			
				|  |  | -          viewer._element.style.cursor = "";
 | 
	
		
			
				|  |  | -          document.body.classList.add("drawCur");
 | 
	
		
			
				|  |  | -        } else {
 | 
	
		
			
				|  |  | -          viewer.enableCursorStyle = true;
 | 
	
		
			
				|  |  | -          document.body.classList.remove("drawCur");
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -      });
 | 
	
		
			
				|  |  | -      handlerPolygon.movingEvt.addEventListener((windowPosition) => {
 | 
	
		
			
				|  |  | -        that.tooltip.showAt(
 | 
	
		
			
				|  |  | -          windowPosition,
 | 
	
		
			
				|  |  | -          "<p>点击鼠标左键开始绘制分析区域</p>"
 | 
	
		
			
				|  |  | -        );
 | 
	
		
			
				|  |  | -      });
 | 
	
		
			
				|  |  | -      handlerPolygon.drawEvt.addEventListener((result) => {
 | 
	
		
			
				|  |  | -        that.tooltip.setVisible(false);
 | 
	
		
			
				|  |  | -        let positions = that.positions;
 | 
	
		
			
				|  |  | -        let points = that.points;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        points.length = 0;
 | 
	
		
			
				|  |  | -        var polygon = result.object;
 | 
	
		
			
				|  |  | -        if (!polygon) {
 | 
	
		
			
				|  |  | -          return;
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        polygon.show = false;
 | 
	
		
			
				|  |  | -        handlerPolygon.polyline.show = false;
 | 
	
		
			
				|  |  | -        positions = [].concat(polygon.positions);
 | 
	
		
			
				|  |  | -        positions = Cesium.arrayRemoveDuplicates(
 | 
	
		
			
				|  |  | -          positions,
 | 
	
		
			
				|  |  | -          Cesium.Cartesian3.equalsEpsilon
 | 
	
		
			
				|  |  | -        );
 | 
	
		
			
				|  |  | -        //遍历多边形,取出所有点
 | 
	
		
			
				|  |  | -        for (var i = 0, len = positions.length; i < len; i++) {
 | 
	
		
			
				|  |  | -          //转化为经纬度,并加入至临时数组
 | 
	
		
			
				|  |  | -          var cartographic = Cesium.Cartographic.fromCartesian(
 | 
	
		
			
				|  |  | -            polygon.positions[i]
 | 
	
		
			
				|  |  | -          );
 | 
	
		
			
				|  |  | -          var longitude = Cesium.Math.toDegrees(cartographic.longitude);
 | 
	
		
			
				|  |  | -          var latitude = Cesium.Math.toDegrees(cartographic.latitude);
 | 
	
		
			
				|  |  | -          points.push(longitude);
 | 
	
		
			
				|  |  | -          points.push(latitude);
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        //设置分析对象的开始结束时间
 | 
	
		
			
				|  |  | -        var dateValue = that.form.selDate;
 | 
	
		
			
				|  |  | -        var st = new Date(dateValue);
 | 
	
		
			
				|  |  | -        st.setHours(Number(that.form.startTime));
 | 
	
		
			
				|  |  | -        shadowQuery.startTime = Cesium.JulianDate.fromDate(st);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        var et = new Date(dateValue);
 | 
	
		
			
				|  |  | -        et.setHours(Number(that.form.endTime));
 | 
	
		
			
				|  |  | -        shadowQuery.endTime = Cesium.JulianDate.fromDate(et);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        //设置当前时间
 | 
	
		
			
				|  |  | -        that.setCurrentTime();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        shadowQuery.spacing = that.form.spacing;
 | 
	
		
			
				|  |  | -        shadowQuery.timeInterval = that.form.timeInterval;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        //设置分析区域、底部高程和拉伸高度
 | 
	
		
			
				|  |  | -        var bh = Number(that.form.bottomHeight);
 | 
	
		
			
				|  |  | -        var eh = Number(that.form.extrudeHeight);
 | 
	
		
			
				|  |  | -        shadowQuery.qureyRegion({
 | 
	
		
			
				|  |  | -          position: points,
 | 
	
		
			
				|  |  | -          bottom: bh,
 | 
	
		
			
				|  |  | -          extend: eh,
 | 
	
		
			
				|  |  | -        });
 | 
	
		
			
				|  |  | -        shadowQuery.build();
 | 
	
		
			
				|  |  | -      });
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    //提交数据
 | 
	
		
			
				|  |  | -    onSubmit() {
 | 
	
		
			
				|  |  | -      this.analysis();
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    //清空from
 | 
	
		
			
				|  |  | -    resetForm() {
 | 
	
		
			
				|  |  | -      this.clear();
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    /**
 | 
	
		
			
				|  |  | -     * 开始分析
 | 
	
		
			
				|  |  | -     */
 | 
	
		
			
				|  |  | -    analysis() {
 | 
	
		
			
				|  |  | -      // this.init();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -      handlerPolygon = null;
 | 
	
		
			
				|  |  | -      handlerPolygon = r = new Cesium.ScreenSpaceEventHandler(scene.canvas);
 | 
	
		
			
				|  |  | -      handlerPolygon.setInputAction(function (e) {
 | 
	
		
			
				|  |  | -        var position1 = scene.pickPosition(e.position);
 | 
	
		
			
				|  |  | -        var cartographic = Cesium.Cartographic.fromCartesian(position1);
 | 
	
		
			
				|  |  | -        var shadowRadio = shadowQuery.getShadowRadio(cartographic);
 | 
	
		
			
				|  |  | -        var longitude = Cesium.Math.toDegrees(cartographic.longitude);
 | 
	
		
			
				|  |  | -        var latitude = Cesium.Math.toDegrees(cartographic.latitude);
 | 
	
		
			
				|  |  | -        var height = cartographic.height;
 | 
	
		
			
				|  |  | -        if (shadowRadio != -1) {
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -      })
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    clear() {
 | 
	
		
			
				|  |  | -      if (handlerPolygon) {
 | 
	
		
			
				|  |  | -        handlerPolygon.deactivate();
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -      this.tooltip.setVisible(false);
 | 
	
		
			
				|  |  | -      // common.clearHandlerDrawing();
 | 
	
		
			
				|  |  | -      // viewer.entities.removeAll();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -      // let layers = scene.layers.layerQueue;
 | 
	
		
			
				|  |  | -      // for (var i = 0; i < layers.length; i++) {
 | 
	
		
			
				|  |  | -      //   layers[i].shadowType = 0;
 | 
	
		
			
				|  |  | -      // }
 | 
	
		
			
				|  |  | -      if (shadowQuery) {
 | 
	
		
			
				|  |  | -        shadowQuery.qureyRegion({
 | 
	
		
			
				|  |  | -          position: [0, 0],
 | 
	
		
			
				|  |  | -          bottom: 0,
 | 
	
		
			
				|  |  | -          extend: 0,
 | 
	
		
			
				|  |  | -        });
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -      this.positions = [];
 | 
	
		
			
				|  |  | -      this.points = [];
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    //结束时日照阴影
 | 
	
		
			
				|  |  | -    setCurrentTime() {
 | 
	
		
			
				|  |  | -      var et = this.form.selDate;
 | 
	
		
			
				|  |  | -      et.setHours(Number(this.form.endTime));
 | 
	
		
			
				|  |  | -      viewer.clock.currentTime = Cesium.JulianDate.fromDate(et);
 | 
	
		
			
				|  |  | -      viewer.clock.multiplier = 1;
 | 
	
		
			
				|  |  | -      viewer.clock.shouldAnimate = false;
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    /**
 | 
	
		
			
				|  |  | -     * 执行日照动画
 | 
	
		
			
				|  |  | -     */
 | 
	
		
			
				|  |  | -    statrSunlight() {
 | 
	
		
			
				|  |  | -      var dateVal = this.form.selDate;
 | 
	
		
			
				|  |  | -      var startTime = new Date(dateVal);
 | 
	
		
			
				|  |  | -      var shour = Number(this.form.startTime);
 | 
	
		
			
				|  |  | -      var ehour = Number(this.form.endTime);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -      if (shour > ehour) {
 | 
	
		
			
				|  |  | -        return;
 | 
	
		
			
				|  |  | -      }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -      var nTimer = 0.0;
 | 
	
		
			
				|  |  | -      var nIntervId = setInterval(function () {
 | 
	
		
			
				|  |  | -        if (shour < ehour) {
 | 
	
		
			
				|  |  | -          startTime.setHours(shour);
 | 
	
		
			
				|  |  | -          startTime.setMinutes(nTimer);
 | 
	
		
			
				|  |  | -          viewer.clock.currentTime = Cesium.JulianDate.fromDate(startTime);
 | 
	
		
			
				|  |  | -          nTimer += 10.0;
 | 
	
		
			
				|  |  | -          if (nTimer > 60.0) {
 | 
	
		
			
				|  |  | -            shour += 1.0;
 | 
	
		
			
				|  |  | -            nTimer = 0.0;
 | 
	
		
			
				|  |  | -          }
 | 
	
		
			
				|  |  | -        } else {
 | 
	
		
			
				|  |  | -          clearInterval(nIntervId);
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -      }, 20);
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    //当前日照效果
 | 
	
		
			
				|  |  | -    dqSunlight() {
 | 
	
		
			
				|  |  | -      viewer.clock.currentTime = Cesium.JulianDate.fromDate(new Date());
 | 
	
		
			
				|  |  | -      viewer.clock.multiplier = 1;
 | 
	
		
			
				|  |  | -      viewer.clock.shouldAnimate = true;
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -    datavalueChange(val) {
 | 
	
		
			
				|  |  | -      this.form.startTime = val[0];
 | 
	
		
			
				|  |  | -      this.form.endTime = val[1];
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -  },
 | 
	
		
			
				|  |  | -  watch: {
 | 
	
		
			
				|  |  | -    "form.selDate": function (newValue) {
 | 
	
		
			
				|  |  | -      let st = new Date(newValue);
 | 
	
		
			
				|  |  | -      st.setHours(this.form.startTime);
 | 
	
		
			
				|  |  | -      let et = new Date(newValue);
 | 
	
		
			
				|  |  | -      et.setHours(this.form.endTime);
 | 
	
		
			
				|  |  | -      shadowQuery.startTime = Cesium.JulianDate.fromDate(st);
 | 
	
		
			
				|  |  | -      shadowQuery.endTime = Cesium.JulianDate.fromDate(et);
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    "form.startTime": function (newValue) {
 | 
	
		
			
				|  |  | -      let thisdate = new Date(this.form.selDate);
 | 
	
		
			
				|  |  | -      var st = thisdate;
 | 
	
		
			
				|  |  | -      st.setHours(Number(newValue));
 | 
	
		
			
				|  |  | -      shadowQuery.startTime = Cesium.JulianDate.fromDate(st);
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    "form.endTime": function (newValue) {
 | 
	
		
			
				|  |  | -      let thisdate = new Date(this.form.selDate);
 | 
	
		
			
				|  |  | -      var et = thisdate;
 | 
	
		
			
				|  |  | -      et.setHours(Number(newValue));
 | 
	
		
			
				|  |  | -      shadowQuery.endTime = Cesium.JulianDate.fromDate(et);
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    "form.timeInterval": function (newValue) {
 | 
	
		
			
				|  |  | -      shadowQuery.timeInterval = Number(newValue);
 | 
	
		
			
				|  |  | -      // var bh = Number(this.bottomHeight);
 | 
	
		
			
				|  |  | -      // var eh = Number(this.extrudeHeight);
 | 
	
		
			
				|  |  | -      // shadowQuery.qureyRegion({
 | 
	
		
			
				|  |  | -      //   position: this.points,
 | 
	
		
			
				|  |  | -      //   bottom: bh,
 | 
	
		
			
				|  |  | -      //   extend: eh
 | 
	
		
			
				|  |  | -      // });
 | 
	
		
			
				|  |  | -      shadowQuery.build();
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    "form.spacing": function (newValue) {
 | 
	
		
			
				|  |  | -      shadowQuery.spacing = Number(newValue);
 | 
	
		
			
				|  |  | -      // var bh = Number(this.bottomHeight);
 | 
	
		
			
				|  |  | -      // var eh = Number(this.extrudeHeight);
 | 
	
		
			
				|  |  | -      // shadowQuery.qureyRegion({
 | 
	
		
			
				|  |  | -      //   position: this.points,
 | 
	
		
			
				|  |  | -      //   bottom: bh,
 | 
	
		
			
				|  |  | -      //   extend: eh
 | 
	
		
			
				|  |  | -      // });
 | 
	
		
			
				|  |  | -      shadowQuery.build();
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    "form.bottomHeight": function (newValue) {
 | 
	
		
			
				|  |  | -      var bh = Number(newValue);
 | 
	
		
			
				|  |  | -      var eh = Number(this.form.extrudeHeight);
 | 
	
		
			
				|  |  | -      shadowQuery.qureyRegion({
 | 
	
		
			
				|  |  | -        position: this.points,
 | 
	
		
			
				|  |  | -        bottom: bh,
 | 
	
		
			
				|  |  | -        extend: eh,
 | 
	
		
			
				|  |  | -      });
 | 
	
		
			
				|  |  | -      shadowQuery.build();
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -    "form.extrudeHeight": function (newValue) {
 | 
	
		
			
				|  |  | -      var bh = Number(this.form.bottomHeight);
 | 
	
		
			
				|  |  | -      var eh = Number(newValue);
 | 
	
		
			
				|  |  | -      shadowQuery.qureyRegion({
 | 
	
		
			
				|  |  | -        position: this.points,
 | 
	
		
			
				|  |  | -        bottom: bh,
 | 
	
		
			
				|  |  | -        extend: eh,
 | 
	
		
			
				|  |  | -      });
 | 
	
		
			
				|  |  | -      shadowQuery.build();
 | 
	
		
			
				|  |  | -    },
 | 
	
		
			
				|  |  | -  },
 | 
	
		
			
				|  |  | -  beforeDestroy() {
 | 
	
		
			
				|  |  | -    this.clear();
 | 
	
		
			
				|  |  | -    shadowQuery.destroy();
 | 
	
		
			
				|  |  | -    handlerPolygon.deactivate();
 | 
	
		
			
				|  |  | -    handlerPolygon = undefined;
 | 
	
		
			
				|  |  | -    this.dqSunlight();
 | 
	
		
			
				|  |  | -  },
 | 
	
		
			
				|  |  | -};
 | 
	
		
			
				|  |  | -</script>
 | 
	
		
			
				|  |  | -<style lang="scss">
 | 
	
		
			
				|  |  | -@import "@/../../zt.scss";
 | 
	
		
			
				|  |  | -</style>
 | 
	
		
			
				|  |  | -<style lang="scss" scoped>
 | 
	
		
			
				|  |  | -.el-card {
 | 
	
		
			
				|  |  | -  border: 0px solid #02a7f0;
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -.el-form-item {
 | 
	
		
			
				|  |  | -  margin-bottom: 0;
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -.slider_padding {
 | 
	
		
			
				|  |  | -  padding: 0rem 0.5rem;
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -</style>
 |