|
|
|
import { Type } from "class-transformer";
|
|
|
|
|
|
|
|
import { MarkData_Area } from "./other/mark-data-area";
|
|
|
|
import { MarkData, MarkType, MarkKindType, MarkTagPos, MarkTask } from "./mark-data";
|
|
|
|
import { MarkData_Line } from "./other/mark-data-line";
|
|
|
|
import { MarkData_multiLine } from "./other/mark-data-multi-line";
|
|
|
|
import { MarkData_multiArrow_CT, MarkData_multiArrow_JG } from "./other/mark-data-multi-arrow";
|
|
|
|
import { ConfigManager } from "src/app/babylon/controller/config-manager";
|
|
|
|
|
|
|
|
|
|
|
|
export class AllMarkData {
|
|
|
|
/**
|
|
|
|
* 灾情
|
|
|
|
*/
|
|
|
|
@Type(() => MarkData)
|
|
|
|
marks_Disaster: MarkData[] = [];
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 消防力量
|
|
|
|
*/
|
|
|
|
@Type(() => MarkData)
|
|
|
|
marks_FireFighting: MarkData[] = [];
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 联动力量
|
|
|
|
*/
|
|
|
|
@Type(() => MarkData)
|
|
|
|
marks_Linkage: MarkData[] = [];
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 内部力量
|
|
|
|
*/
|
|
|
|
@Type(() => MarkData)
|
|
|
|
marks_Inside: MarkData[] = [];
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 标绘工具
|
|
|
|
*/
|
|
|
|
@Type(() => MarkData)
|
|
|
|
marks_Tool: MarkData[] = [];
|
|
|
|
|
|
|
|
static CreateAllMarkData(): AllMarkData {
|
|
|
|
let result = new AllMarkData();
|
|
|
|
|
|
|
|
//灾情
|
|
|
|
let tagPos: MarkTagPos = MarkTagPos.Disaster;
|
|
|
|
AllMarkData.newMarkData(MarkType.SYA, MarkKindType.Persion, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.SYB, MarkKindType.Persion, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.SYC, MarkKindType.Persion, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.SYD, MarkKindType.Persion, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.ZQR, MarkKindType.Persion, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.WXP, MarkKindType.Goods, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.ZWD, MarkKindType.Goods, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.PCD, MarkKindType.Goods, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.H, MarkKindType.Effect, tagPos, result, undefined, false);
|
|
|
|
AllMarkData.newMarkData(MarkType.TPH, MarkKindType.Effect, tagPos, result, undefined, false);
|
|
|
|
AllMarkData.newMarkData(MarkType.SNH, MarkKindType.Effect, tagPos, result, undefined, false);
|
|
|
|
AllMarkData.newMarkData(MarkType.YWA, MarkKindType.Effect, tagPos, result, undefined, false);
|
|
|
|
AllMarkData.newMarkData(MarkType.YWB, MarkKindType.Effect, tagPos, result, undefined, false);
|
|
|
|
AllMarkData.newMarkData(MarkType.YWC, MarkKindType.Effect, tagPos, result, undefined, false);
|
|
|
|
|
|
|
|
//消防力量
|
|
|
|
tagPos = MarkTagPos.FireFighting;
|
|
|
|
AllMarkData.newMarkData(MarkType.MHF, MarkKindType.Persion, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.JYF, MarkKindType.Persion, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.GRF, MarkKindType.Persion, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.FHF, MarkKindType.Persion, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.BHF, MarkKindType.Persion, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.YWXFY, MarkKindType.Persion, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.AQS, MarkKindType.Persion, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.MTC, MarkKindType.Car, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.XLC, MarkKindType.Car, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.SGC, MarkKindType.Car, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.PMC, MarkKindType.Car, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.GPC, MarkKindType.Car, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.DGPTC, MarkKindType.Car, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.YTC, MarkKindType.Car, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.QXJYC, MarkKindType.Car, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.QCC, MarkKindType.Car, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.ZMC, MarkKindType.Car, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.PCC, MarkKindType.Car, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.PYC, MarkKindType.Car, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.ZHC, MarkKindType.Car, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.GCGSC, MarkKindType.Car, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.KQHXCQC, MarkKindType.Car, tagPos, result);
|
|
|
|
|
|
|
|
//联动力量
|
|
|
|
tagPos = MarkTagPos.Linkage;
|
|
|
|
AllMarkData.newMarkData(MarkType.GA, MarkKindType.Persion, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.JJ, MarkKindType.Persion, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.YS, MarkKindType.Persion, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.QXRY, MarkKindType.Persion, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.JHC, MarkKindType.Car, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.JC, MarkKindType.Car, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.DLQXC, MarkKindType.Car, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.RQQXC, MarkKindType.Car, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.GSQXC, MarkKindType.Car, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.HBJCC, MarkKindType.Car, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.JTYSC, MarkKindType.Car, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.WSFYC, MarkKindType.Car, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.YJTXC, MarkKindType.Car, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.JCA, MarkKindType.Car, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.JCB, MarkKindType.Car, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.JCC, MarkKindType.Car, tagPos, result);
|
|
|
|
|
|
|
|
//内部力量
|
|
|
|
tagPos = MarkTagPos.Inside;
|
|
|
|
AllMarkData.newMarkData(MarkType.DSZ, MarkKindType.Persion, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.JL, MarkKindType.Persion, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.FZ, MarkKindType.Persion, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.MS, MarkKindType.Persion, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.ZJ, MarkKindType.Persion, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.ZG, MarkKindType.Persion, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.ZZ, MarkKindType.Persion, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.QT, MarkKindType.Persion, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.SJS, MarkKindType.Persion, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.CXY, MarkKindType.Persion, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.ZYA, MarkKindType.Persion, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.ZYB, MarkKindType.Persion, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.JG, MarkKindType.Persion, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.BA, MarkKindType.Persion, tagPos, result);
|
|
|
|
|
|
|
|
//标绘工具
|
|
|
|
tagPos = MarkTagPos.Tool;
|
|
|
|
AllMarkData.newMarkData(MarkType.JJX, MarkKindType.Goods, tagPos, result, undefined, false);
|
|
|
|
AllMarkData.newMarkData(MarkType.SD, MarkKindType.Goods, tagPos, result, undefined, false);
|
|
|
|
AllMarkData.newMarkData(MarkType.JGLX, MarkKindType.Virtual, tagPos, result, undefined, false);
|
|
|
|
AllMarkData.newMarkData(MarkType.CT, MarkKindType.Virtual, tagPos, result, undefined, false);
|
|
|
|
AllMarkData.newMarkData(MarkType.ZHB, MarkKindType.Goods, tagPos, result, MarkTask.Unknown);
|
|
|
|
AllMarkData.newMarkData(MarkType.LT6, MarkKindType.Goods, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.LT15, MarkKindType.Goods, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.FSQ, MarkKindType.Goods, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.STB, MarkKindType.Goods, tagPos, result);
|
|
|
|
AllMarkData.newMarkData(MarkType.SP, MarkKindType.Goods, tagPos, result, MarkTask.WaterMonitor);
|
|
|
|
AllMarkData.newMarkData(MarkType.WZ, MarkKindType.Virtual, tagPos, result, MarkTask.Unknown);
|
|
|
|
AllMarkData.newMarkData(MarkType.JJQ, MarkKindType.Virtual, tagPos, result, MarkTask.Unknown, false);
|
|
|
|
AllMarkData.newMarkData(MarkType.QYSDA, MarkKindType.Virtual, tagPos, result, MarkTask.Unknown, false);
|
|
|
|
AllMarkData.newMarkData(MarkType.QYSDB, MarkKindType.Virtual, tagPos, result, MarkTask.Unknown, false);
|
|
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//新建设备信息
|
|
|
|
/**
|
|
|
|
* 创建标绘物素材库数据
|
|
|
|
* @param type
|
|
|
|
* @param kindType
|
|
|
|
* @param tagPos
|
|
|
|
* @param allMarkData
|
|
|
|
* @param taskType
|
|
|
|
* @param isModel
|
|
|
|
*/
|
|
|
|
static newMarkData(type: MarkType, kindType: MarkKindType, tagPos: MarkTagPos, allMarkData: AllMarkData, taskType?: MarkTask, isModel = true): MarkData {
|
|
|
|
|
|
|
|
let l_taskType: MarkTask = MarkTask.None;
|
|
|
|
let list = [];
|
|
|
|
switch (tagPos) {
|
|
|
|
case MarkTagPos.Disaster:
|
|
|
|
list = allMarkData.marks_Disaster;
|
|
|
|
break;
|
|
|
|
case MarkTagPos.FireFighting:
|
|
|
|
list = allMarkData.marks_FireFighting
|
|
|
|
break;
|
|
|
|
case MarkTagPos.Linkage:
|
|
|
|
list = allMarkData.marks_Linkage;
|
|
|
|
break;
|
|
|
|
case MarkTagPos.Inside:
|
|
|
|
list = allMarkData.marks_Inside;
|
|
|
|
break;
|
|
|
|
case MarkTagPos.Tool:
|
|
|
|
list = allMarkData.marks_Tool;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
//除了灾情以外, 人和车的任务类型
|
|
|
|
if (tagPos != MarkTagPos.Disaster) {
|
|
|
|
if (kindType == MarkKindType.Persion) {
|
|
|
|
l_taskType = MarkTask.Person;
|
|
|
|
}
|
|
|
|
else if (kindType == MarkKindType.Car) {
|
|
|
|
l_taskType = MarkTask.Car;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//没指定,则使用规则的任务类型
|
|
|
|
if (taskType == null) {
|
|
|
|
taskType = l_taskType;
|
|
|
|
}
|
|
|
|
|
|
|
|
let icon = ConfigManager.getMarkIconUrl(tagPos, type);
|
|
|
|
let modelPath = ConfigManager.getMarkModelPath(tagPos, type);
|
|
|
|
let modelName = type + ".gltf";
|
|
|
|
|
|
|
|
|
|
|
|
let result = null;
|
|
|
|
switch (type) {
|
|
|
|
case MarkType.JJQ:
|
|
|
|
case MarkType.QYSDA:
|
|
|
|
case MarkType.QYSDB:
|
|
|
|
result = new MarkData_Area(type.toString(), type, tagPos, kindType, icon, modelPath, modelName, taskType, isModel);
|
|
|
|
break;
|
|
|
|
case MarkType.JJX:
|
|
|
|
result = new MarkData_Line(type.toString(), type, tagPos, kindType, icon, modelPath, modelName, taskType, isModel);
|
|
|
|
break;
|
|
|
|
case MarkType.SD:
|
|
|
|
result = new MarkData_multiLine(type.toString(), type, tagPos, kindType, icon, modelPath, modelName, taskType, isModel);
|
|
|
|
break;
|
|
|
|
case MarkType.JGLX:
|
|
|
|
result = new MarkData_multiArrow_JG(type.toString(), type, tagPos, kindType, icon, modelPath, modelName, taskType, isModel);
|
|
|
|
break;
|
|
|
|
case MarkType.CT:
|
|
|
|
result = new MarkData_multiArrow_CT(type.toString(), type, tagPos, kindType, icon, modelPath, modelName, taskType, isModel);
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
result = new MarkData(type.toString(), type, tagPos, kindType, icon, modelPath, modelName, taskType, isModel);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
list.push(result);
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|