| | |
| | | case "queryMeta": |
| | | this.creatQueryMeta(res); |
| | | break; |
| | | case "aroundPoi_2": |
| | | this.addWfsLayer(res); |
| | | break; |
| | | case "getParam": |
| | | this.addTetrahedron(res); |
| | | break; |
| | | } |
| | | }, |
| | | creatQueryMeta(res) { |
| | |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | // 添加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; |
| | |
| | | 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 |
| | | }); |
| | | } |
| | | } |
| | | }; |