| | |
| | | <template> |
| | | <div class="bot" |
| | | v-if="showsituation"> |
| | | <div class="bot" v-if="showsituation"> |
| | | <div class="top1"> |
| | | <span class="botcon"> |
| | | <span class="icon"></span> |
| | | <span class="text">zcTS\ç¹åæ¥éª¤</span> |
| | | <span class="text">èµæºç®å½</span> |
| | | </span> |
| | | <span class="close" |
| | | @click="close">x</span> |
| | | <span class="close" @click="close">x</span> |
| | | </div> |
| | | <div class="next"> |
| | | <el-form ref="form" |
| | | :model="form" |
| | | label-width="240px"> |
| | | <el-form-item label="åºå:"> |
| | | <el-select v-model="form.points" |
| | | @change="changeplase"> |
| | | <el-option v-for="(item, index) in regions" |
| | | :key="index" |
| | | :label="item.vname" |
| | | :value="{ value: item.vlatlngs, label: item.vname }"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="èµ·å§æ¶é´:"> |
| | | <el-date-picker v-model="form.startTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="ç»ææ¶é´:"> |
| | | <el-date-picker v-model="form.endTime" |
| | | value-format="yyyyMMdd" |
| | | :picker-options="pickerOptions" |
| | | format="yyyy-MM-dd" |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | @change="change1"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="åæç±»å:"> |
| | | <el-select v-model="form.analysisType"> |
| | | <el-option label="é¢ç¹" |
| | | value="1"></el-option> |
| | | <el-option label="颿®µ" |
| | | value="2"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ 线çµä¸å¡:"> |
| | | <el-select v-model="form.radio" |
| | | @change="choose"> |
| | | <el-option v-for="item in radios" |
| | | :key="item.value" |
| | | :label="item.bussName" |
| | | :value="item.startFreq + '-' + item.endFreq"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div class="btns"> |
| | | <span @click="reset">éç½®</span> |
| | | <span @click="analysis">åæ</span> |
| | | <div class="layerTreeContainer"> |
| | | <div class="layerTree"> |
| | | <el-tree |
| | | :data="treeData" |
| | | node-key="id" |
| | | ref="tree" |
| | | :default-checked-keys="arr" |
| | | show-checkbox |
| | | :render-content="renderContent" |
| | | :default-expanded-keys="defaultExpanded" |
| | | @check="check" |
| | | > |
| | | </el-tree> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="showpic" |
| | | v-if="showpic"> |
| | | <div :style="innerbac" |
| | | @click="openDia"></div> |
| | | </div> |
| | | <changePic @colordata="getdata" /> |
| | | </div> |
| | | |
| | | <!-- <div class="bot" v-if="showsituation"> |
| | | <div class="top1"> |
| | | <span class="botcon"> |
| | | <span class="icon"></span> |
| | | <span class="text">èµæºç®å½</span> |
| | | </span> |
| | | <span class="close" @click="close">x</span> |
| | | </div> |
| | | |
| | | </div> --> |
| | | </template> |
| | | |
| | | <script> |
| | | import { createPic,freqBandAnalysis,showCQ } from "../../api/http"; |
| | | import { createPic, freqBandAnalysis, showCQ } from "../../api/http"; |
| | | import changePic from "../common/color.vue"; |
| | | import bus from "../../utils/bus"; |
| | | import axios from "axios"; |
| | | |
| | | let hander,divPoint3; |
| | | let Base64=require("js-base64").Base64; |
| | | import common from "@/components/common"; |
| | | let projectTreeData = []; |
| | | |
| | | //æ·»å å·¥ç¨æ æ°æ® |
| | | function addTreeData(data, layer) { |
| | | var d = {}; |
| | | for (var key in data) { |
| | | d[key] = data[key]; |
| | | } |
| | | d.item = layer; |
| | | projectTreeData.push(d); |
| | | } |
| | | |
| | | //éè¿idè·åæå®å
ç´ |
| | | function _getTreeData(id) { |
| | | for (var i = 0; i < projectTreeData.length; i++) { |
| | | if ( |
| | | projectTreeData[i].id === id || |
| | | (projectTreeData[i].datatype === "entity" && |
| | | projectTreeData[i].item && |
| | | projectTreeData[i].item.entity && |
| | | projectTreeData[i].item.entity.id === id) || |
| | | (projectTreeData[i].datatype === "editEntity" && |
| | | projectTreeData[i].item && |
| | | projectTreeData[i].item[projectTreeData[i].type] && |
| | | projectTreeData[i].item[projectTreeData[i].type].id === id) |
| | | ) { |
| | | return projectTreeData[i]; |
| | | } |
| | | } |
| | | } |
| | | |
| | | //转æ¢sgé¢è² |
| | | function getSGColor(color) { |
| | | let _color = parseInt(color).toString(16); |
| | | if (_color.length === 2) { |
| | | _color = "0000" + _color; |
| | | } else if (_color.length === 4) { |
| | | _color = "00" + _color; |
| | | } |
| | | _color = "#" + _color.slice(4) + _color.slice(2, 4) + _color.slice(0, 2); |
| | | return _color; |
| | | } |
| | | |
| | | //è§£æXML |
| | | function getXMLData(xml, isColor) { |
| | | let xml2json = $.xml2json($.parseXML(xml)); |
| | | let data = { |
| | | value: undefined, |
| | | defaultValue: isColor |
| | | ? getSGColor(xml2json.DefaultValue) |
| | | : xml2json.DefaultValue, |
| | | }; |
| | | |
| | | if (xml2json && !xml2json.Class.length) { |
| | | data.value = xml2json.Class.Value; |
| | | } else if (xml2json && xml2json.Class.length) { |
| | | let Value = { |
| | | Condition: undefined, |
| | | Value: {}, |
| | | }; |
| | | xml2json.Class.forEach((item) => { |
| | | let condition = item.Condition.replace(/\"/g, ""); |
| | | let eli = condition.replace("<", "").replace(">", "").split("="); |
| | | if (!Value.Condition) { |
| | | eli[0] = eli[0].replace("[", "").replace("]", ""); |
| | | Value.Condition = eli[0]; |
| | | } |
| | | Value.Value[eli[1]] = isColor ? getSGColor(item.Value) : item.Value; |
| | | }); |
| | | data.value = Value; |
| | | } |
| | | return data; |
| | | } |
| | | |
| | | // æ ¹æ®æ ·å¼æä»¶ è½¬ä¸ºæ ·å¼ |
| | | function GetStyleByStyleJson(json) { |
| | | if (json instanceof Array) { |
| | | json = json[0]; |
| | | } |
| | | let entity = { label: {}, billboard: {} }; |
| | | //åä½é¢è² |
| | | if (json.TextColor.indexOf("Classification") > -1) { |
| | | entity.label.fillColor = getXMLData(json.TextColor, true); |
| | | } else { |
| | | entity.label.fillColor = getSGColor(json.TextColor); |
| | | } |
| | | |
| | | //åä½å¤§å° |
| | | if (json.TextSize.indexOf && json.TextSize.indexOf("Classification") > -1) { |
| | | json.TextSize = getXMLData(json.TextSize); |
| | | json.TextSize.defaultValue = |
| | | Math.abs(parseInt(json.TextSize.defaultValue)) + "px " + json.Font; |
| | | for (let key in json.TextSize.value.Value) { |
| | | json.TextSize.value.Value[key] = |
| | | Math.abs(parseInt(json.TextSize.value.Value[key])) + "px " + json.Font; |
| | | } |
| | | entity.label.font = json.TextSize; |
| | | } else { |
| | | entity.label.font = json.TextSize + "px " + json.Font; |
| | | } |
| | | //åä½é£æ ¼ |
| | | // if (json.Font.indexOf("Classification") > -1) { |
| | | // json.Font = getXMLData(json.Font); |
| | | // entity.label.fontFamily = json.Font; |
| | | // } |
| | | // entity.label.sacle = json.Scale; |
| | | |
| | | entity.label.showBackground = !!parseInt(json.BackgroundOpacity); |
| | | if (entity.label.showBackground) { |
| | | if (json.BackgroundColor.indexOf("Classification") > -1) { |
| | | entity.label.backgroundColor = getXMLData(json.BackgroundColor, true); |
| | | } else { |
| | | entity.label.backgroundColor = getSGColor(json.BackgroundColor); |
| | | } |
| | | } |
| | | |
| | | entity.near = json.MinVisibilityDistance; |
| | | entity.far = json.MaxVisibilityDistance; |
| | | |
| | | if (json.Text && json.Text.indexOf("Classification") > -1) { |
| | | entity.label.text = getXMLData(json.Text); |
| | | } else { |
| | | entity.label.text = json.Text; |
| | | } |
| | | |
| | | if (json.Imagefile && json.Imagefile.indexOf("Classification") > -1) { |
| | | entity.billboard.image = getXMLData(json.Imagefile); |
| | | } else { |
| | | entity.billboard.image = json.Imagefile; |
| | | } |
| | | |
| | | if (entity.billboard.image && entity.label.text) { |
| | | entity.imageData = { |
| | | horizontalOrigin: Cesium.HorizontalOrigin.RIGHT, |
| | | }; |
| | | entity.labelData = { |
| | | horizontalOrigin: Cesium.HorizontalOrigin.LEFT, |
| | | }; |
| | | } |
| | | |
| | | return entity; |
| | | } |
| | | |
| | | //è·åç¢éåçæ³¨è®°ç¹æ ·å¼ |
| | | async function getVectorStyleFromSG(treeNode, json) { |
| | | let de; |
| | | |
| | | await axios.get(json).then((res) => { |
| | | let entitystyle = GetStyleByStyleJson(res.data); |
| | | |
| | | de = { |
| | | id: treeNode.id, |
| | | level_min: defaultValue(treeNode.minimumLevel, 10), |
| | | level_max: defaultValue(treeNode.maximumLevel, 22), |
| | | fillColor: defaultValue(entitystyle.label.fillColor, "#ffffff"), |
| | | outlineColor: defaultValue(entitystyle.label.outlineColor, "#ffffff"), |
| | | backgroundColor: defaultValue( |
| | | entitystyle.label.backgroundColor, |
| | | "#ffffff" |
| | | ), |
| | | heightReference: defaultValue(treeNode.heightReference, 1), |
| | | pointHeight: defaultValue(treeNode.pointHeight, undefined), |
| | | showBackground: defaultValue(entitystyle.label.showBackground, false), |
| | | outlineWidth: defaultValue(entitystyle.label.outlineWidth, 1), |
| | | text: entitystyle.label.text, |
| | | image: entitystyle.billboard.image, |
| | | font: entitystyle.label.font, |
| | | near: entitystyle.near, |
| | | far: entitystyle.far, |
| | | disableDepthTestDistance: Number.POSITIVE_INFINITY, |
| | | scale: entitystyle.label.scale, |
| | | labelData: entitystyle.labelData, |
| | | imageData: entitystyle.imageData, |
| | | }; |
| | | }); |
| | | return de; |
| | | } |
| | | |
| | | function defaultValue(a, b) { |
| | | return a !== undefined ? a : b; |
| | | } |
| | | let hander, divPoint3; |
| | | let Base64 = require("js-base64").Base64; |
| | | export default { |
| | | components: { |
| | | changePic, |
| | | }, |
| | | data () { |
| | | data() { |
| | | return { |
| | | alldisabled: [], |
| | | defaultExpanded: [], |
| | | arr: [], //ç¨æ¥ä¿åèµæºç®å½ä¸é»è®¤éä¸çèç¹id |
| | | SmartEarthToken: undefined, |
| | | treeData: [], |
| | | defaultCheck: [], |
| | | form: { |
| | | points: "", |
| | | startTime: new Date("2016-06-01"), |
| | |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: |
| | | "url("+require("@/assets/image/botbtn/color.png")+")", |
| | | "url(" + require("@/assets/image/botbtn/color.png") + ")", |
| | | backgroundPosition: "center", |
| | | backgroundSize: ` 100% 100%`, |
| | | }, |
| | |
| | | showDianci: false, |
| | | }; |
| | | }, |
| | | mounted () { |
| | | bus.$on("clearEve",(e) => { |
| | | this.reset(); |
| | | }); |
| | | bus.$on("radioData",(e) => { |
| | | this.radios=e; |
| | | }); |
| | | bus.$on("guanzhou",(e) => { |
| | | this.form.startTime=e.fromdate; |
| | | this.form.endTime=e.todate; |
| | | }); |
| | | bus.$on("areaData",(e) => { |
| | | this.regions=e; |
| | | }); |
| | | bus.$on("showdio",(e) => { |
| | | this.showsituation=e=="7-1" |
| | | this.showdata1=true; |
| | | this.showdata2=true; |
| | | mounted() { |
| | | window.ProjectTree = this.$refs.tree; |
| | | //è·åtoken并请æ±å è½½å¾å±æ°æ® |
| | | this.SmartEarthToken = common.smartearthtoken; |
| | | |
| | | this.$nextTick(() => { |
| | | bus.$on("clearEve", (e) => { |
| | | this.reset(); |
| | | }); |
| | | bus.$on("radioData", (e) => { |
| | | this.radios = e; |
| | | }); |
| | | bus.$on("guanzhou", (e) => { |
| | | this.form.startTime = e.fromdate; |
| | | this.form.endTime = e.todate; |
| | | }); |
| | | bus.$on("areaData", (e) => { |
| | | this.regions = e; |
| | | }); |
| | | bus.$on("showdio", (e) => { |
| | | this.showsituation = e == "7-1"; |
| | | this.showdata1 = true; |
| | | this.showdata2 = true; |
| | | }); |
| | | axios.get("./static/layers.json").then( |
| | | (response) => { |
| | | console.log(response); |
| | | // // å¾å°é»è®¤éä¸çæ°æ®çid |
| | | this.parseJson(response.data.children); |
| | | |
| | | // //åºæ¯é
ç½® |
| | | this.treeData = response.data && response.data.children; |
| | | this.setDefaultCheck(response.data); |
| | | }, |
| | | (response) => { |
| | | console.log("è·ååºæ¯é
置失败ï¼"); |
| | | } |
| | | ); |
| | | }); |
| | | }, |
| | | methods: { |
| | | changeplase (value) { |
| | | if(value.label.indexOf("广å·")>-1) { |
| | | this.chooseplase="广å·"; |
| | | this.form.startTime=new Date("2019-10-08"); |
| | | this.form.endTime=new Date("2019-10-16"); |
| | | // yhadd |
| | | closeJm() { |
| | | this.$parent.$parent.$parent.isShowResMenu = false; |
| | | }, |
| | | |
| | | // éå½éåjsonï¼å¾å°checked:trueçæ°æ®çidï¼æ·»å å°arrä¸ |
| | | parseJson(jsonObj) { |
| | | // 声æåécountï¼è®°å½disabledåå¨çèç¹çå
¨é¨æ°æ® |
| | | var count = 0; |
| | | for (var v in jsonObj) { |
| | | var element = jsonObj[v]; |
| | | if (element.expanded) { |
| | | this.defaultExpanded.push(element.id); |
| | | } |
| | | if (element.children == undefined || element.children.length == 0) { |
| | | if (element._children == undefined || element._children.length == 0) { |
| | | if (element.checked) { |
| | | this.arr.push(element.id); |
| | | } |
| | | if (element.urls == undefined || element.urls == "") { |
| | | element.disabled = true; |
| | | count++; |
| | | } |
| | | } else { |
| | | this.parseJson(element._children); |
| | | } |
| | | } else { |
| | | this.parseJson(element.children); |
| | | } |
| | | } |
| | | if (count !== 0) { |
| | | // æ·»å 嫿disabled屿§çèç¹æ°ç»ï¼ |
| | | this.alldisabled.push(jsonObj); |
| | | } |
| | | }, |
| | | |
| | | async setDefaultCheck(node) { |
| | | this.ergodicNode(node); |
| | | // this.$refs.tree.setCheckedKeys(this.defaultCheck); |
| | | // setTimeout(()=>{ |
| | | // this.$refs.tree.setCheckedKeys(['tc3857']); |
| | | // },1000) |
| | | }, |
| | | ergodicNode(node) { |
| | | if (node.expanded) { |
| | | this.defaultExpanded.push(node.id); |
| | | } |
| | | if (node.checked && !node.children) { |
| | | this.defaultCheck.push(node.id); |
| | | if (!node.isAdd) { |
| | | if (node._children) { |
| | | if (node.thisView) { |
| | | if (node._children[0].children) { |
| | | node._children[0].children.forEach((item) => { |
| | | this.addTreeData(item); |
| | | }); |
| | | } else { |
| | | this.addTreeData(node._children[0]); |
| | | } |
| | | } else { |
| | | node._children.forEach((item) => { |
| | | this.addTreeData(item); |
| | | }); |
| | | } |
| | | } else { |
| | | this.addTreeData(node); |
| | | } |
| | | } |
| | | } |
| | | if (node.children && node.children.length) { |
| | | node.children.forEach((item) => { |
| | | this.ergodicNode(item); |
| | | }); |
| | | } |
| | | }, |
| | | checkChange(treeNode, b1, b2) { |
| | | if (!treeNode.children && !treeNode._children) { |
| | | var checkedKeys = this.$refs.tree.getCheckedKeys(); |
| | | let isCheck = checkedKeys.indexOf(treeNode.id) > -1; |
| | | this.setVisiable(treeNode, isCheck); |
| | | } |
| | | }, |
| | | setChecked(id) { |
| | | var checkedKeys = this.$refs.tree.getCheckedKeys(); |
| | | let isCheck = checkedKeys.indexOf(id) > -1; |
| | | let treeNode = this.$refs.tree.getNode(id); |
| | | if (treeNode && treeNode.data) { |
| | | this.setVisiable(treeNode.data, isCheck); |
| | | } |
| | | }, |
| | | check(treeNode, data) { |
| | | let isCheck = data.checkedKeys.indexOf(treeNode.id) > -1; |
| | | this.setVisiable(treeNode, isCheck); |
| | | }, |
| | | setVisiable(treeNode, checked) { |
| | | if (checked !== undefined) { |
| | | treeNode.checked = checked; |
| | | } else { |
| | | treeNode.checked = !treeNode.checked; |
| | | } |
| | | if (treeNode.children) { |
| | | treeNode.children.forEach((item) => { |
| | | this.setVisiable(item, treeNode.checked); |
| | | }); |
| | | return; |
| | | } else if (treeNode._children) { |
| | | if (treeNode.thisView === "ewzj") { |
| | | treeNode._children[0].checked = treeNode.checked; |
| | | if (treeNode._children[0].children) { |
| | | treeNode._children[0].children.forEach((item) => { |
| | | item.checked = treeNode.checked; |
| | | this.addTreeData(item); |
| | | }); |
| | | } else { |
| | | this.addTreeData(treeNode._children[0]); |
| | | } |
| | | } else if (treeNode.thisView === "swzj") { |
| | | for (let i = 1; i < treeNode._children.length; i++) { |
| | | treeNode._children[i].checked = treeNode.checked; |
| | | } |
| | | treeNode._children.forEach((item, index) => { |
| | | index !== 0 && this.addTreeData(item); |
| | | }); |
| | | } else if (!treeNode.thisView) { |
| | | treeNode._children.forEach((item, index) => { |
| | | item.checked = treeNode.checked; |
| | | if (item.children) { |
| | | item.children.forEach((_item) => { |
| | | _item.checked = item.checked; |
| | | this.addTreeData(_item); |
| | | }); |
| | | } else { |
| | | this.addTreeData(item); |
| | | } |
| | | }); |
| | | } |
| | | return; |
| | | } |
| | | |
| | | if (!treeNode.isAdd) { |
| | | this.addTreeData(treeNode); |
| | | return; |
| | | } |
| | | |
| | | let data = _getTreeData(treeNode.id); |
| | | if (data) { |
| | | data.item && |
| | | data.item.setVisibility && |
| | | data.item.setVisibility(treeNode.checked); |
| | | data.item && |
| | | data.item.setVisible && |
| | | data.item.setVisible(treeNode.checked); |
| | | data.item && |
| | | data.item.show !== undefined && |
| | | (data.item.show = treeNode.checked); |
| | | if (data.datatype === "particle") { |
| | | data.item.forEach((item) => { |
| | | item.show = treeNode.checked; |
| | | }); |
| | | } |
| | | } else { |
| | | if ( |
| | | treeNode.id && |
| | | treeNode.id.indexOf && |
| | | treeNode.id.indexOf("---") > -1 |
| | | ) { |
| | | var ids = id.split("---"); |
| | | ids.forEach((item) => { |
| | | sgworld.ProjectTree.setVisibility(item, treeNode.checked); |
| | | }); |
| | | } else { |
| | | sgworld.ProjectTree.setVisibility(treeNode.id, treeNode.checked); |
| | | |
| | | var dd = Viewer.dataSources._dataSources.filter((item) => { |
| | | return item.name == treeNode.id; |
| | | }); |
| | | if (dd && dd.length > 0) { |
| | | dd[0].show = treeNode.checked; |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | props(data) { |
| | | if (data.class === "imageLayer") { |
| | | window.treeObj = { |
| | | rightClickData: data, |
| | | }; |
| | | layerOpen("å½±å", { |
| | | width: 320, |
| | | height: 310, |
| | | url: "./static/html/layerProp.html", |
| | | fn: { |
| | | end: function () {}, |
| | | }, |
| | | }); |
| | | } else if (data._children) { |
| | | if (data.thisView === "ewzj") { |
| | | data.thisView = "swzj"; |
| | | data.name = "ä¸ç»´æ³¨è®°"; |
| | | data._children[0].checked = false; |
| | | for (let i = 1; i < data._children.length; i++) { |
| | | data._children[i].checked = data.checked; |
| | | } |
| | | data._children.forEach((item) => { |
| | | if (item.children) { |
| | | item.children.forEach((_item) => { |
| | | _item.checked = item.checked; |
| | | this.addTreeData(_item); |
| | | }); |
| | | } else { |
| | | this.addTreeData(item); |
| | | } |
| | | }); |
| | | } else if (data.thisView === "swzj") { |
| | | data.thisView = "ewzj"; |
| | | data.name = "äºç»´æ³¨è®°"; |
| | | data._children[0].checked = data.checked; |
| | | for (let i = 1; i < data._children.length; i++) { |
| | | data._children[i].checked = false; |
| | | } |
| | | data._children.forEach((item) => { |
| | | if (item.children) { |
| | | item.children.forEach((_item) => { |
| | | _item.checked = item.checked; |
| | | this.addTreeData(_item); |
| | | }); |
| | | } else { |
| | | this.addTreeData(item); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | }, |
| | | flyTo(treeNode) { |
| | | if (treeNode.children) return; |
| | | if (treeNode._children && treeNode._children[0]) { |
| | | this.flyTo(treeNode._children[0]); |
| | | return; |
| | | } |
| | | if (treeNode && treeNode.flyTo) { |
| | | if (treeNode && treeNode.flyTo.length === 3) { |
| | | sgworld.Navigate.flyToPosition( |
| | | treeNode.flyTo[0], |
| | | treeNode.flyTo[1], |
| | | treeNode.flyTo[2] |
| | | ); |
| | | } else if (treeNode && treeNode.flyTo.length === 4) { |
| | | sgworld.Navigate.flyToPointsInterest({ |
| | | destination: Cesium.Rectangle.fromDegrees( |
| | | treeNode.flyTo[0], |
| | | treeNode.flyTo[1], |
| | | treeNode.flyTo[2], |
| | | treeNode.flyTo[3] |
| | | ), |
| | | }); |
| | | } else { |
| | | sgworld.Navigate.flyToPointsInterest({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | treeNode.flyTo[0], |
| | | treeNode.flyTo[1], |
| | | treeNode.flyTo[2] |
| | | ), |
| | | orientation: { |
| | | heading: treeNode.flyTo[3], |
| | | pitch: treeNode.flyTo[4], |
| | | roll: treeNode.flyTo[5], |
| | | }, |
| | | }); |
| | | } |
| | | return; |
| | | } |
| | | let data = sgworld.ProjectTree.getObject(treeNode.id); |
| | | data && data.item |
| | | ? sgworld.Navigate.flyToObj(data.item) |
| | | : sgworld.Navigate.flyToObj(data); |
| | | if (data && data.datatype === "editEntity") { |
| | | data && data.item && sgworld.Navigate.flyToObj(data.item[data.type]); |
| | | } |
| | | }, |
| | | renderContent(h, { node, data, store }) { |
| | | if (data.icon) { |
| | | return ( |
| | | <span class="custom-tree-node" on-dblclick={() => this.flyTo(data)}> |
| | | <span class="typeIcon"> |
| | | <img src={data.icon} /> |
| | | </span> |
| | | <span class="treeName">{data.name}</span> |
| | | </span> |
| | | ); |
| | | } else { |
| | | return ( |
| | | <span class="custom-tree-node" on-dblclick={() => this.flyTo(data)}> |
| | | <span class="treeName">{data.name}</span> |
| | | </span> |
| | | ); |
| | | } |
| | | }, |
| | | async addTreeData(treeNode) { |
| | | // if (treeNode.disabled) return; |
| | | let _data = sgworld.ProjectTree.getObject(treeNode.id); |
| | | let pID = 0; |
| | | |
| | | if (_data) { |
| | | sgworld.ProjectTree.setVisibility(treeNode.id, treeNode.checked); |
| | | return; |
| | | } else { |
| | | _data = _getTreeData(treeNode.id); |
| | | if (_data) { |
| | | _data.item && |
| | | _data.item.setVisibility && |
| | | _data.item.setVisibility(treeNode.checked); |
| | | _data.item && |
| | | _data.item.setVisible && |
| | | _data.item.setVisible(treeNode.checked); |
| | | _data.item && |
| | | _data.item.show !== undefined && |
| | | (_data.item.show = treeNode.checked); |
| | | if (_data.datatype === "particle") { |
| | | _data.item.forEach((item) => { |
| | | item.show = treeNode.checked; |
| | | }); |
| | | } |
| | | return; |
| | | } |
| | | } |
| | | if (!treeNode.urls || treeNode.isAdd) return; |
| | | treeNode.isAdd = true; |
| | | |
| | | let layer; |
| | | treeNode.token && |
| | | treeNode.token === "SmartEarthToken" && |
| | | (treeNode.token = this.SmartEarthToken); |
| | | switch (treeNode.sourceType) { |
| | | case "tms": |
| | | layer = sgworld.Creator.createImageryProvider( |
| | | treeNode.name, |
| | | "tms", |
| | | { |
| | | id: treeNode.id, |
| | | url: treeNode.urls, |
| | | fileExtension: treeNode.img || "png", |
| | | enablePickFeatures: false, |
| | | alpha: treeNode.alpha, |
| | | }, |
| | | "0", |
| | | undefined, |
| | | true, |
| | | "" |
| | | ); |
| | | |
| | | break; |
| | | case "local-map": |
| | | // æ·»å æ¬å°å°å¾ |
| | | if (treeNode.tms) { |
| | | layer = sgworld.Creator.createImageryProvider( |
| | | treeNode.name, |
| | | "tms", |
| | | { |
| | | id: treeNode.id, |
| | | url: treeNode.urls, |
| | | fileExtension: treeNode.img || "png", |
| | | enablePickFeatures: false, |
| | | level: treeNode.Level, |
| | | minimumLevel: treeNode.minimumLevel, |
| | | maximumLevel: treeNode.maximumLevel, |
| | | tilingScheme: |
| | | treeNode.tileType === "Geo" |
| | | ? new Cesium.GeographicTilingScheme() |
| | | : new Cesium.WebMercatorTilingScheme(), |
| | | alpha: treeNode.alpha, |
| | | }, |
| | | "0", |
| | | treeNode.zIndex, |
| | | true, |
| | | "" |
| | | ); |
| | | } else { |
| | | layer = sgworld.Creator.createUrlTemplateImageryProvider( |
| | | treeNode.name, |
| | | { |
| | | id: treeNode.id, |
| | | url: `${treeNode.urls}/${treeNode.tile || "{z}/{x}/{y}"}.${ |
| | | treeNode.img || "png" |
| | | }`, |
| | | enablePickFeatures: false, |
| | | level: treeNode.Level, |
| | | minimumLevel: treeNode.minimumLevel, |
| | | maximumLevel: treeNode.maximumLevel, |
| | | tilingScheme: |
| | | treeNode.tileType === "Geo" |
| | | ? new Cesium.GeographicTilingScheme() |
| | | : new Cesium.WebMercatorTilingScheme(), |
| | | alpha: treeNode.alpha, |
| | | }, |
| | | "0", |
| | | treeNode.zIndex, |
| | | true, |
| | | "" |
| | | ); |
| | | } |
| | | break; |
| | | case "kml": |
| | | // æ·»å kmlæ°æ® |
| | | layer = sgworld.Creator.addKmlLayer( |
| | | treeNode.name, |
| | | { |
| | | id: treeNode.id, |
| | | url: treeNode.urls, |
| | | }, |
| | | true |
| | | ); |
| | | break; |
| | | case "google": |
| | | // æ·»å è°·æå°å¾ |
| | | layer = sgworld.Creator.createUrlTemplateImageryProvider( |
| | | treeNode.name, |
| | | { |
| | | id: treeNode.id, |
| | | url: treeNode.urls, |
| | | enablePickFeatures: false, |
| | | level: treeNode.Level, |
| | | minimumLevel: treeNode.minimumLevel, |
| | | maximumLevel: treeNode.maximumLevel, |
| | | alpha: treeNode.alpha, |
| | | }, |
| | | "0", |
| | | treeNode.zIndex, |
| | | true, |
| | | "" |
| | | ); |
| | | break; |
| | | case "arcgis": |
| | | // arcgiså°å¾ |
| | | layer = sgworld.Creator.createArcGisImageryLayer( |
| | | treeNode.name, |
| | | { |
| | | id: treeNode.id, |
| | | url: treeNode.urls, |
| | | enablePickFeatures: false, |
| | | level: treeNode.Level, |
| | | usePreCachedTilesIfAvailable: treeNode.GCJ02 ? false : true, // æ¯å¦ä½¿ç¨æå¡çå
ç½®çåçæ¹æ¡ï¼åç§»çº æ£éè¦ä½¿ç¨å¦ä¸èªå®ä¹çæ¹æ¡ |
| | | tilingScheme: treeNode.GCJ02 |
| | | ? sgworld.Core.getOffsetTilingScheme() |
| | | : undefined, // åç§»çº æ£ |
| | | minimumLevel: treeNode.minimumLevel, |
| | | maximumLevel: treeNode.maximumLevel, |
| | | alpha: treeNode.alpha, |
| | | }, |
| | | "0", |
| | | treeNode.zIndex, |
| | | true, |
| | | "" |
| | | ); |
| | | break; |
| | | case "mapbox": |
| | | // mapboxå°å¾ |
| | | layer = sgworld.Creator.createImageryProvider( |
| | | treeNode.name, |
| | | "MapBox", |
| | | { |
| | | id: treeNode.id, |
| | | name: treeNode.name, |
| | | level: treeNode.Level, |
| | | enablePickFeatures: false, |
| | | mapId: treeNode.mapId, |
| | | minimumLevel: treeNode.minimumLevel, |
| | | maximumLevel: treeNode.maximumLevel, |
| | | alpha: treeNode.alpha, |
| | | accessToken: |
| | | treeNode.token || |
| | | "pk.eyJ1IjoibWFyc2dpcyIsImEiOiJja2Fod2xlanIwNjJzMnhvMXBkMnNqcjVpIn0.WnxikCaN2KV_zn9tLZO77A", |
| | | }, |
| | | "0", |
| | | treeNode.zIndex, |
| | | true, |
| | | "" |
| | | ); |
| | | break; |
| | | case "tdmap": |
| | | // 天å°å¾ |
| | | layer = sgworld.Creator.createWebMapTileServerImageLayer( |
| | | treeNode.name, |
| | | { |
| | | id: treeNode.id, |
| | | url: treeNode.urls, |
| | | level: treeNode.Level, |
| | | minimumLevel: treeNode.minimumLevel, |
| | | maximumLevel: 18, |
| | | style: treeNode.style, |
| | | layer: treeNode.layer, |
| | | format: treeNode.format, |
| | | enablePickFeatures: false, |
| | | tileMatrixSetID: "tiff", |
| | | show: true, |
| | | subdomains: ["t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7"], |
| | | alpha: treeNode.alpha, |
| | | }, |
| | | "0", |
| | | treeNode.zIndex, |
| | | true, |
| | | "" |
| | | ); |
| | | break; |
| | | case "tdt_label": |
| | | // 天å°å¾ä¸ç»´æ³¨è®° |
| | | layer = sgworld.Creator.GeoWTFS({ |
| | | token: treeNode.token || "c53eb074c3fcba5ac86103d4d711bbe8", |
| | | url: treeNode.urls, |
| | | subdomains: ["0", "1", "2", "3", "4", "5", "6", "7"], |
| | | }); |
| | | break; |
| | | case "txmap": |
| | | // è
¾è®¯å°å¾ |
| | | layer = sgworld.Creator.createUrlTemplateImageryProvider( |
| | | treeNode.name, |
| | | { |
| | | id: treeNode.id, |
| | | url: treeNode.urls, |
| | | level: treeNode.Level, |
| | | enablePickFeatures: false, |
| | | minimumLevel: treeNode.minimumLevel, |
| | | maximumLevel: 18, |
| | | alpha: treeNode.alpha, |
| | | tilingScheme: sgworld.Core.getOffsetTilingScheme(), // åç§»çº æ£ |
| | | customTags: { |
| | | sx: (_imageryProvider, x) => { |
| | | return x >> 4; |
| | | }, |
| | | sy: (_imageryProvider, _x, y, level) => { |
| | | return ((1 << level) - y) >> 4; |
| | | }, |
| | | }, |
| | | }, |
| | | "0", |
| | | treeNode.zIndex, |
| | | true, |
| | | "" |
| | | ); |
| | | break; |
| | | case "gdmap": |
| | | // é«å¾·å°å¾ |
| | | layer = sgworld.Creator.createUrlTemplateImageryProvider( |
| | | treeNode.name, |
| | | { |
| | | id: treeNode.id, |
| | | url: treeNode.urls, |
| | | enablePickFeatures: false, |
| | | level: treeNode.Level, |
| | | minimumLevel: treeNode.minimumLevel, |
| | | maximumLevel: 18, |
| | | tilingScheme: sgworld.Core.getOffsetTilingScheme(), // åç§»çº æ£ |
| | | alpha: treeNode.alpha, |
| | | }, |
| | | "0", |
| | | treeNode.zIndex, |
| | | true, |
| | | "" |
| | | ); |
| | | break; |
| | | case "bdmap": |
| | | // ç¾åº¦å°å¾ |
| | | layer = sgworld.Creator.createImageryProvider( |
| | | treeNode.name, |
| | | "BaiduMap", |
| | | { |
| | | id: treeNode.id, |
| | | level: treeNode.Level, |
| | | enablePickFeatures: false, |
| | | style: treeNode.style, |
| | | minimumLevel: treeNode.minimumLevel, |
| | | maximumLevel: treeNode.maximumLevel, |
| | | alpha: treeNode.alpha, |
| | | }, |
| | | "0", |
| | | treeNode.zIndex, |
| | | true, |
| | | "" |
| | | ); |
| | | break; |
| | | case "cesiumblack": |
| | | // cesiumIoné»å¤å°å¾ |
| | | layer = sgworld.Creator.createImageryProvider( |
| | | treeNode.name, |
| | | "cesiumBlack", |
| | | { |
| | | id: treeNode.id, |
| | | url: treeNode.urls, |
| | | flipXY: true, |
| | | enablePickFeatures: false, |
| | | level: treeNode.Level, |
| | | minimumLevel: treeNode.minimumLevel, |
| | | maximumLevel: treeNode.maximumLevel, |
| | | alpha: treeNode.alpha, |
| | | }, |
| | | "0", |
| | | treeNode.zIndex, |
| | | true, |
| | | "" |
| | | ); |
| | | break; |
| | | case "osm": |
| | | // osmå°å¾ |
| | | layer = sgworld.Creator.createImageryProvider( |
| | | treeNode.name, |
| | | "OpenStreetMap", |
| | | { |
| | | id: treeNode.id, |
| | | url: treeNode.urls, |
| | | enablePickFeatures: false, |
| | | level: treeNode.Level, |
| | | minimumLevel: treeNode.minimumLevel, |
| | | maximumLevel: treeNode.maximumLevel, |
| | | alpha: treeNode.alpha, |
| | | }, |
| | | "0", |
| | | treeNode.zIndex, |
| | | true, |
| | | "" |
| | | ); |
| | | break; |
| | | case "wmts": |
| | | // wmtså½±å |
| | | layer = sgworld.Creator.createWebMapTileServerImageLayer( |
| | | treeNode.name, |
| | | { |
| | | id: treeNode.id, |
| | | url: treeNode.urls, |
| | | level: treeNode.Level, |
| | | style: treeNode.style, |
| | | layer: treeNode.layer, |
| | | enablePickFeatures: false, |
| | | format: treeNode.format, |
| | | tileMatrixSetID: treeNode.srs, |
| | | tilingScheme: |
| | | treeNode.tileType === "Geo" |
| | | ? new Cesium.GeographicTilingScheme() |
| | | : new Cesium.WebMercatorTilingScheme(), |
| | | show: true, |
| | | minimumLevel: treeNode.minimumLevel, |
| | | maximumLevel: treeNode.maximumLevel, |
| | | alpha: treeNode.alpha, |
| | | }, |
| | | "0", |
| | | treeNode.zIndex, |
| | | true, |
| | | "" |
| | | ); |
| | | break; |
| | | case "gis_wmts": |
| | | // gisserver wmstå½±å |
| | | layer = sgworld.Creator.createUrlTemplateImageryProvider( |
| | | treeNode.name, |
| | | { |
| | | id: treeNode.id, |
| | | url: Cesium.buildModuleUrl( |
| | | treeNode.urls + "/{z}/{x}/{reverseY}.png" |
| | | ), |
| | | enablePickFeatures: false, |
| | | level: treeNode.Level, |
| | | minimumLevel: treeNode.minimumLevel, |
| | | maximumLevel: treeNode.maximumLevel, |
| | | alpha: treeNode.alpha, |
| | | }, |
| | | "0", |
| | | treeNode.zIndex, |
| | | true, |
| | | "" |
| | | ); |
| | | break; |
| | | case "wmts_zj": |
| | | // è¡åå·å·®ä¸¤åçwmts |
| | | var geotil = new Cesium.GeographicTilingScheme({ |
| | | rectangle: Cesium.Rectangle.MAX_VALUE, |
| | | }); |
| | | if (treeNode.addLevel && treeNode.addLevel === 2) { |
| | | geotil.positionToTileXY = function (position, level, result) { |
| | | level > 0 && level++; |
| | | var rectangle = this._rectangle; |
| | | if (!Cesium.Rectangle.contains(rectangle, position)) { |
| | | // outside the bounds of the tiling scheme |
| | | return undefined; |
| | | } |
| | | |
| | | var xTiles = this.getNumberOfXTilesAtLevel(level); |
| | | var yTiles = this.getNumberOfYTilesAtLevel(level); |
| | | |
| | | var xTileWidth = rectangle.width / xTiles; |
| | | var yTileHeight = rectangle.height / yTiles; |
| | | |
| | | var longitude = position.longitude; |
| | | if (rectangle.east < rectangle.west) { |
| | | longitude += Cesium.Math.TWO_PI; |
| | | } |
| | | |
| | | var xTileCoordinate = |
| | | ((longitude - rectangle.west) / xTileWidth) | 0; |
| | | if (xTileCoordinate >= xTiles) { |
| | | xTileCoordinate = xTiles - 1; |
| | | } |
| | | |
| | | var yTileCoordinate = |
| | | ((rectangle.north - position.latitude) / yTileHeight) | 0; |
| | | if (yTileCoordinate >= yTiles) { |
| | | yTileCoordinate = yTiles - 1; |
| | | } |
| | | |
| | | if (!Cesium.defined(result)) { |
| | | return new Cesium.Cartesian2(xTileCoordinate, yTileCoordinate); |
| | | } |
| | | |
| | | result.x = xTileCoordinate; |
| | | result.y = yTileCoordinate; |
| | | return result; |
| | | }; |
| | | geotil.tileXYToRectangle = function (x, y, level, result) { |
| | | level > 0 && level++; |
| | | var rectangle = this._rectangle; |
| | | |
| | | var xTiles = this.getNumberOfXTilesAtLevel(level); |
| | | var yTiles = this.getNumberOfYTilesAtLevel(level); |
| | | |
| | | var xTileWidth = rectangle.width / xTiles; |
| | | var west = x * xTileWidth + rectangle.west; |
| | | var east = (x + 1) * xTileWidth + rectangle.west; |
| | | |
| | | var yTileHeight = rectangle.height / yTiles; |
| | | var north = rectangle.north - y * yTileHeight; |
| | | var south = rectangle.north - (y + 1) * yTileHeight; |
| | | |
| | | if (!Cesium.defined(result)) { |
| | | result = new Cesium.Rectangle(west, south, east, north); |
| | | } |
| | | |
| | | result.west = west; |
| | | result.south = south; |
| | | result.east = east; |
| | | result.north = north; |
| | | return result; |
| | | }; |
| | | } |
| | | layer = sgworld.Creator.createWebMapTileServerImageLayer( |
| | | treeNode.name, |
| | | { |
| | | id: treeNode.id, |
| | | url: treeNode.urls, |
| | | layer: treeNode.layer, |
| | | level: treeNode.Level, |
| | | minimumLevel: treeNode.minimumLevel, |
| | | maximumLevel: treeNode.maximumLevel, |
| | | style: "default", |
| | | tileMatrixSetID: "esritilematirx", |
| | | format: "image/png", |
| | | tilingScheme: geotil, |
| | | addLevel: treeNode.addLevel || 1, //å±çº§å ä¸ |
| | | enablePickFeatures: false, |
| | | show: true, |
| | | alpha: treeNode.alpha, |
| | | }, |
| | | "0", |
| | | treeNode.zIndex, |
| | | true, |
| | | "" |
| | | ); |
| | | break; |
| | | case "wms": |
| | | case "wmsc": |
| | | // wmsæ°æ® |
| | | var parameters = { |
| | | service: "WMS", |
| | | format: "image/png", |
| | | transparent: true, |
| | | }; |
| | | if (treeNode.removeNullValue) { |
| | | if (treeNode.nullvalue) { |
| | | treeNode.nullvalue = treeNode.nullvalue.replace("rgb(", ""); |
| | | treeNode.nullvalue = treeNode.nullvalue.replace(")", ""); |
| | | } |
| | | parameters.nullvalue = sgworld.Core.defaultValue( |
| | | treeNode.nullvalue, |
| | | "0,0,0" |
| | | ); |
| | | parameters.nulltolerance = sgworld.Core.defaultValue( |
| | | treeNode.nulltolerance, |
| | | 0 |
| | | ); |
| | | } |
| | | treeNode.token && (treeNode.urls += "?token=" + treeNode.token); |
| | | if (treeNode.sourceType === "wmsc") { |
| | | layer = sgworld.Creator.createCacheImageryProvider( |
| | | treeNode.name, |
| | | { |
| | | id: treeNode.id, |
| | | url: treeNode.urls || "", |
| | | layers: treeNode.layer || "", |
| | | level: treeNode.Level, |
| | | enablePickFeatures: false, |
| | | cacheUrl: treeNode.cacheUrl || treeNode.urls, |
| | | fileExtension: treeNode.fileExtension, |
| | | cacheMaxLevel: treeNode.cacheMaxLevel || 16, |
| | | alpha: treeNode.alpha, |
| | | }, |
| | | "0", |
| | | treeNode.zIndex, |
| | | treeNode.checked, |
| | | "" |
| | | ); |
| | | } else { |
| | | layer = sgworld.Creator.createImageryProvider( |
| | | treeNode.name, |
| | | "wms", |
| | | { |
| | | id: treeNode.id, |
| | | url: treeNode.urls, |
| | | layers: treeNode.layer || "", |
| | | level: treeNode.Level, |
| | | minimumLevel: treeNode.minimumLevel, |
| | | maximumLevel: treeNode.maximumLevel, |
| | | enablePickFeatures: false, |
| | | parameters: parameters, |
| | | alpha: treeNode.alpha, |
| | | }, |
| | | "0", |
| | | treeNode.zIndex, |
| | | true, |
| | | "" |
| | | ); |
| | | } |
| | | break; |
| | | |
| | | case "wfs": |
| | | // wfsæ°æ® |
| | | layer = sgwfs.CreateWfs(treeNode.class, treeNode); |
| | | break; |
| | | case "geojson": |
| | | if (treeNode.class === "point") { |
| | | treeNode.disableDepthTestDistance === "Infinity" && |
| | | (treeNode.disableDepthTestDistance = Number.POSITIVE_INFINITY); |
| | | |
| | | de = { |
| | | id: treeNode.id, |
| | | fillColor: sgworld.Core.defaultValue(treeNode.color, "#ffffff"), |
| | | color: sgworld.Core.defaultValue(treeNode.imageColor, undefined), |
| | | outlineColor: sgworld.Core.defaultValue( |
| | | treeNode.outlineColor, |
| | | "#ffffff" |
| | | ), |
| | | backgroundColor: sgworld.Core.defaultValue( |
| | | treeNode.backgroundColor, |
| | | "#ffffff" |
| | | ), |
| | | heightReference: sgworld.Core.defaultValue( |
| | | treeNode.heightReference, |
| | | 0 |
| | | ), |
| | | pointHeight: sgworld.Core.defaultValue( |
| | | treeNode.pointHeight, |
| | | undefined |
| | | ), |
| | | near: sgworld.Core.defaultValue(treeNode.near, 0), |
| | | far: sgworld.Core.defaultValue(treeNode.far, 99999999999), |
| | | bold: treeNode.bold, |
| | | italic: treeNode.italic, |
| | | showBackground: treeNode.showBackground, |
| | | outlineWidth: sgworld.Core.defaultValue(treeNode.outlineWidth, 1), |
| | | text: treeNode.text, |
| | | image: treeNode.image, |
| | | font_size: treeNode.size, |
| | | font_family: sgworld.Core.defaultValue( |
| | | treeNode.font_family, |
| | | "微软é
é»" |
| | | ), |
| | | disableDepthTestDistance: sgworld.Core.defaultValue( |
| | | treeNode.disableDepthTestDistance, |
| | | undefined |
| | | ), |
| | | labelData: treeNode.labelData, |
| | | imageData: treeNode.imageData, |
| | | }; |
| | | |
| | | if ( |
| | | treeNode.text && |
| | | treeNode.image && |
| | | !treeNode.labelData && |
| | | !treeNode.imageData |
| | | ) { |
| | | de.labelData = { |
| | | horizontalOrigin: Cesium.HorizontalOrigin.LEFT, |
| | | pixelOffset: new Cesium.Cartesian2(20, 0), |
| | | }; |
| | | de.imageData = { |
| | | horizontalOrigin: Cesium.HorizontalOrigin.CENTER, |
| | | pixelOffset: new Cesium.Cartesian2(0, 0), |
| | | }; |
| | | } |
| | | layer = sgworld.Creator.createLabelPointGeoJsonFeatureLayer( |
| | | treeNode.name, |
| | | treeNode.urls, |
| | | de, |
| | | "0", |
| | | treeNode.checked |
| | | ); |
| | | } else if (treeNode.class === "polyline") { |
| | | de = { |
| | | id: treeNode.id, |
| | | layertype: "polylinelayer", |
| | | material: sgworld.Core.defaultValue(treeNode.color, "#ffffff"), |
| | | outlineColor: sgworld.Core.defaultValue( |
| | | treeNode.outlineColor, |
| | | "#ffffff" |
| | | ), |
| | | outlineWidth: sgworld.Core.defaultValue(treeNode.outlineWidth, 0), |
| | | height: sgworld.Core.defaultValue(treeNode.height, undefined), |
| | | width: sgworld.Core.defaultValue(treeNode.width, 2), |
| | | clampToGround: sgworld.Core.defaultValue( |
| | | treeNode.clampToGround, |
| | | true |
| | | ), |
| | | classificationType: treeNode.classificationType, |
| | | dash: sgworld.Core.defaultValue(treeNode.dash, false), |
| | | dashLength: sgworld.Core.defaultValue(treeNode.dashLength, 20), |
| | | gapColor: sgworld.Core.defaultValue( |
| | | treeNode.gapColor, |
| | | "rgba(0,0,0,0)" |
| | | ), |
| | | near: sgworld.Core.defaultValue(treeNode.near, 0), |
| | | far: sgworld.Core.defaultValue(treeNode.far, Infinity), |
| | | }; |
| | | |
| | | layer = sgworld.Creator.createPolylineGeoJsonFeatureLayer( |
| | | treeNode.name, |
| | | treeNode.urls, |
| | | de, |
| | | "0", |
| | | treeNode.checked |
| | | ); |
| | | } else if (treeNode.class === "polylineVolume") { |
| | | de = { |
| | | id: treeNode.id, |
| | | material: sgworld.Core.defaultValue(treeNode.color, "#ff0000"), |
| | | slttype: "0", |
| | | number: "4", |
| | | exradius: "1", |
| | | inradius: "1", |
| | | orth_width: "2", |
| | | orth_height: "2", |
| | | radius: sgworld.Core.defaultValue(treeNode.radius, 5), |
| | | cornerType: "0", |
| | | heightReference: "0", |
| | | height: sgworld.Core.defaultValue(treeNode.lineHeight, 0), |
| | | near: "0", |
| | | far: "99999999999", |
| | | radiusScale: treeNode.radiusScale, |
| | | connect: true, |
| | | }; |
| | | layer = sgworld.Creator.createpolylineVolumeGeojsonPrimitiveLayer( |
| | | treeNode.name, |
| | | treeNode.urls, |
| | | de, |
| | | "0", |
| | | true, |
| | | function (data) { |
| | | if (treeNode.flow) { |
| | | let lines = data.entities.values; |
| | | lines.forEach((line) => { |
| | | line.polylineVolume.material = |
| | | sgworld.Core.getTrailLinkMaterial( |
| | | sgworld.Core.defaultValue(treeNode.color, "#ff0000"), |
| | | "../static/images/smoke.png", |
| | | 9000 |
| | | ); |
| | | }); |
| | | } |
| | | } |
| | | ); |
| | | } else if (treeNode.class === "model") { |
| | | de = { |
| | | id: treeNode.id, |
| | | collect: 0, |
| | | uri: sgworld.Core.defaultValue(treeNode.model, ""), |
| | | file: "", |
| | | color: sgworld.Core.defaultValue(treeNode.color, "#ffffff"), |
| | | scale: sgworld.Core.defaultValue(treeNode.scale, 1), |
| | | heightReference: 0, |
| | | height: sgworld.Core.defaultValue(treeNode.height, 0), |
| | | near: "0", |
| | | far: "99999999999", |
| | | }; |
| | | layer = sgworld.Creator.createModelPointGeoJsonFeatureLayer( |
| | | treeNode.name, |
| | | treeNode.urls, |
| | | de, |
| | | "0", |
| | | true |
| | | ); |
| | | } else if (treeNode.class === "polygon") { |
| | | treeNode.disableDepthTestDistance === "Infinity" && |
| | | (treeNode.disableDepthTestDistance = Number.POSITIVE_INFINITY); |
| | | |
| | | de = { |
| | | id: treeNode.id, |
| | | material: sgworld.Core.defaultValue(treeNode.color, "#ff0000"), |
| | | height: sgworld.Core.defaultValue(treeNode.height, 0), |
| | | outlineColor: sgworld.Core.defaultValue( |
| | | treeNode.outlineColor, |
| | | "#ff0000" |
| | | ), |
| | | extrudedHeight: sgworld.Core.defaultValue( |
| | | treeNode.extrudedHeight, |
| | | 0 |
| | | ), |
| | | outlineWidth: sgworld.Core.defaultValue(treeNode.outlineWidth, 0), |
| | | outline: sgworld.Core.defaultValue(treeNode.outline, true), |
| | | clampToGround: sgworld.Core.defaultValue( |
| | | treeNode.clampToGround, |
| | | treeNode.extrudedHeight === undefined && |
| | | treeNode.height === undefined |
| | | ), |
| | | classificationType: treeNode.classificationType, |
| | | near: sgworld.Core.defaultValue(treeNode.near, 0), |
| | | far: sgworld.Core.defaultValue(treeNode.far, Infinity), |
| | | |
| | | text: treeNode.text, |
| | | font: sgworld.Core.defaultValue(treeNode.font, "微软é
é»"), |
| | | labelNear: treeNode.labelNear, |
| | | labelFar: treeNode.labelFar, |
| | | fontSize: sgworld.Core.defaultValue(treeNode.size, "18px"), |
| | | italic: treeNode.italic, |
| | | bold: treeNode.bold, |
| | | pixelOffset: new Cesium.Cartesian2( |
| | | sgworld.Core.defaultValue(treeNode.offsetX, 0), |
| | | sgworld.Core.defaultValue(treeNode.offsetY, 0) |
| | | ), |
| | | labelOutlineWidth: 2, |
| | | disableDepthTestDistance: treeNode.disableDepthTestDistance, |
| | | |
| | | water: treeNode.water, |
| | | }; |
| | | layer = sgworld.Creator.createPolygonGeoJsonFeatureLayer( |
| | | treeNode.name, |
| | | treeNode.urls, |
| | | de, |
| | | "0", |
| | | treeNode.checked |
| | | ); |
| | | } |
| | | break; |
| | | case "pathLayer": |
| | | layer = sgworld.Creator.createPathLayer({ |
| | | id: treeNode.id, |
| | | url: treeNode.url, |
| | | color: treeNode.color || "#0033FF", //线çé¢è² |
| | | width: treeNode.width || 4.0, //线ç宽度 |
| | | pointColor: treeNode.pointColor || "#FFFFFF", //ç§»å¨ç¹çé¢è² |
| | | speed: treeNode.speed || 5, |
| | | far: treeNode.far || 5000, |
| | | }); |
| | | break; |
| | | case "vector": { |
| | | let urls = { |
| | | url: treeNode.urls, |
| | | layer: treeNode.layer, |
| | | srs: treeNode.srs, |
| | | }; |
| | | if ( |
| | | treeNode.class === "point" || |
| | | treeNode.class === "label" || |
| | | treeNode.class === "image" |
| | | ) { |
| | | treeNode.disableDepthTestDistance === "Infinity" && |
| | | (treeNode.disableDepthTestDistance = Number.POSITIVE_INFINITY); |
| | | if (treeNode.style) { |
| | | // de = getVectorStyleFromSG(treeNode, treeNode.style); |
| | | } else { |
| | | de = { |
| | | id: treeNode.id, |
| | | level_min: sgworld.Core.defaultValue(treeNode.minimumLevel, 10), |
| | | level_max: sgworld.Core.defaultValue(treeNode.maximumLevel, 22), |
| | | fillColor: sgworld.Core.defaultValue(treeNode.color, "#ffffff"), |
| | | color: sgworld.Core.defaultValue( |
| | | treeNode.imageColor, |
| | | undefined |
| | | ), |
| | | outlineColor: sgworld.Core.defaultValue( |
| | | treeNode.outlineColor, |
| | | "#ffffff" |
| | | ), |
| | | backgroundColor: sgworld.Core.defaultValue( |
| | | treeNode.backgroundColor, |
| | | "#ffffff" |
| | | ), |
| | | heightReference: sgworld.Core.defaultValue( |
| | | treeNode.heightReference, |
| | | 0 |
| | | ), |
| | | pointHeight: sgworld.Core.defaultValue( |
| | | treeNode.pointHeight, |
| | | undefined |
| | | ), |
| | | near: sgworld.Core.defaultValue(treeNode.near, 0), |
| | | far: sgworld.Core.defaultValue(treeNode.far, 99999999999), |
| | | bold: treeNode.bold, |
| | | italic: treeNode.italic, |
| | | showBackground: treeNode.showBackground, |
| | | outlineWidth: sgworld.Core.defaultValue( |
| | | treeNode.outlineWidth, |
| | | 1 |
| | | ), |
| | | text: treeNode.text, |
| | | image: treeNode.image, |
| | | font_size: treeNode.size, |
| | | font_family: sgworld.Core.defaultValue( |
| | | treeNode.font_family, |
| | | "微软é
é»" |
| | | ), |
| | | disableDepthTestDistance: sgworld.Core.defaultValue( |
| | | treeNode.disableDepthTestDistance, |
| | | undefined |
| | | ), |
| | | labelData: treeNode.labelData, |
| | | imageData: treeNode.imageData, |
| | | }; |
| | | } |
| | | |
| | | if ( |
| | | treeNode.text && |
| | | treeNode.image && |
| | | !treeNode.labelData && |
| | | !treeNode.imageData |
| | | ) { |
| | | de.labelData = { |
| | | horizontalOrigin: Cesium.HorizontalOrigin.LEFT, |
| | | pixelOffset: new Cesium.Cartesian2(20, 0), |
| | | }; |
| | | de.imageData = { |
| | | horizontalOrigin: Cesium.HorizontalOrigin.CENTER, |
| | | pixelOffset: new Cesium.Cartesian2(0, 0), |
| | | }; |
| | | } |
| | | urls.upperLevelLimit = de.level_max; |
| | | urls.lowerLevelLimit = de.level_min; |
| | | layer = sgworld.Creator.createLabelImageGeoJsonFeatureLayerProvider( |
| | | treeNode.name, |
| | | urls, |
| | | de, |
| | | "0", |
| | | treeNode.checked, |
| | | function () {} |
| | | ); |
| | | } else if (treeNode.class === "polylineVolume") { |
| | | de = { |
| | | id: treeNode.id, |
| | | level_min: sgworld.Core.defaultValue(treeNode.minimumLevel, 10), |
| | | level_max: sgworld.Core.defaultValue(treeNode.maximumLevel, 22), |
| | | material: sgworld.Core.defaultValue(treeNode.color, "#ff0000"), |
| | | slttype: "0", |
| | | number: "4", |
| | | exradius: "1", |
| | | inradius: "1", |
| | | orth_width: "2", |
| | | orth_height: "2", |
| | | radius: sgworld.Core.defaultValue(treeNode.radius, 0.5), |
| | | cornerType: "0", |
| | | heightReference: "0", |
| | | height: sgworld.Core.defaultValue(treeNode.height, 0), |
| | | near: sgworld.Core.defaultValue(treeNode.near, 0), |
| | | far: sgworld.Core.defaultValue(treeNode.far, 99999999999), |
| | | radiusScale: treeNode.radiusScale, |
| | | }; |
| | | urls.upperLevelLimit = de.level_max; |
| | | urls.lowerLevelLimit = de.level_min; |
| | | layer = sgworld.Creator.createVolumeGeoJsonFeatureLayerProvider( |
| | | treeNode.name, |
| | | urls, |
| | | de, |
| | | "0", |
| | | treeNode.checked, |
| | | function () {} |
| | | ); |
| | | } else if (treeNode.class === "polyline") { |
| | | de = { |
| | | id: treeNode.id, |
| | | layertype: "polylinelayer", |
| | | level_min: sgworld.Core.defaultValue(treeNode.minimumLevel, 10), |
| | | level_max: sgworld.Core.defaultValue(treeNode.maximumLevel, 22), |
| | | material: sgworld.Core.defaultValue(treeNode.color, "#ffffff"), |
| | | outlineColor: sgworld.Core.defaultValue( |
| | | treeNode.outlineColor, |
| | | "#ffffff" |
| | | ), |
| | | outlineWidth: sgworld.Core.defaultValue(treeNode.outlineWidth, 0), |
| | | height: sgworld.Core.defaultValue(treeNode.height, undefined), |
| | | width: sgworld.Core.defaultValue(treeNode.width, 2), |
| | | clampToGround: sgworld.Core.defaultValue( |
| | | treeNode.clampToGround, |
| | | true |
| | | ), |
| | | classificationType: treeNode.classificationType, |
| | | dash: sgworld.Core.defaultValue(treeNode.dash, false), |
| | | dashLength: sgworld.Core.defaultValue(treeNode.dashLength, 20), |
| | | gapColor: sgworld.Core.defaultValue( |
| | | treeNode.gapColor, |
| | | "rgba(0,0,0,0)" |
| | | ), |
| | | near: sgworld.Core.defaultValue(treeNode.near, 0), |
| | | far: sgworld.Core.defaultValue(treeNode.far, Infinity), |
| | | }; |
| | | urls.upperLevelLimit = de.level_max; |
| | | urls.lowerLevelLimit = de.level_min; |
| | | |
| | | layer = |
| | | sgworld.Creator.createPrimitivePolylineVectorGeoJsonFeatureLayerProvider( |
| | | treeNode.name, |
| | | urls, |
| | | de, |
| | | "0", |
| | | treeNode.checked, |
| | | function () {} |
| | | ); |
| | | } else if (treeNode.class === "polygon") { |
| | | de = { |
| | | id: treeNode.id, |
| | | layertype: "polygonlayer", |
| | | level_min: sgworld.Core.defaultValue(treeNode.minimumLevel, 10), |
| | | level_max: sgworld.Core.defaultValue(treeNode.maximumLevel, 22), |
| | | material: sgworld.Core.defaultValue(treeNode.color, "#ff0000"), |
| | | heightReference: "1", |
| | | height: sgworld.Core.defaultValue(treeNode.height, 0), |
| | | extrudedHeight: sgworld.Core.defaultValue( |
| | | treeNode.extrudedHeight, |
| | | 0 |
| | | ), |
| | | extrudedHeightReference: "1", |
| | | clampToGround: sgworld.Core.defaultValue( |
| | | treeNode.clampToGround, |
| | | false |
| | | ), |
| | | classificationType: treeNode.classificationType, |
| | | near: sgworld.Core.defaultValue(treeNode.near, 0), |
| | | far: sgworld.Core.defaultValue(treeNode.far, Infinity), |
| | | }; |
| | | urls.upperLevelLimit = de.level_max; |
| | | urls.lowerLevelLimit = de.level_min; |
| | | layer = |
| | | sgworld.Creator.createGeoJsonFeatureLayerProviderOptimization( |
| | | treeNode.name, |
| | | urls, |
| | | de, |
| | | "0", |
| | | treeNode.checked, |
| | | function () {} |
| | | ); |
| | | } else if (treeNode.class === "model") { |
| | | de = { |
| | | id: treeNode.id, |
| | | level_min: sgworld.Core.defaultValue(treeNode.minimumLevel, 10), |
| | | level_max: sgworld.Core.defaultValue(treeNode.maximumLevel, 22), |
| | | collect: 0, |
| | | uri: sgworld.Core.defaultValue(treeNode.model, ""), |
| | | file: "", |
| | | color: sgworld.Core.defaultValue(treeNode.color, "#ffffff"), |
| | | scale: sgworld.Core.defaultValue(treeNode.scale, 1), |
| | | heightReference: 0, |
| | | height: sgworld.Core.defaultValue(treeNode.height, 0), |
| | | near: "0", |
| | | far: "99999999999", |
| | | }; |
| | | //模åç¹ |
| | | urls.upperLevelLimit = de.level_max; |
| | | urls.lowerLevelLimit = de.level_min; |
| | | layer = sgworld.Creator.createModelGeoJsonFeatureLayerProvider( |
| | | treeNode.name, |
| | | urls, |
| | | de, |
| | | "0", |
| | | treeNode.checked, |
| | | function () {} |
| | | ); |
| | | } |
| | | layer && (treeNode.id = layer.treeobj.id); |
| | | break; |
| | | } |
| | | case "terrain": |
| | | layer = sgworld.Creator.createTerrain( |
| | | treeNode.name, |
| | | { |
| | | id: treeNode.id, |
| | | requestVertexNormals: true, |
| | | url: treeNode.urls, |
| | | }, |
| | | "0", |
| | | true, |
| | | "" |
| | | ); |
| | | break; |
| | | case "sgsterrain": |
| | | layer = sgworld.Creator.sfsterrainprovider( |
| | | treeNode.name, |
| | | { |
| | | id: treeNode.id, |
| | | layerName: treeNode.layer, |
| | | requestVertexNormals: true, |
| | | url: treeNode.urls || "", |
| | | token: treeNode.token, |
| | | cacheUrl: treeNode.cacheUrl, |
| | | cacheLevel: treeNode.cacheLevel, |
| | | }, |
| | | "0", |
| | | true, |
| | | "" |
| | | ); |
| | | break; |
| | | case "sgsterrain7.1": |
| | | layer = sgworld.Creator.sfsterrainprovider71( |
| | | treeNode.name, |
| | | { |
| | | id: treeNode.id, |
| | | layerName: treeNode.layer, |
| | | requestVertexNormals: true, |
| | | url: treeNode.urls, |
| | | token: treeNode.token, |
| | | cacheUrl: treeNode.cacheUrl, |
| | | cacheLevel: treeNode.cacheLevel, |
| | | }, |
| | | "0", |
| | | true, |
| | | "" |
| | | ); |
| | | break; |
| | | case "arcgisterrain": |
| | | layer = sgworld.Creator.createArcGISTerrain( |
| | | treeNode.name, |
| | | { |
| | | id: treeNode.id, |
| | | requestVertexNormals: true, |
| | | url: treeNode.urls, |
| | | }, |
| | | "0", |
| | | true, |
| | | "" |
| | | ); |
| | | break; |
| | | case "CesiumGlobeTerrain": |
| | | layer = sgworld.Creator.createCesiumTerrain( |
| | | treeNode.name, |
| | | { |
| | | id: treeNode.id, |
| | | requestVertexNormals: true, |
| | | }, |
| | | "0", |
| | | true, |
| | | "" |
| | | ); |
| | | break; |
| | | case "b3dm": |
| | | layer = sgworld.Creator.create3DTilesets( |
| | | treeNode.name, |
| | | treeNode.urls, |
| | | { |
| | | id: treeNode.id, |
| | | Level: treeNode.Level, |
| | | maximumScreenSpaceError: |
| | | treeNode.maximumScreenSpaceError && |
| | | parseInt(treeNode.maximumScreenSpaceError), |
| | | maximumMemoryUsage: |
| | | treeNode.maximumMemoryUsage && |
| | | parseInt(treeNode.maximumMemoryUsage), |
| | | geometricError: |
| | | treeNode.geometricError && parseInt(treeNode.geometricError), |
| | | }, |
| | | { |
| | | groundCenter: treeNode.Center, |
| | | groundheight: treeNode.modelHeight, |
| | | heading: treeNode.heading, |
| | | pitch: treeNode.pitch, |
| | | roll: treeNode.roll, |
| | | effects: treeNode.effects || false, |
| | | effectsMaxHeight: treeNode.effectsMaxHeight || 150, |
| | | colors: treeNode.alpha |
| | | ? "rgba(255,255,255," + treeNode.alpha + ")" |
| | | : treeNode.color || undefined, |
| | | }, |
| | | "0", |
| | | true |
| | | ); |
| | | break; |
| | | case "s3m": |
| | | layer = sgworld.Creator.createS3MLayer( |
| | | treeNode.urls, |
| | | sgworld._Viewer.scene, |
| | | function () {} |
| | | ); |
| | | break; |
| | | case "gltf": |
| | | var position = [treeNode.lon, treeNode.lat, treeNode.height]; |
| | | layer = sgworld.Creator.createModel( |
| | | position, |
| | | treeNode.urls, |
| | | { |
| | | id: treeNode.id, |
| | | scale: treeNode.scale || 1, |
| | | heading: treeNode.heading, |
| | | pitch: treeNode.pitch, |
| | | roll: treeNode.roll, |
| | | }, |
| | | "0", |
| | | treeNode.name, |
| | | "" |
| | | ); |
| | | break; |
| | | case "SimpleGraphic": |
| | | treeNode.type = treeNode.class; |
| | | layer = sgworld.Creator.SimpleGraphic.addFeature(treeNode); |
| | | break; |
| | | case "videoPolygon": |
| | | layer = sgworld.Creator.addVideoPolygon(treeNode.positions, { |
| | | url: treeNode.url, |
| | | angle: treeNode.angle, |
| | | }); |
| | | break; |
| | | case "MilitaryPlotting": |
| | | if (!treeNode.feature.id) { |
| | | treeNode.feature.id = treeNode.id; |
| | | } |
| | | if (!treeNode.feature.name) { |
| | | treeNode.feature.name = treeNode.name; |
| | | } |
| | | layer = sgworld.Creator.MilitaryPlotting.addFeature(treeNode.feature); |
| | | break; |
| | | case "ParticleEffect": |
| | | layer = sgworld.Analysis.createParticleEffect( |
| | | treeNode.name, |
| | | treeNode.position, |
| | | { |
| | | translation: Cesium.Cartesian3.fromElements(0, 0, 0), //平移 |
| | | } |
| | | ); |
| | | layer.name = treeNode.name; |
| | | break; |
| | | case "FlowField": |
| | | layer = sgworld.Creator.createTrailLine( |
| | | treeNode.positions, |
| | | treeNode.style |
| | | ); |
| | | layer.boundingSphere = Cesium.BoundingSphere.fromPoints( |
| | | treeNode.positions |
| | | ); |
| | | |
| | | break; |
| | | case "MobileWall": |
| | | layer = sgworld.Creator.createTrailLineWall( |
| | | treeNode.LineInterpolation.positions, |
| | | treeNode.style |
| | | ); |
| | | layer.boundingSphere = Cesium.BoundingSphere.fromPoints( |
| | | treeNode.LineInterpolation.positions |
| | | ); |
| | | break; |
| | | case "link": |
| | | layer = sgworld.Creator.createLinkPro( |
| | | sgworld.Core.toDegrees(treeNode.posisitons[0]), |
| | | sgworld.Core.toDegrees(treeNode.posisitons[1]), |
| | | { |
| | | clampToGround: true, |
| | | } |
| | | ); |
| | | break; |
| | | case "DiffusionSource": |
| | | layer = sgworld.Analysis.createMultiCircleScan( |
| | | treeNode.position, |
| | | treeNode.maxRadius, |
| | | treeNode.maxRadius.color, |
| | | 3000, |
| | | true |
| | | ); |
| | | break; |
| | | case "RiskDiffusion": |
| | | case "CircularDiffusion": |
| | | layer = sgworld.Analysis.createCircleScan( |
| | | treeNode.position, |
| | | treeNode.maxRadius, |
| | | treeNode.color, |
| | | 3000, |
| | | true |
| | | ); |
| | | break; |
| | | case "FanDiffusion": |
| | | layer = sgworld.Analysis.createSectorScan( |
| | | treeNode.position, |
| | | treeNode.distance, |
| | | "#ff0000", |
| | | 60, |
| | | treeNode.angle, |
| | | true, |
| | | 4000, |
| | | true |
| | | ); |
| | | break; |
| | | case "RadarMask": |
| | | layer = sgworld.Creator.createRectangularSensor( |
| | | treeNode.position, |
| | | treeNode.cylinder |
| | | ); |
| | | break; |
| | | case "DynamicSatellite": |
| | | let dtwxzsData = sgworld.Creator.createConeRadar(treeNode.position, { |
| | | color: "#7b9ef7", |
| | | radius: 200000, |
| | | }); |
| | | let weixin = sgworld.Creator.createModel( |
| | | treeNode.position, |
| | | window.SmartEarthRootUrl + "Workers/Model/weixin.gltf", |
| | | { scale: 15 }, |
| | | "0", |
| | | "嫿" |
| | | ); |
| | | layer = { dtwxzsData, weixin }; |
| | | layer.sourceType = "DynamicSatellite"; |
| | | break; |
| | | case "excavate": |
| | | var position = [treeNode.lon, treeNode.lat, treeNode.height]; |
| | | layer = sgworld.Creator.createModel( |
| | | position, |
| | | treeNode.urls, |
| | | { |
| | | id: treeNode.id, |
| | | scale: treeNode.scale || 1, |
| | | }, |
| | | pID, |
| | | treeNode.name, |
| | | "" |
| | | ); |
| | | treeNode.id = layer.treeobj.id; |
| | | break; |
| | | } |
| | | if (treeNode.sourceType !== "gltf" && (treeNode.lon || treeNode.lat)) { |
| | | treeNode.flyTo = [ |
| | | treeNode.lon, |
| | | treeNode.lat, |
| | | defaultValue(treeNode.height, 10000), |
| | | ]; |
| | | } |
| | | if (treeNode.minx && treeNode.miny && treeNode.maxx && treeNode.maxy) { |
| | | treeNode.flyTo = [ |
| | | treeNode.minx, |
| | | treeNode.miny, |
| | | treeNode.maxx, |
| | | treeNode.maxy, |
| | | ]; |
| | | } |
| | | if (treeNode.sourceType === "wfs") { |
| | | addTreeData(treeNode, layer); |
| | | } |
| | | if (treeNode.baseLayer) { |
| | | layer.item.baseLayer = true; |
| | | } |
| | | }, |
| | | changeplase(value) { |
| | | if (value.label.indexOf("广å·") > -1) { |
| | | this.chooseplase = "广å·"; |
| | | this.form.startTime = new Date("2019-10-08"); |
| | | this.form.endTime = new Date("2019-10-16"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 113.29503528791071, |
| | |
| | | }, |
| | | }); |
| | | } else { |
| | | this.chooseplase="䏿µ·"; |
| | | this.form.startTime=new Date("2016-06-01"); |
| | | this.form.endTime=new Date("2016-06-30"); |
| | | this.chooseplase = "䏿µ·"; |
| | | this.form.startTime = new Date("2016-06-01"); |
| | | this.form.endTime = new Date("2016-06-30"); |
| | | window.Viewer.camera.flyTo({ |
| | | destination: Cesium.Cartesian3.fromDegrees( |
| | | 121.23142475566037, |
| | |
| | | }); |
| | | } |
| | | }, |
| | | change () { |
| | | this.showdata1=false; |
| | | change() { |
| | | this.showdata1 = false; |
| | | }, |
| | | change1 () { |
| | | this.showdata2=false; |
| | | change1() { |
| | | this.showdata2 = false; |
| | | }, |
| | | openDia () { |
| | | bus.$emit("changeColor",true); |
| | | openDia() { |
| | | bus.$emit("changeColor", true); |
| | | }, |
| | | choose (value) { |
| | | let arr=value.split("-"); |
| | | this.form.freqStart=arr[0]; |
| | | this.form.freqEnd=arr[1]; |
| | | choose(value) { |
| | | let arr = value.split("-"); |
| | | this.form.freqStart = arr[0]; |
| | | this.form.freqEnd = arr[1]; |
| | | }, |
| | | close () { |
| | | this.showsituation=false; |
| | | close() { |
| | | this.showsituation = false; |
| | | }, |
| | | getdata (data) { |
| | | this.colorContainer=data; |
| | | getdata(data) { |
| | | this.colorContainer = data; |
| | | }, |
| | | // ç¹å»è·å¾æå¿ |
| | | getTaishi () { |
| | | if(hander) { |
| | | getTaishi() { |
| | | if (hander) { |
| | | return; |
| | | } |
| | | hander=new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); |
| | | hander = new Cesium.ScreenSpaceEventHandler(Viewer.scene.canvas); |
| | | let pickFeature; |
| | | // é¼ æ ç¹å»äºä»¶ |
| | | hander.setInputAction((event) => { |
| | | // æ¾å对象 |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | let clickPosition=viewer.scene.camera.pickEllipsoid(event.position); |
| | | divPoint3 && divPoint3.deleteObject(); |
| | | let clickPosition = viewer.scene.camera.pickEllipsoid(event.position); |
| | | // 转ç»çº¬åº¦ï¼å¼§åº¦ï¼åæ |
| | | let radiansPos=Cesium.Cartographic.fromCartesian(clickPosition); |
| | | let lon=Cesium.Math.toDegrees(radiansPos.longitude); |
| | | let lat=Cesium.Math.toDegrees(radiansPos.latitude); |
| | | let filename=this.nowfile; |
| | | let obj={ |
| | | let radiansPos = Cesium.Cartographic.fromCartesian(clickPosition); |
| | | let lon = Cesium.Math.toDegrees(radiansPos.longitude); |
| | | let lat = Cesium.Math.toDegrees(radiansPos.latitude); |
| | | let filename = this.nowfile; |
| | | let obj = { |
| | | lat: lat, |
| | | lng: lon, |
| | | analysisAction: "-1", |
| | |
| | | filename: filename, |
| | | }; |
| | | showCQ(obj).then((res) => { |
| | | let data=res.data; |
| | | if(data!="æ æ°æ®") { |
| | | divPoint3=sgworld.Creator.createDivPoint( |
| | | let data = res.data; |
| | | if (data != "æ æ°æ®") { |
| | | divPoint3 = sgworld.Creator.createDivPoint( |
| | | "åè¥", |
| | | { lon: obj.lng,lat: obj.lat }, |
| | | { lon: obj.lng, lat: obj.lat }, |
| | | { |
| | | type: "custom", |
| | | offset: ["c",60], |
| | | offset: ["c", 60], |
| | | description: ` |
| | | <div class="divPoint-custom"> |
| | | <p>${data}</p> |
| | |
| | | } |
| | | }); |
| | | //æä½ æ¾åçä¸è¥¿æå°åºæ¥ççä»ä¹å¼å¯ä»¥ç¨ä½å¤æ |
| | | },Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | }, Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | }, |
| | | analysis () { |
| | | analysis() { |
| | | this.reset(); |
| | | let that=this; |
| | | if(that.imageid) { |
| | | let that = this; |
| | | if (that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | that.imageid = null; |
| | | } |
| | | let data={ |
| | | let data = { |
| | | colorName: "-100,0000FF;120,FF0000", |
| | | startTime: "20160601000000", |
| | | endTime: 20160630000000, |
| | |
| | | analysisAction: "3", |
| | | analysisType: 1, |
| | | }; |
| | | data={ ...data,...this.form }; |
| | | data.freqStart=data.freqStart*1000000; |
| | | data.freqEnd=data.freqEnd*1000000; |
| | | data.startTime=data.startTime+"000000"; |
| | | data.endTime=data.endTime*1000000; |
| | | data.analysisType=="é¢ç¹"? (data.analysisType=1):""; |
| | | data = { ...data, ...this.form }; |
| | | data.freqStart = data.freqStart * 1000000; |
| | | data.freqEnd = data.freqEnd * 1000000; |
| | | data.startTime = data.startTime + "000000"; |
| | | data.endTime = data.endTime * 1000000; |
| | | data.analysisType == "é¢ç¹" ? (data.analysisType = 1) : ""; |
| | | delete data.radio; |
| | | if(this.showdata1) { |
| | | data.startTime=20160601000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.startTime=20160601000000) |
| | | :(data.startTime=20191008000000); |
| | | if (this.showdata1) { |
| | | data.startTime = 20160601000000; |
| | | this.chooseplase && this.chooseplase == "䏿µ·" |
| | | ? (data.startTime = 20160601000000) |
| | | : (data.startTime = 20191008000000); |
| | | } |
| | | if(this.showdata2) { |
| | | data.endTime=20160630000000; |
| | | this.chooseplase&&this.chooseplase=="䏿µ·" |
| | | ? (data.endTime=20160630000000) |
| | | :(data.endTime=20191016000000); |
| | | if (this.showdata2) { |
| | | data.endTime = 20160630000000; |
| | | this.chooseplase && this.chooseplase == "䏿µ·" |
| | | ? (data.endTime = 20160630000000) |
| | | : (data.endTime = 20191016000000); |
| | | } |
| | | const loading=that.$loading({ |
| | | const loading = that.$loading({ |
| | | lock: true, |
| | | text: "计ç®ä¸", |
| | | spinner: "el-icon-loading", |
| | | background: "rgba(0, 0, 0, 0.7)", |
| | | }); |
| | | data.points=data.points.value; |
| | | data.points = data.points.value; |
| | | freqBandAnalysis(data) |
| | | .then((res) => { |
| | | if(res.message==="Success") { |
| | | let points=res.data.imgBounds; |
| | | that.nowfile=Base64.encode(res.data.url) |
| | | var data1={ |
| | | if (res.message === "Success") { |
| | | let points = res.data.imgBounds; |
| | | that.nowfile = Base64.encode(res.data.url); |
| | | var data1 = { |
| | | colorSchemes: 1, |
| | | file: Base64.encode(res.data.url), |
| | | maxColor: "FF0000", |
| | |
| | | minValue: 0, |
| | | showBounds: this.form.points.value, |
| | | }; |
| | | data1={ ...data1,...this.colorContainer }; |
| | | data1 = { ...data1, ...this.colorContainer }; |
| | | createPic(data1) |
| | | .then((res2) => { |
| | | let rectangle=sgworld.Creator.addSimpleGraphic("rectangle",{ |
| | | let rectangle = sgworld.Creator.addSimpleGraphic("rectangle", { |
| | | removeEdit: true, |
| | | coordinates: Cesium.Rectangle.fromDegrees( |
| | | points.xmin, |
| | |
| | | ), |
| | | color: "rgba(255,255,255,0.5)", |
| | | image: |
| | | "http://221.224.53.36:9081/calc/picurl?file="+ |
| | | "http://221.224.53.36:9081/calc/picurl?file=" + |
| | | Base64.encode(res2.data), |
| | | }); |
| | | that.showDianci=true; |
| | | that.showDianci = true; |
| | | // å¾çè·åæå å¼å¯æ¾å |
| | | that.getTaishi(); |
| | | if(that.imageid) { |
| | | if (that.imageid) { |
| | | window.Viewer.entities.removeById(that.imageid); |
| | | that.imageid=null; |
| | | that.imageid = null; |
| | | } |
| | | that.imageid=rectangle.id; |
| | | that.imageid = rectangle.id; |
| | | |
| | | loading.close(); |
| | | that.$message({ |
| | | message: "è®¡ç®æå", |
| | | type: "success", |
| | | }); |
| | | that.showpic=true; |
| | | that.showpic = true; |
| | | }) |
| | | .catch((error) => { |
| | | loading.close(); |
| | |
| | | loading.close(); |
| | | }); |
| | | }, |
| | | reset () { |
| | | reset() { |
| | | //éç½® |
| | | if(this.imageid) { |
| | | if (this.imageid) { |
| | | window.Viewer.entities.removeById(this.imageid); |
| | | hander&& |
| | | hander && |
| | | hander.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_CLICK); |
| | | hander=null; |
| | | divPoint3&&divPoint3.deleteObject(); |
| | | hander = null; |
| | | divPoint3 && divPoint3.deleteObject(); |
| | | |
| | | this.imageid=null; |
| | | this.showDianci=false; |
| | | this.imageid = null; |
| | | this.showDianci = false; |
| | | } |
| | | }, |
| | | }, |
| | | watch: { |
| | | colorContainer: { |
| | | deep: true, |
| | | handler (data) { |
| | | let colornow={ |
| | | handler(data) { |
| | | let colornow = { |
| | | width: "30%", |
| | | height: "70%", |
| | | border: "1px solid #000", |
| | | transform: "translate(40px,90px)", |
| | | backgroundImage: `linear-gradient(${data.maxColor},${data.minColor})`, |
| | | }; |
| | | this.innerbac=colornow; |
| | | this.innerbac = colornow; |
| | | }, |
| | | }, |
| | | }, |
| | |
| | | .next { |
| | | width: 89%; |
| | | height: 79%; |
| | | margin: 100px auto; |
| | | margin: 30px auto; |
| | | } |
| | | .next >>> .el-select { |
| | | width: 95% !important; |
| | | } |
| | | .next >>> .el-form-item { |
| | | margin-top: 60px; |
| | | } |
| | | .next >>> .el-input { |
| | | width: 84%; |
| | | } |
| | | .next >>> .el-date-editor { |
| | | width: 515px; |
| | | } |
| | | .next >>> .el-form-item__label { |
| | | color: #fff; |
| | | font-size: 40px; |
| | | } |
| | | .next >>> .el-input__inner { |
| | | font-size: 30px; |
| | | } |
| | | .next >>> .el-form-item__error { |
| | | font-size: 30px; |
| | | font-weight: 700; |
| | | } |
| | | |
| | | .botcon { |
| | | display: inline-block; |
| | | margin-top: 34px; |
| | |
| | | top: 1200px; |
| | | right: 0px; |
| | | } |
| | | .layerTreeContainer { |
| | | /* padding: 20px; */ |
| | | /* background: url("../../assets/image/listbg.png") no-repeat; */ |
| | | /* background-size: 100% 100%; */ |
| | | /* position: absolute; */ |
| | | /* right: 700px; */ |
| | | /* top: 500px; */ |
| | | width: 100%; |
| | | height: 100%; |
| | | /* margin: 20px 0; */ |
| | | } |
| | | |
| | | .layerTreeContainer .layerTree { |
| | | height: 100%; |
| | | margin-bottom: 2px; |
| | | overflow-y: auto; |
| | | overflow-x: auto; |
| | | } |
| | | |
| | | .layerTreeContainer .el-tree { |
| | | background: transparent; |
| | | font-size: 45px; |
| | | color: white; |
| | | } |
| | | |
| | | .layerTreeContainer .el-tree /deep/ .el-tree-node__content { |
| | | background-color: transparent !important; |
| | | height: auto !important; |
| | | } |
| | | |
| | | .layerTreeContainer .el-tree /deep/ .el-tree-node__content:hover { |
| | | background-color: rgba(255, 255, 255, 0.4) !important; |
| | | } |
| | | |
| | | .layerTreeContainer .el-tree /deep/ .is-current > .el-tree-node__content { |
| | | background-color: rgba(255, 255, 255, 0.4) !important; |
| | | } |
| | | |
| | | .layerTreeContainer |
| | | .el-tree |
| | | /deep/ |
| | | .is-indeterminate |
| | | .el-checkbox__inner:before { |
| | | top: 10px; |
| | | height: 19px; |
| | | width: 40px; |
| | | } |
| | | .layerTreeContainer .el-tree /deep/ .el-tree-node__expand-icon { |
| | | font-size: 40px; |
| | | } |
| | | .layerTreeContainer .el-tree /deep/ .el-checkbox .el-checkbox__inner { |
| | | width: 40px; |
| | | height: 40px; |
| | | } |
| | | .layerTreeContainer |
| | | .el-tree |
| | | /deep/ |
| | | .el-checkbox__input.is-checked |
| | | .el-checkbox__inner:after { |
| | | border: 7px solid #fff; |
| | | border-left: 0; |
| | | border-top: 0; |
| | | height: 23px; |
| | | left: 11px; |
| | | position: absolute; |
| | | top: 5px; |
| | | width: 10px; |
| | | } |
| | | |
| | | .layerTreeContainer |
| | | .el-tree |
| | | /deep/ |
| | | .el-checkbox__input |
| | | .is-checked |
| | | .el-checkbox__inner { |
| | | background-color: #409eff; |
| | | } |
| | | |
| | | .layerTreeContainer |
| | | .el-tree |
| | | /deep/ |
| | | .el-checkbox__input.is-checked |
| | | .el-checkbox__inner { |
| | | border-color: #409eff; |
| | | } |
| | | </style> |
| | | |