You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.8 KiB
65 lines
1.8 KiB
import { ThreeDimensionalHomeComponent } from "src/app/gis/three-dimensional-home/three-dimensional-home.component"; |
|
|
|
/** |
|
* 加载管理器 |
|
*/ |
|
export class LoadTool { |
|
static s_loadingData: Map<any, string> = new Map(); |
|
static s_loadingNum: number = 0; |
|
|
|
static readonly c_tag_preloadMark = "preloadMark";//预加载标绘物模型(不阻断) |
|
static readonly c_tag_createMark = "createMark";//创建标绘物(不阻断) |
|
static readonly c_tag_facilityPrefab = "facilityPrefab";//设备预制体 |
|
|
|
|
|
/** |
|
* 新增加载数据 |
|
* @param data |
|
* @param tag |
|
*/ |
|
static add(data: any, tag?: string) { |
|
switch (tag) { |
|
case LoadTool.c_tag_preloadMark: |
|
case LoadTool.c_tag_createMark: return; |
|
} |
|
|
|
let oldNum = LoadTool.s_loadingNum; |
|
LoadTool.s_loadingData.set(data, tag); |
|
LoadTool.s_loadingNum = LoadTool.s_loadingData.size; |
|
if (oldNum == 0 && LoadTool.s_loadingNum == 1) { |
|
LoadTool.onStart(); |
|
} |
|
} |
|
|
|
/** |
|
* 加载完成,移除记录 |
|
* @param data |
|
*/ |
|
static remove(data: any) { |
|
let oldNum = LoadTool.s_loadingNum; |
|
if (LoadTool.s_loadingData.has(data)) { |
|
LoadTool.s_loadingData.delete(data); |
|
} |
|
LoadTool.s_loadingNum = LoadTool.s_loadingData.size; |
|
if (oldNum > 0 && LoadTool.s_loadingNum == 0) { |
|
LoadTool.onEnd(); |
|
} |
|
} |
|
|
|
/** |
|
* 开始加载 |
|
*/ |
|
static onStart() { |
|
console.log("开始加载"); |
|
ThreeDimensionalHomeComponent.instance.maskLayerService.sendMessage(true) |
|
} |
|
|
|
/** |
|
* 全部加载结束 |
|
*/ |
|
static onEnd() { |
|
console.log("结束加载"); |
|
ThreeDimensionalHomeComponent.instance.maskLayerService.sendMessage(false) |
|
} |
|
|
|
} |