ue-game-container-ali 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,470 @@
1
+ ### BIM图形使用说明
2
+
3
+ #### 安装:
4
+ > `npm install bim-viewer-vue`
5
+
6
+ #### 使用方法:
7
+ > import * as bimer from 'bim-viewer-vue'
8
+
9
+ ##### 组件参数传递:
10
+
11
+ > ```` html
12
+ > <bim-viewer
13
+ > :viewerData='viewerData'
14
+ > :authKey='authKey'
15
+ > :authCode='authCode'
16
+ > :isShowBuiding='true/false'
17
+ > :nodeId='nodeId'
18
+ > :bimType='bimType'
19
+ > :scenario='scenario'
20
+ > :direction='direction'
21
+ > :modelPath='modelPath'
22
+ > :stepLoadConfig="stepLoadConfig"
23
+ > :latAndLong="latAndLong"
24
+ > />
25
+ > ````
26
+
27
+ ##### 参数传入
28
+
29
+ > viewToken 调用后台接口获取, *号为必传参数, 否则会报错
30
+
31
+ ```` javascript
32
+ * viewerData:
33
+ {
34
+ viewToken: 'e69ddb9711704c52aae6e390439c0f87'
35
+ }
36
+ * authKey: 'P92_ZHYQ'
37
+ * authCode: '576BF57681FCBC4760......'
38
+ // 是否显示楼层筛选组件
39
+ isShowBuiding: true/false
40
+ // 根据节点id匹配楼层
41
+ nodeId: 'CN_EC_33_001_HXHYQ'
42
+ // 1 只有全景图 2 只有BIM模型 3 全景和BIM模型 4 显示简化后的模型并加载bim模型 不传默认只显示bim模型
43
+ bimType: '1' || '2' || '3' || '4'
44
+ // 当前模型code 根据这个code来确定显示哪个全景图
45
+ scenario: 'CN_EC_33_001_HXHYQ'
46
+ // 楼层选择器的显示方式 true/横向 false/竖向
47
+ direction: true/false
48
+ // 静态模型加载配置
49
+ loadingConfig:
50
+ {
51
+ // 简化后的模型静态资源路径
52
+ modelPath: '',
53
+ // 模型初始化后的视角远近
54
+ cameraPos: {z: 1000},
55
+ // 模型是否自动旋转
56
+ controlParams: {autoRotate: true},
57
+ // 是否启动模型透明
58
+ enableModelTransparent: true,
59
+ }
60
+ // 分步加载配置
61
+ stepLoadConfig:
62
+ {
63
+ // 分片加载集成模型步数. 用于优化模型加载至100%卡顿. 当模型较大时,可适当提高集成模型分步加载次数
64
+ loadCount: 3,
65
+ // 当前模型是否为集成模型, 如果是集成模型,则会进行分步加载
66
+ modelType: true,
67
+ // 所需加载的构件类型
68
+ // 'overall' 加载所有的构件
69
+ // 'label' 加载对应的单个模型文件
70
+ // 'floor' 加载对应的楼层
71
+ loadCode: 'overall' || 'lable' || 'floor',
72
+ // 楼层id
73
+ floorId: null,
74
+ // 构件ID的数组
75
+ elementIdList: null
76
+ }
77
+ // 51VR默认配置
78
+ latAndLong:
79
+ {
80
+ // 初始纬度,介于-π/2和π/2之间。
81
+ lat: 0,
82
+ // 初始经度,介于0和2π之间。
83
+ long: 0
84
+ }
85
+ ````
86
+
87
+ ##### 模型加载状态:
88
+
89
+ > 模型加载完成后会`$emit('modelLoadState', true)` 说明模型已经加载完成
90
+
91
+ ##### 模型API调用:
92
+
93
+ > bimer.viewerApi.方法名
94
+
95
+ ##### Bimer api枚举:
96
+
97
+ ###### 模型状态设置:
98
+
99
+ ----
100
+
101
+ 获取当前view state
102
+
103
+ > bimer.viewerApi.getCurrentState()
104
+
105
+ 设置view state
106
+
107
+ > `setState (modelState)`
108
+
109
+ 设置右上角小模型 ture 显示,false隐藏
110
+
111
+ > `viewHouse('true')`
112
+
113
+ 设置 结构树 ture 显示,false隐藏
114
+
115
+ > `structureTree('true')`
116
+
117
+ 设置初始化视角
118
+
119
+ > `viewHome()`
120
+
121
+ 获取模型角度
122
+
123
+ > `getCameraStatus()`
124
+
125
+ 根据当前模型的nodeId隐藏其余构件
126
+
127
+ ```javascript
128
+ @ param { String } nodeId
129
+ urlByParameter(nodeId)
130
+ ```
131
+
132
+ 删除模型 / 停止加载模型
133
+
134
+ > `removeModel()`
135
+
136
+ 剖切 => 适应到模型
137
+
138
+ > `adaptToModel()`
139
+
140
+ 剖切 => 重置
141
+
142
+ > `resetToModel()`
143
+
144
+ 获取当前模型视角
145
+
146
+ ```javascript
147
+ @ return { Object } 当前视角的对象
148
+ getCameraStatus()
149
+ ```
150
+
151
+ 设置模型当前视角
152
+
153
+ ```javascript
154
+ @ params { Object } cameraState 模型视角的对象
155
+ setCameraStatus(cameraState)
156
+ ```
157
+
158
+
159
+
160
+ ###### 模型构件设置:
161
+
162
+ ----
163
+
164
+ 根据构件改颜色,同时支持多个
165
+ ```` javascript
166
+ @ param { Array } ids 构件ID数组
167
+ @ param { Array } colors 构件颜色数组
168
+ overrideComponents (ids, colors)
169
+ ````
170
+
171
+ 显示所有被隐藏的构件
172
+
173
+ > `showAllComponents()`
174
+
175
+ 根据构件id显示构件
176
+ ```` javascript
177
+ @ param { Array } ids 构件ID数组
178
+ showComponents (ids)
179
+ ````
180
+
181
+ 在集成模型下 传入构件的`elementId `先显示对应的楼栋
182
+
183
+ ```javascript
184
+ @param { String } element 集成模型的构件ID
185
+ showBuild (element)
186
+ ```
187
+
188
+ 根据构件ID,隔离
189
+
190
+ ```` javascript
191
+ @ param { Array } ids 构件ID数组
192
+ isolateComponentsById (ids)
193
+ ````
194
+
195
+ 清除隔离
196
+
197
+ > `clearIsolation()`
198
+
199
+ 清除构件选中状态
200
+
201
+ > `clearSelectedComponents()`
202
+
203
+ 获取选中的构件id
204
+
205
+ > `getElementsProperty ()`
206
+
207
+ 放大选中构件
208
+
209
+ ```` javascript
210
+ @ param { Array } ids 构件ID数组
211
+ zoomToSelectedComponents (ids)
212
+ ````
213
+
214
+ 隐藏所有构件
215
+
216
+ > `hideAllComponents()`
217
+
218
+ 显示所有构件
219
+
220
+ > `showAllComponents()`
221
+
222
+ ###### 模型标签设置:
223
+
224
+ 批量添加三维标签
225
+
226
+ ```javascript
227
+ @param { Array } params 三维标签的参数数组 其余参数与set3DMarker方法一致
228
+ set3DMarkers (params, clickCallBack, cb)
229
+ ```
230
+
231
+ 添加三维标签
232
+
233
+
234
+ ```` javascript
235
+ * @param {obj} element 引线标签的参数 element.equipCode、element.worldPosition 必传其一
236
+ * @param {FN} click 引线标签的点击方法
237
+ * @param {FN} cb 引线标签生成后的回调方法
238
+ 可配置参数 element: {
239
+ iconUrl // 图片路径,不传为默认图片
240
+ tips, // 三维标签名称,不传为''
241
+ size, // 三维标签大小, 不传为30
242
+ equipCode, // 设备ID
243
+ worldPosition, // 构件坐标
244
+ }
245
+ set3DMarker(params, clickCallBack, cb)
246
+ ````
247
+
248
+ 删除所有三维标签
249
+
250
+ > `del3DMakerAll()`
251
+
252
+ 根据id删除三维标签
253
+
254
+ ```javascript
255
+ @param { String } id 三维标签的id
256
+ del3DMakerById(id)
257
+ ```
258
+
259
+ 隐藏所有三维标签
260
+
261
+ > `hidenAllMaker()`
262
+
263
+ 根据ID隐藏三维标签
264
+
265
+ ```` javascript
266
+ @ param { Array } ids 构件ID数组
267
+ hideMarkerById (ids)
268
+ ````
269
+ *根据ids显示三维标签*
270
+
271
+ ```
272
+ @ param { Array } ids 构件ID数组
273
+ showItemsById(ids)
274
+ ```
275
+
276
+ 添加引线标签
277
+
278
+ ```` javascript
279
+ * @param {obj} element 引线标签的参数 element.equipCode.worldPosition 必传其一
280
+ * @param {string} dom document的字符串
281
+ * @param {FN} click 引线标签的点击方法
282
+ * @param {FN} cb 引线标签生成后的回调方法
283
+
284
+ 可配置参数: element: {
285
+ elementId, // 构件id
286
+ worldPosition, // 构件坐标
287
+ }
288
+ addExtLeadLabel (element, dom, click, cb)
289
+ ````
290
+
291
+ 根据ID删除引线标签
292
+
293
+ ```javascript
294
+ @param {String} id 引线标签的id
295
+ removeLabel(id)
296
+ ```
297
+
298
+ 删除所有引线标签
299
+
300
+ > `removeAllLabel()`
301
+
302
+ 隐藏所有引线标签
303
+
304
+ > `hideAllItems()`
305
+
306
+ 显示所有引线标签
307
+
308
+ > `showAllItems()`
309
+
310
+ 根据id隐藏引线标签
311
+
312
+ ```
313
+ @param { Array } ids 引线标签的id数组
314
+ hideItemsById(ids)
315
+ ```
316
+
317
+ 获取所有引线标签
318
+
319
+ > `getAllItems()`
320
+
321
+ 创建轨迹
322
+
323
+ ```javascript
324
+ * @param {Array} elements 设备ID数组
325
+ * @param {String} color 颜色 [255, 255, 255]
326
+ * @param {String} width 宽度
327
+ * @param {FN} cb 完成后的回调方法
328
+ * @return {String} 完成后的回调方法会返回当前轨迹的name。 name用于删除当前轨迹
329
+ drawLine(elements, color, width, cb)
330
+ ```
331
+
332
+ 删除轨迹
333
+
334
+ ```javascript
335
+ * @param {String || Array} name 可传入多个轨迹标签返回的name数组。实现批量删除
336
+ removeDrawLine (name)
337
+ ```
338
+
339
+ 初始化设置标签设备
340
+
341
+ ```javascript
342
+ * @param {Object} params params.equipType ['IGS_002_018', 'IGS_002_017', 'PSS_006_002']
343
+ * params.eventType 事件类型 '1' || '2'
344
+ * 没有参数 可以传一个空对象
345
+ * @param {FN} labelClick 引线标签的点击事件
346
+ * @param {fn} callBack 完成后的回调方法
347
+ setLabel(params, labelClick, callBack)
348
+ ```
349
+
350
+ 点击引线标签进入子模型,并隐藏其他引线标签
351
+
352
+ ```javascript
353
+ @param {Obj} labelData 点击引线标签返回的对象
354
+ labelClickToModel(labelData)
355
+ ```
356
+
357
+ 根据fileID查找在引线标签中查找楼栋信息
358
+
359
+ ```javascript
360
+ @param {fileId} String
361
+ fileIdToLabelData (fileId)
362
+ ```
363
+
364
+ 锁定Y轴旋转角度
365
+
366
+ ```javascript
367
+ @param {Array} angle 要限制的角度数组 推荐写法: [Math.PI / 12, Math.PI / 2] (15°, 90°)
368
+ lockAxis(angle)
369
+ ```
370
+
371
+ 解除锁定Y轴旋转角度
372
+
373
+ > `unLockAxis(angle)`
374
+
375
+ 根据ID冻结构件
376
+
377
+ ```javascript
378
+ @param {Array} ids 需要冻结的构件id
379
+ deactivateComponentsById(ids)
380
+ ```
381
+
382
+
383
+
384
+ 恢复所有构件至激活状态
385
+
386
+ > `activateAllComponents()`
387
+
388
+ ###### 业务场景相关:
389
+
390
+ ----
391
+
392
+ 停车场设置
393
+
394
+ ```javascript
395
+ @param {string} nodeId 节点ID
396
+ setParkingColor(nodeId)
397
+ ```
398
+
399
+ 添加点击构件事件, 点击构件,查询停车场构件详情(调用此方法须先传入nodeId参数)
400
+
401
+ > 查询返回的结果this.$emit('parkingData', result)
402
+ >
403
+ > `addSelectedListener()`
404
+
405
+ 移除点击构件查询停车场构件详情的事件
406
+
407
+ > `removeSelectedListener()`
408
+
409
+ 添加构件点击事件,点击构件,会返回构件的相关信息
410
+
411
+ > 查询返回的结果this.$emit('elementData', result)
412
+ > `addElementClick()`
413
+
414
+ 移除返回构件的相关信息事件
415
+
416
+ > `removeElementClick()`
417
+
418
+ 根据elementID查找当前楼层 并隐藏其余楼层构件
419
+
420
+ ```javascript
421
+ @param {String} elementId 构件ID
422
+ @returns {Boolean} true
423
+ floorElementIds(elementId)
424
+ ```
425
+
426
+ *获取大于或者小于当前楼层的其他楼层构件ID信息*
427
+
428
+ ```javascript
429
+ * @param { String } elementId 当前楼层构件ID
430
+ * @param { String } equipmentId 当前构件的设备id
431
+ * @param { Boolean } containThis 是否包含当前楼层
432
+ * @param { Number } requestDataType 请求数据类型 (0:获取当前楼层之下其他楼层构建数据;1:获取当前楼层之上其他楼层构建数据)
433
+ * @return { Array } 匹配到的楼层Name
434
+ elementByFloorElement(elementId, equipmentId, requestDataType = 0)
435
+ ```
436
+
437
+ ###### 模型空间相关:
438
+
439
+ ----
440
+
441
+ 匹配房间并切换视点
442
+
443
+ ```javascript
444
+ @param {String} floorId 楼层id
445
+ @param {String} elementId 构件ID,
446
+ @param {Object} params 非必传参数
447
+ params.sectioning 判断当前模型是否进行剖切 默认值为false 进行剖切 true为不进行剖切
448
+ params.roomColor 设置房间颜色 非必传 16进制色值 例: '#ff0000'
449
+ zoomMathRoom = (floorId, elementId, params)
450
+ ```
451
+
452
+ 通过传入构件id 查找当前空间x,y,z轴
453
+
454
+ ```javascript
455
+ @param {String} element 构建id
456
+ @return {Object} 返回xyz轴对象
457
+ elementIdToRoomPoint(element)
458
+ ```
459
+
460
+ 根据id清除对应的空间
461
+
462
+ ```javascript
463
+ @param {Array} objectIds 要删除的空间ID数组
464
+ clearRoomsById(objectIds)
465
+ ```
466
+
467
+ 清除所有空间
468
+
469
+ > `clearAllRooms()`
470
+