|
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':
|
earthCtrl.factory.createScreenshot();
|
break;
|
default:
|
return null;
|
break;
|
}
|
},
|
};
|
export default menuManager;
|