From ed837798421340859efca21e46adc17575bdfef8 Mon Sep 17 00:00:00 2001 From: yxl <584911253@qq.com> Date: 星期五, 10 一月 2025 16:23:17 +0800 Subject: [PATCH] 最新修改 --- src/assets/js/mapSetFunc.js | 260 +++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 226 insertions(+), 34 deletions(-) diff --git a/src/assets/js/mapSetFunc.js b/src/assets/js/mapSetFunc.js index 535b587..2c8d2f9 100644 --- a/src/assets/js/mapSetFunc.js +++ b/src/assets/js/mapSetFunc.js @@ -19,6 +19,12 @@ case "queryMeta": this.creatQueryMeta(res); break; + case "aroundPoi_2": + this.addWfsLayer(res); + break; + case "getParam": + this.addTetrahedron(res); + break; } }, creatQueryMeta(res) { @@ -37,16 +43,19 @@ this.setModelChangeColor(colors); }, setModelChangeColor(res) { - const modelLayer = mapServer.listData.filter((res) => { - if (res.name == config.modelLayer) { - return res; + console.log('mapServer.listData', mapServer.listData, config.modelLayer); + const modelLayer = mapServer.listData.filter((obj) => { + if (obj.name == config.modelLayer) { + return obj; } }); if (modelLayer.length <= 0) return; + earthCtrl.userScene.flyTo(modelLayer[0].layer); modelLayer[0].layer.style = new Cesium.Cesium3DTileStyle({ color: { evaluateColor: (feature) => { const id = feature.getProperty("id"); + console.log("id**********", id); const color = res.filter((item) => { if (item.ids.indexOf(id) > -1) { return item; @@ -153,37 +162,31 @@ }, creatPoiMap(res) { - const poi = res.data; - // const label = earthCtrl.factory.createLabel({ - // lon: poi._x, - // lat: poi._y, - // text: this.getName(poi), - // alt: 150, - // image: SmartEarthRootUrl + "Workers/image/fighter.png", - // // 鏂囨湰鍋忕Щ閲� - // pixelOffset: new SmartEarth.Cesium.Cartesian2(0, -50), - // // 鍥剧墖鍋忕Щ閲� - // iPixelOffset: new SmartEarth.Cesium.Cartesian2(0, -20) - // }); - const label = earthCtrl.factory.createLabel({ - name: "鍒涘缓鏂囨湰", - id: earthCtrl.factory.createUUID(), - text: this.getName(poi), - font: "22pt monospace", - outlineWidth: 2, - fillColor: SmartEarth.Cesium.Color.YELLOW, - lon: poi._x, - lat: poi._y, - alt: poi.height ? poi.height + 10 : 100, - iDistanceDisplayCondition: (100, 3000) - }); - setTimeout(() => { - this.setEntityTitlesChangeColor(poi.seid); - }, 200); - earthCtrl.userScene.flyTo(label); - this.layerList.push({ - layer: label, - func: res.func + res.data.forEach((poi, index) => { + // const poi = res.data[0]; + console.log('poi------', poi) + const label = earthCtrl.factory.createLabel({ + name: "鍒涘缓鏂囨湰", + id: earthCtrl.factory.createUUID(), + text: poi.name,//this.getName(poi), + font: "22pt monospace", + outlineWidth: 2, + fillColor: SmartEarth.Cesium.Color.YELLOW, + lon: poi.lontitude, + lat: poi.lattitude, + alt: poi.height ? poi.height + 10 : 100, + iDistanceDisplayCondition: (100, 3000) + }); + setTimeout(() => { + this.setEntityTitlesChangeColor(poi.seid); + }, 200); + if (index == 0) { + earthCtrl.userScene.flyTo(label); + } + this.layerList.push({ + layer: label, + func: res.func + }); }); }, setEntityTitlesChangeColor(res) { @@ -231,6 +234,20 @@ return name; }, creatAroundPoi(res) { + let colors = []; + res.data.forEach((element) => { + colors.push({ + name: element.type, + color: element.color, + ids: element.list + }); + }) + console.log('colors----', colors); + store.state.setListColor = colors; + store.state.showLenged = true; + this.setModelChangeColor(colors); + }, + creatAroundPoi1111(res) { const poi = res.data; var std = []; var feature = { @@ -312,6 +329,160 @@ } }); }, + + // 娣诲姞wfs + addWfsLayer(res) { + if (window.terrain) { + window.terrain.removeFromMap(); + window.terrain = null; + } + // earthCtrl.viewer.scene.globe.show = false; + earthCtrl.viewer.camera.flyTo({ + destination: { + x: -3475710.5684351875, + y: 5625834.799523204, + z: 2729961.751894543, + }, + orientation: { + heading: 5.73978482494632, + pitch: -1.2817819264676036, + roll: 6.282989918773924, + }, + }); + const layer1 = earthCtrl.factory.createWfsLayer('point', { + urls: 'https://cim.smartearth.cn/geoserver/JiaShanBase/ows', + layer: 'JiaShanBase:RadarSpot', + text: '[JiaShanBase:Type]', + color: '#de3', + disableDepthTestDistance: Infinity + }) + this.layerList.push({ + layer: layer1, + func: res.func + }); + const layer2 = earthCtrl.factory.createWfsLayer('polyline', { + urls: 'https://cim.smartearth.cn/geoserver/JiaShanBase/ows', + layer: 'JiaShanBase:RadarL', + width: 1.5, + color: '#87CEFA', + disableDepthTestDistance: Number.POSITIVE_INFINITY, + }) + this.layerList.push({ + layer: layer2, + func: res.func + }); + const layer3 = earthCtrl.factory.createWfsLayer('polyline', { + urls: 'https://cim.smartearth.cn/geoserver/JiaShanBase/ows', + layer: 'JiaShanBase:RadarM', + width: 1.5, + color: '#de3', + disableDepthTestDistance: Number.POSITIVE_INFINITY, + }) + this.layerList.push({ + layer: layer3, + func: res.func + }); + const layer4 = earthCtrl.factory.createWfsLayer('polyline', { + urls: 'https://cim.smartearth.cn/geoserver/JiaShanBase/ows', + layer: 'JiaShanBase:RadarS', + width: 1.5, + color: '#FF0000', + disableDepthTestDistance: Number.POSITIVE_INFINITY, + }) + this.layerList.push({ + layer: layer4, + func: res.func + }); + this.addRaderLayer(res); + }, + addRaderLayer(res) { + //闆疯揪閬僵鎵弿锛堣嚜瀹氫箟锛� + const option = { + radius: 150000, //鍗婂緞 + yaw: 0, //闆疯揪鏂瑰悜锛堝彲閫夛級 + angle: 120, //闆疯揪澶硅锛堝彲閫夛級 + scanAngle: 30, //鎵弿澶硅锛堝彲閫夛級 + speed: 5, //鍊嶉�燂紙鍙�夛級 + maxLat: 90, //涓嬬淮搴︼紙鍙�夛級 + minLat: 45, //涓婄淮搴︼紙鍙�夛級 + stackPartitions: 40, //妯悜缃戞牸鏁帮紙鍙�夛級 + slicePartitions: 80, //绾靛悜缃戞牸鏁帮紙鍙�夛級 + //color: 'rgba(255,255,255,0.5)', //闆疯揪閬僵棰滆壊锛堝彲閫夛級 + //outlineColor: 'rgba(255,255,255,0.5)', //闆疯揪閬僵杈规绾块鑹诧紙鍙�夛級 + //scanColor: 'rgba(255,0,0,0.5)', //鎵弿棰滆壊锛堝彲閫夛級 + }; + const position1 = [121.614202387521061, 23.990136825668284, 0]; + // 闆疯揪閬僵 + const layer = earthCtrl.factory.createRadarMaskScan('闆疯揪閬僵鎵弿1', position1, option) + this.layerList.push({ + layer: layer, + func: 'radarMaskScan' + }); + }, + //瑙嗛敟 + addTetrahedron(res) { + res.data.forEach((item,index) => { + const tetrahedron = earthCtrl.factory.addTetrahedron({ + position: { + lon: item.lontitude, + lat: item.lattitude, + height: item.height + }, + multiple: 0.05, + scale: new SmartEarth.Cesium.Cartesian3(100, 100, 100), + color: "#FF0000", + outlineColor: "#FF0000" + }); + if (index == 0) { + earthCtrl.camera.flyTo(item.lontitude, item.lattitude, 5000, 0, -90, 0, 2); + const modelLayer = mapServer.listData.filter((obj) => { + if (obj.name == config.modelLayer) { + return obj; + } + }); + // debugger + if (modelLayer.length <= 0) return; + // earthCtrl.userScene.flyTo(modelLayer[0].layer); + // modelLayer[0].layer.style = new Cesium.Cesium3DTileStyle({ + // color: { + // evaluateColor: (feature) => { + // const id = feature.getProperty("id"); + // // if (id === 'de9b9f1f-bea5-11ef-bbd1-ac82473c08a6') { + // // debugger + // // // const boundingVolume = feature.tileset.root.boundingVolume + // // // const center = Cesium.BoundingVolume.computeBoundingVolume(boundingVolume, feature.tileset.root.transform); + // // // debugger + // // earthCtrl.viewer.camera.flyTo({ + // // destination: center, + // // duration: 2.0 + // // }); + // // // earthCtrl.userScene.flyTo(feature); + // // // return new SmartEarth.Cesium.Color.fromCssColorString( + // // // '#FF0000' + // // // ); + // // } + // // console.log("id**********", id); + // // const color = res.filter((item) => { + // // if (item.ids.indexOf(id) > -1) { + // // return item; + // // } + // // }); + // // if (color.length > 0) { + // // return new SmartEarth.Cesium.Color.fromCssColorString( + // // color[0].color + // // ); + // // } + // } + // } + // }); + } + this.layerList.push({ + layer: tetrahedron, + func: 'tetrahedron' + }); + }) + }, + removeAll() { store.state.setListColor = []; store.state.showLenged = false; @@ -349,6 +520,27 @@ this.layerList.splice(i, 1); i--; } + else if (obj.func == "aroundPoi_2") { + this.layerList[i].layer.destroy(); + this.layerList.splice(i, 1); + i--; + } + else if (obj.func == "radarMaskScan") { + this.layerList[i].layer.deleteObject(); + this.layerList.splice(i, 1); + i--; + } + else if (obj.func == "tetrahedron") { + this.layerList[i].layer.deleteObject(); + this.layerList.splice(i, 1); + i--; + } + } + if (!window.terrain) { + window.terrain = earthCtrl.factory.createTerrainLayer({ + sourceType: "ctb", + url: config.terrainUrl + }); } } }; -- Gitblit v1.9.3