const menuManager = { pid: null, pointFly: null, colorAll: { point: SmartEarth.Cesium.Color.fromCssColorString('#ff0000'), polyline: SmartEarth.Cesium.Color.fromCssColorString('#ffff0050'), polygon: SmartEarth.Cesium.Color.fromCssColorString('#ffff0050'), }, init(res) { switch (res.pid) { case 's1': //配网巡检 return this.setMenuS1(res); break; case 's2': //配网运检 return this.setMenuS2(res); break; case 's3': //配网灾害管理 return this.setMenuS3(res); break; case 's4': //图层管理 return this.setMenuS4(res); break; case 's5': //漫游 return this.setMenuS5(res); break; case 's6': //定位 return this.setMenuS6(res); break; case 's7': //标绘 return this.setMenuS7(res); break; case 's8': //测量 return this.setMenuS8(res); break; case 's9': //特效 return this.setMenuS9(res); break; } }, //配网巡检 setMenuS1(res) { switch (res.id) { case 'a1': return res.name; break; default: return null; break; } }, // 配网运检 setMenuS2(res) { switch (res.id) { case 'a1': case 'a2': return res.name; break; default: return null; break; } }, // 灾害管理 setMenuS3(res) { switch (res.id) { case 'a1': return res.name; break; default: return null; break; } }, //图层管理 setMenuS4(res) { switch (res.id) { case 'a1': return res.name; break; default: return null; break; } }, // 漫游 setMenuS5(res) { switch (res.id) { case 'a1': if (this.pointFly) { this.pointFly.removeFromMap(); } else { earthCtrl.factory.createSimpleGraphic('billboard', {}, (entity) => { const position = entity.position.getValue(); const coordinate = earthCtrl.core.toDegrees(position); this.pointFly = earthCtrl.camera.rotateCamera({ lon: coordinate.lon, lat: coordinate.lat, distance: 1000, pitch: -30, }); }); } return null; break; case 'a2': return res.name; break; case 'a3': earthCtrl.analysis.createIndoormode({ showHelp: true }); return null; break; default: return null; break; } }, // 定位 setMenuS6(res) { switch (res.id) { case 'a1': return res.name; break; default: return null; break; } }, // 标绘 setMenuS7(res) { switch (res.id) { case 'a1': earthCtrl.factory.createSimpleGraphic('point', {}, (entity) => {}); break; case 'a2': earthCtrl.factory.createSimpleGraphic('label', {}, (entity) => {}); break; case 'a3': earthCtrl.factory.createSimpleGraphic('polyline', { showSize: false }, (entity) => {}); break; case 'a4': earthCtrl.factory.createSimpleGraphic('rectangle', { showSize: false }, (entity) => {}); break; case 'a5': earthCtrl.factory.createSimpleGraphic('polygon', { showSize: false }, (entity) => {}); break; case 'a6': earthCtrl.factory.SimpleGraphic.clear(); break; default: break; } return null; }, // 测量 setMenuS8(res) { const colorAll = this.colorAll; switch (res.id) { case 'a1': earthCtrl.measure.clampLineDistance(colorAll, (e) => {}); break; case 'a2': earthCtrl.measure.altitude(colorAll, (e) => {}); break; case 'a3': earthCtrl.measure.surfaceArea( { ...colorAll, tin: true, // 是否显示tin三角网 onlyTerrain: false, // 是否只测量精细地形 }, (e) => {} ); break; case 'a4': earthCtrl.measure.planeArea(colorAll, (e) => {}); break; case 'a5': earthCtrl.measure.horizontalDistance(colorAll, (e) => {}); break; case 'a6': earthCtrl.measure.clearResult(); break; } }, // 特效 setMenuS9(res) { switch (res.id) { case 'a1': return res.name; break; case 'a2': return res.name; break; default: return null; break; } }, }; export default menuManager;