165 lines
5.6 KiB
TypeScript
165 lines
5.6 KiB
TypeScript
|
|
import { leftClick } from './entityClick';
|
||
|
|
// import {leftClick} from '@/views/projectLarge/ProjectScreen/components/newMap/entityClick';
|
||
|
|
|
||
|
|
export const initMapData = async (type, data, cd) => {
|
||
|
|
let entityObject: any;
|
||
|
|
let options: any;
|
||
|
|
const baseURL = import.meta.env.VITE_APP_MAP_API;
|
||
|
|
|
||
|
|
switch (type) {
|
||
|
|
case 'groundText':
|
||
|
|
entityObject = new window['YJ'].Obj.GroundText(window['Earth1'], data);
|
||
|
|
break;
|
||
|
|
case 'standText':
|
||
|
|
entityObject = new window['YJ'].Obj.StandText(window['Earth1'], data);
|
||
|
|
break;
|
||
|
|
case 'point':
|
||
|
|
case 'linkImage':
|
||
|
|
case 'vrImage':
|
||
|
|
entityObject = new window['YJ'].Obj.BillboardObject(window['Earth1'], data);
|
||
|
|
// entityObject.options.billboard.defaultImage = ''
|
||
|
|
// entityObject.flyTo();
|
||
|
|
break;
|
||
|
|
case 'line':
|
||
|
|
entityObject = await new window['YJ'].Obj.PolylineObject(window['Earth1'], data);
|
||
|
|
break;
|
||
|
|
case 'curve':
|
||
|
|
entityObject = await new window['YJ'].Obj.CurvelineObject(window['Earth1'], data);
|
||
|
|
break;
|
||
|
|
case 'panel':
|
||
|
|
case 'rectangle':
|
||
|
|
entityObject = new window['YJ'].Obj.PolygonObject(window['Earth1'], data);
|
||
|
|
break;
|
||
|
|
case 'rendezvous':
|
||
|
|
entityObject = new window['YJ'].Obj.AssembleObject(window['Earth1'], data);
|
||
|
|
break;
|
||
|
|
case 'attackArrow':
|
||
|
|
entityObject = new window['YJ'].Obj.AttackArrowObject(window['Earth1'], data);
|
||
|
|
break;
|
||
|
|
case 'pincerArrow':
|
||
|
|
entityObject = new window['YJ'].Obj.PincerArrowObject(window['Earth1'], data);
|
||
|
|
break;
|
||
|
|
case 'circle':
|
||
|
|
entityObject = new window['YJ'].Obj.CircleObject(window['Earth1'], data);
|
||
|
|
break;
|
||
|
|
case 'ellipse':
|
||
|
|
entityObject = new window['YJ'].Obj.EllipseObject(window['Earth1'], data);
|
||
|
|
break;
|
||
|
|
case 'model':
|
||
|
|
entityObject = new window['YJ'].Obj.Model(window['Earth1'], data);
|
||
|
|
break;
|
||
|
|
case 'military':
|
||
|
|
entityObject = new window['YJ'].Obj.GroundSvg(window['Earth1'], data);
|
||
|
|
entityObject.load(() => {});
|
||
|
|
break;
|
||
|
|
case 'terrain':
|
||
|
|
data.host = baseURL;
|
||
|
|
console.log('terrain的data', data);
|
||
|
|
entityObject = new window['YJ'].Obj.Terrain(window['Earth1'], data);
|
||
|
|
break;
|
||
|
|
case 'layer':
|
||
|
|
data.host = baseURL;
|
||
|
|
entityObject = new window['YJ'].Obj.Layer(window['Earth1'], data);
|
||
|
|
// entityObject.flyTo();
|
||
|
|
break;
|
||
|
|
case 'tileset':
|
||
|
|
data.host = baseURL;
|
||
|
|
entityObject = new window['YJ'].Obj.Tileset(window['Earth1'], data);
|
||
|
|
entityObject.load((res) => {
|
||
|
|
if (cd) {
|
||
|
|
cd(entityObject);
|
||
|
|
}
|
||
|
|
// 等模型加载完后再加载压平模型
|
||
|
|
if (window['pressModelMap'])
|
||
|
|
Array.from((window as any).pressModelMap.keys()).forEach((key: any) => {
|
||
|
|
if (key.indexOf('_' + data.id) > -1) {
|
||
|
|
const nodes = (window as any).pressModelMap.get(key);
|
||
|
|
if (nodes) {
|
||
|
|
if (nodes.isShow == 1) {
|
||
|
|
// nodeType[nodes.source_type].render(nodes);
|
||
|
|
const flatData = JSON.parse(nodes.params);
|
||
|
|
const entity = window['Earth1'].entityMap.get(flatData.modelId).entity;
|
||
|
|
const flat: any = new window['YJ'].Analysis.Flat(window['Earth1'], entity, {
|
||
|
|
positions: flatData.positions,
|
||
|
|
height: flatData.height,
|
||
|
|
name: nodes.sourceName
|
||
|
|
});
|
||
|
|
(window as any).pressModelEntities.set(nodes.id, flat);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
});
|
||
|
|
});
|
||
|
|
break;
|
||
|
|
case 'path':
|
||
|
|
entityObject = new window['YJ'].Obj.TrajectoryMotion(window['Earth1'], data);
|
||
|
|
break;
|
||
|
|
case 'wallStereoscopic':
|
||
|
|
entityObject = new window['YJ'].Obj.WallStereoscopic(window['Earth1'], data);
|
||
|
|
break;
|
||
|
|
case 'entityWall':
|
||
|
|
entityObject = new window['YJ'].Obj.WallRealStereoscopic(window['Earth1'], data);
|
||
|
|
break;
|
||
|
|
case 'diffuseScan':
|
||
|
|
entityObject = new window['YJ'].Obj.CircleDiffuse(window['Earth1'], data);
|
||
|
|
break;
|
||
|
|
case 'radarScan':
|
||
|
|
entityObject = new window['YJ'].Obj.RadarScan(window['Earth1'], data);
|
||
|
|
break;
|
||
|
|
case 'scanStereoscopic':
|
||
|
|
entityObject = new window['YJ'].Obj.RadarScanStereoscopic(window['Earth1'], data);
|
||
|
|
break;
|
||
|
|
case 'textBox':
|
||
|
|
entityObject = new window['YJ'].Obj.TextBox(window['Earth1'], data, () => {});
|
||
|
|
break;
|
||
|
|
case 'polyhedronObject':
|
||
|
|
entityObject = new window['YJ'].Obj.PolyhedronObject(window['Earth1'], data);
|
||
|
|
break;
|
||
|
|
case 'water':
|
||
|
|
entityObject = new window['YJ'].Obj.WaterSurface(window['Earth1'], data);
|
||
|
|
break;
|
||
|
|
case 'fountain':
|
||
|
|
entityObject = new window['YJ'].Obj.Fountain(window['Earth1'], data);
|
||
|
|
break;
|
||
|
|
case 'fire':
|
||
|
|
entityObject = new window['YJ'].Obj.Flame(window['Earth1'], data);
|
||
|
|
break;
|
||
|
|
case 'smoke':
|
||
|
|
entityObject = new window['YJ'].Obj.Smoke(window['Earth1'], data);
|
||
|
|
break;
|
||
|
|
case 'waterL':
|
||
|
|
entityObject = new window['YJ'].Obj.Spout(window['Earth1'], data);
|
||
|
|
break;
|
||
|
|
case 'flyLine':
|
||
|
|
entityObject = new window['YJ'].Obj.FlowLine(window['Earth1'], data);
|
||
|
|
break;
|
||
|
|
case 'explosion':
|
||
|
|
entityObject = new window['YJ'].Obj.Explosion(window['Earth1'], data);
|
||
|
|
break;
|
||
|
|
default:
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
if (entityObject) {
|
||
|
|
options = structuredClone(entityObject.options);
|
||
|
|
delete options.host;
|
||
|
|
switch (type) {
|
||
|
|
case 'textBox':
|
||
|
|
delete options.name;
|
||
|
|
break;
|
||
|
|
case 'fountain':
|
||
|
|
case 'fire':
|
||
|
|
case 'smoke':
|
||
|
|
case 'waterL':
|
||
|
|
delete options.url;
|
||
|
|
break;
|
||
|
|
default:
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
// /鼠标左键点击事件
|
||
|
|
entityObject.onClick = () => {
|
||
|
|
leftClick(options);
|
||
|
|
};
|
||
|
|
}
|
||
|
|
return options;
|
||
|
|
};
|