@aibee/crc-bmap 0.0.94 → 0.0.95
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/example/src/main.ts +376 -331
- package/lib/bmap.cjs.min.js +3 -3
- package/lib/bmap.cjs.min.js.map +4 -4
- package/lib/bmap.esm.js +234 -150
- package/lib/bmap.esm.js.map +4 -4
- package/lib/bmap.esm.min.js +3 -3
- package/lib/bmap.esm.min.js.map +4 -4
- package/lib/bmap.min.js +3 -3
- package/lib/bmap.min.js.map +4 -4
- package/lib/src/api/floor.d.ts +15 -0
- package/lib/src/api/index.d.ts +1 -0
- package/lib/src/bmap.d.ts +13 -19
- package/lib/src/elements/floor.d.ts +1 -0
- package/lib/src/elements/poi.d.ts +1 -0
- package/lib/src/index.d.ts +1 -0
- package/lib/src/plugins/base.d.ts +1 -1
- package/lib/src/plugins/index.d.ts +1 -0
- package/lib/src/plugins/split-load/index.d.ts +1 -0
- package/lib/src/plugins/split-load/split-load.d.ts +14 -0
- package/lib/src/types/index.d.ts +7 -0
- package/lib/src/utils/coordinate.d.ts +2 -2
- package/lib/src/utils/event-name.d.ts +1 -1
- package/lib/src/utils/index.d.ts +1 -0
- package/lib/src/utils/obj-utils.d.ts +6 -0
- package/package.json +1 -1
package/lib/bmap.esm.js
CHANGED
|
@@ -492,11 +492,16 @@ var Events = class {
|
|
|
492
492
|
};
|
|
493
493
|
|
|
494
494
|
// src/utils/event-name.ts
|
|
495
|
-
var
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
return
|
|
499
|
-
})(
|
|
495
|
+
var HooksName = /* @__PURE__ */ ((HooksName2) => {
|
|
496
|
+
HooksName2["SWITCH_FLOOR_BEFORE"] = "switch_floor_before";
|
|
497
|
+
HooksName2["SWITCH_FLOOR_AFTER"] = "switch_floor_after";
|
|
498
|
+
return HooksName2;
|
|
499
|
+
})(HooksName || {});
|
|
500
|
+
|
|
501
|
+
// src/utils/obj-utils.ts
|
|
502
|
+
function generatorKeyByObj(obj) {
|
|
503
|
+
return Object.keys(obj).sort().map((key) => `${key}=${obj[key]}`).join("&");
|
|
504
|
+
}
|
|
500
505
|
|
|
501
506
|
// src/context.ts
|
|
502
507
|
import {
|
|
@@ -1286,10 +1291,14 @@ var Poi = class extends EventDispatcher2 {
|
|
|
1286
1291
|
position = new Vector35();
|
|
1287
1292
|
userData = {};
|
|
1288
1293
|
showTextStatus = true;
|
|
1294
|
+
disposed = false;
|
|
1289
1295
|
get withinDisplayRange() {
|
|
1290
1296
|
return this.overlay.withinDisplayRange;
|
|
1291
1297
|
}
|
|
1292
1298
|
async resetSize() {
|
|
1299
|
+
if (this.disposed) {
|
|
1300
|
+
return;
|
|
1301
|
+
}
|
|
1293
1302
|
await sleepOnePromise();
|
|
1294
1303
|
if (this.options.box_only_icon) {
|
|
1295
1304
|
if (!this.img) {
|
|
@@ -1467,6 +1476,7 @@ var Poi = class extends EventDispatcher2 {
|
|
|
1467
1476
|
this.textDiv = null;
|
|
1468
1477
|
this.img = void 0;
|
|
1469
1478
|
this.overlay.dispose();
|
|
1479
|
+
this.disposed = true;
|
|
1470
1480
|
}
|
|
1471
1481
|
};
|
|
1472
1482
|
|
|
@@ -1843,6 +1853,7 @@ var Floor = class extends Object3D8 {
|
|
|
1843
1853
|
models = new Object3D8();
|
|
1844
1854
|
modelMap = /* @__PURE__ */ new Map();
|
|
1845
1855
|
groundMaxHeight = 0;
|
|
1856
|
+
name = "";
|
|
1846
1857
|
getPosition() {
|
|
1847
1858
|
const box = new Box35().setFromObject(this.groundUpper);
|
|
1848
1859
|
return box.getCenter(new Vector38());
|
|
@@ -3443,7 +3454,6 @@ var Equipment = class extends Plugin {
|
|
|
3443
3454
|
return graphic.userData.data.info.userData.equipment;
|
|
3444
3455
|
}
|
|
3445
3456
|
changeGraphicToEquipment(graphics) {
|
|
3446
|
-
console.log(graphics);
|
|
3447
3457
|
graphics.filter((graphic) => {
|
|
3448
3458
|
const equipment = this.getGraphicEquipment(graphic);
|
|
3449
3459
|
return equipment && this.equipmentMap.has(equipment);
|
|
@@ -3463,47 +3473,42 @@ var Equipment = class extends Plugin {
|
|
|
3463
3473
|
}
|
|
3464
3474
|
};
|
|
3465
3475
|
|
|
3466
|
-
// src/
|
|
3467
|
-
|
|
3468
|
-
|
|
3469
|
-
|
|
3470
|
-
|
|
3471
|
-
|
|
3472
|
-
}
|
|
3473
|
-
|
|
3474
|
-
|
|
3475
|
-
|
|
3476
|
-
|
|
3477
|
-
|
|
3476
|
+
// src/api/floor.ts
|
|
3477
|
+
async function loadBuildingGround({ brand, project }, config) {
|
|
3478
|
+
const {
|
|
3479
|
+
apiDomain,
|
|
3480
|
+
apiPath: { floorRange },
|
|
3481
|
+
apiInfo
|
|
3482
|
+
} = config;
|
|
3483
|
+
const url = `${apiDomain}${floorRange}?brand=${brand}&project=${project}&phase=${project}&building=${project}`;
|
|
3484
|
+
const data = await fetch(url, apiInfo).then((res) => res.json()).then((res) => res.data).then((res) => {
|
|
3485
|
+
const data2 = (res || [])[0];
|
|
3486
|
+
if (data2) {
|
|
3487
|
+
data2.info = JSON.parse(data2.info);
|
|
3488
|
+
}
|
|
3489
|
+
return data2;
|
|
3490
|
+
});
|
|
3491
|
+
return data;
|
|
3478
3492
|
}
|
|
3479
|
-
|
|
3480
|
-
|
|
3481
|
-
|
|
3482
|
-
|
|
3483
|
-
|
|
3493
|
+
async function loadGraphics({
|
|
3494
|
+
brand,
|
|
3495
|
+
project,
|
|
3496
|
+
floor,
|
|
3497
|
+
ts,
|
|
3498
|
+
resource_type_list
|
|
3499
|
+
}, config) {
|
|
3500
|
+
const {
|
|
3501
|
+
apiDomain,
|
|
3502
|
+
apiPath: { floorGraphic },
|
|
3503
|
+
apiInfo
|
|
3504
|
+
} = config;
|
|
3505
|
+
const url = `${apiDomain}${floorGraphic}?brand=${brand}&project=${project}&phase=${project}&building=${project}&floor=${floor}&ts=${ts}&resource_type_list=${resource_type_list}`;
|
|
3506
|
+
const data = await fetch(url, apiInfo).then((res) => res.json()).then((res) => res.data).then((res) => {
|
|
3507
|
+
(res || []).map((item) => item.info = JSON.parse(item.info));
|
|
3508
|
+
return res || [];
|
|
3509
|
+
});
|
|
3510
|
+
return data;
|
|
3484
3511
|
}
|
|
3485
|
-
`;
|
|
3486
|
-
var path_worker_default = workerCode;
|
|
3487
|
-
|
|
3488
|
-
// src/plugins/navigation/navigation.ts
|
|
3489
|
-
var Navigation = class extends Plugin {
|
|
3490
|
-
worker_url = window.URL.createObjectURL(new Blob([path_worker_default], { type: "text/javascript" }));
|
|
3491
|
-
worker = new Worker(this.worker_url);
|
|
3492
|
-
constructor(bmap) {
|
|
3493
|
-
super(bmap);
|
|
3494
|
-
console.log(this.worker);
|
|
3495
|
-
this.worker.postMessage("initial");
|
|
3496
|
-
this.worker.onmessage = (e) => {
|
|
3497
|
-
console.log("onmessage", e.data);
|
|
3498
|
-
};
|
|
3499
|
-
}
|
|
3500
|
-
fetchRoad() {
|
|
3501
|
-
}
|
|
3502
|
-
dispose() {
|
|
3503
|
-
this.worker.terminate();
|
|
3504
|
-
window.URL.revokeObjectURL(this.worker_url);
|
|
3505
|
-
}
|
|
3506
|
-
};
|
|
3507
3512
|
|
|
3508
3513
|
// src/bmap.ts
|
|
3509
3514
|
var MapTypePolar = /* @__PURE__ */ ((MapTypePolar2) => {
|
|
@@ -3539,107 +3544,66 @@ var BMap = class extends EventDispatcher7 {
|
|
|
3539
3544
|
async loadGraphics({
|
|
3540
3545
|
brand,
|
|
3541
3546
|
project,
|
|
3542
|
-
phase,
|
|
3543
|
-
building,
|
|
3544
3547
|
floor,
|
|
3545
3548
|
ts,
|
|
3546
3549
|
resource_type_list
|
|
3547
3550
|
}) {
|
|
3548
|
-
const {
|
|
3549
|
-
|
|
3550
|
-
|
|
3551
|
-
|
|
3552
|
-
|
|
3553
|
-
|
|
3554
|
-
|
|
3555
|
-
(res || []).map((item) => item.info = JSON.parse(item.info));
|
|
3556
|
-
return res || [];
|
|
3557
|
-
});
|
|
3551
|
+
const data = await loadGraphics({
|
|
3552
|
+
brand,
|
|
3553
|
+
project,
|
|
3554
|
+
floor,
|
|
3555
|
+
ts,
|
|
3556
|
+
resource_type_list
|
|
3557
|
+
}, this.config);
|
|
3558
3558
|
return data;
|
|
3559
3559
|
}
|
|
3560
|
-
getBuildingKey({
|
|
3561
|
-
brand,
|
|
3562
|
-
project,
|
|
3563
|
-
phase,
|
|
3564
|
-
building
|
|
3565
|
-
}) {
|
|
3566
|
-
const key = `${brand}-${project}-${phase}-${building}`;
|
|
3567
|
-
return key;
|
|
3568
|
-
}
|
|
3569
3560
|
async loadBuildingGround({
|
|
3570
3561
|
brand,
|
|
3571
|
-
project
|
|
3572
|
-
phase,
|
|
3573
|
-
building
|
|
3562
|
+
project
|
|
3574
3563
|
}) {
|
|
3575
|
-
const key =
|
|
3564
|
+
const key = generatorKeyByObj({ brand, project });
|
|
3576
3565
|
if (this.buildingGroundMap.get(key)) {
|
|
3577
3566
|
return this.buildingGroundMap.get(key) || null;
|
|
3578
3567
|
}
|
|
3579
|
-
const {
|
|
3580
|
-
apiDomain,
|
|
3581
|
-
apiPath: { floorRange },
|
|
3582
|
-
apiInfo
|
|
3583
|
-
} = this.config;
|
|
3584
|
-
const url = `${apiDomain}${floorRange}?brand=${brand}&project=${project}&phase=${phase}&building=${building}`;
|
|
3585
|
-
const data = await fetch(url, apiInfo).then((res) => res.json()).then((res) => res.data).then((res) => {
|
|
3586
|
-
const data2 = (res || [])[0];
|
|
3587
|
-
if (data2) {
|
|
3588
|
-
data2.info = JSON.parse(data2.info);
|
|
3589
|
-
}
|
|
3590
|
-
return data2;
|
|
3591
|
-
});
|
|
3568
|
+
const data = await loadBuildingGround({ brand, project }, this.config);
|
|
3592
3569
|
this.buildingGroundMap.set(key, data);
|
|
3593
3570
|
return data;
|
|
3594
3571
|
}
|
|
3595
|
-
getFloorKey({
|
|
3596
|
-
brand,
|
|
3597
|
-
project,
|
|
3598
|
-
phase,
|
|
3599
|
-
building,
|
|
3600
|
-
floor,
|
|
3601
|
-
ts,
|
|
3602
|
-
resource_type_list
|
|
3603
|
-
}) {
|
|
3604
|
-
const floorKey = `${brand}-${project}-${phase}-${building}-${floor}-${ts}-${resource_type_list}`;
|
|
3605
|
-
return floorKey;
|
|
3606
|
-
}
|
|
3607
3572
|
async load({
|
|
3608
3573
|
brand,
|
|
3609
3574
|
project,
|
|
3610
|
-
phase,
|
|
3611
|
-
building,
|
|
3612
3575
|
floor,
|
|
3613
3576
|
ts,
|
|
3614
3577
|
resource_type_list
|
|
3615
3578
|
}) {
|
|
3616
|
-
const floorKey =
|
|
3617
|
-
|
|
3618
|
-
|
|
3619
|
-
phase,
|
|
3620
|
-
building,
|
|
3621
|
-
floor,
|
|
3622
|
-
ts,
|
|
3623
|
-
resource_type_list
|
|
3624
|
-
});
|
|
3625
|
-
if (this.floorDataMap.get(floorKey)) {
|
|
3626
|
-
return;
|
|
3579
|
+
const floorKey = generatorKeyByObj({ brand, project, floor, ts, resource_type_list });
|
|
3580
|
+
if (this.floorDataMap.has(floorKey)) {
|
|
3581
|
+
return this.floorDataMap.get(floorKey);
|
|
3627
3582
|
}
|
|
3628
3583
|
const [data, buildGround] = await Promise.all([
|
|
3629
3584
|
this.loadGraphics({
|
|
3630
3585
|
brand,
|
|
3631
3586
|
project,
|
|
3632
|
-
phase,
|
|
3633
|
-
building,
|
|
3634
3587
|
floor,
|
|
3635
3588
|
ts,
|
|
3636
3589
|
resource_type_list
|
|
3637
3590
|
}),
|
|
3638
|
-
this.loadBuildingGround({ brand, project
|
|
3591
|
+
this.loadBuildingGround({ brand, project })
|
|
3639
3592
|
]);
|
|
3640
3593
|
const center2 = buildGround ? getCenter(
|
|
3641
3594
|
buildGround.info.geometry.cds[0]
|
|
3642
3595
|
) : [0, 0];
|
|
3596
|
+
this.transformGraphicData(data, center2);
|
|
3597
|
+
data.forEach((item) => {
|
|
3598
|
+
item.info.transformToBuildingGround = !!buildGround;
|
|
3599
|
+
});
|
|
3600
|
+
if (!this.config.useFloorCache) {
|
|
3601
|
+
this.floorDataMap.clear();
|
|
3602
|
+
}
|
|
3603
|
+
this.floorDataMap.set(floorKey, data);
|
|
3604
|
+
return data;
|
|
3605
|
+
}
|
|
3606
|
+
transformGraphicData(data, center2) {
|
|
3643
3607
|
data.forEach((item) => {
|
|
3644
3608
|
item.info.geometry.coords = JSON.parse(
|
|
3645
3609
|
JSON.stringify(item.info.geometry.cds)
|
|
@@ -3657,7 +3621,6 @@ var BMap = class extends EventDispatcher7 {
|
|
|
3657
3621
|
const [x, y] = item.info.geometry.cds;
|
|
3658
3622
|
item.info.geometry.coords = [x - center2[0], y - center2[1]];
|
|
3659
3623
|
}
|
|
3660
|
-
item.info.transformToBuildingGround = !!buildGround;
|
|
3661
3624
|
});
|
|
3662
3625
|
const { ground, markGraphic, graphic } = this.config;
|
|
3663
3626
|
for (let i = 0; i < data.length; i++) {
|
|
@@ -3688,11 +3651,6 @@ var BMap = class extends EventDispatcher7 {
|
|
|
3688
3651
|
}
|
|
3689
3652
|
}
|
|
3690
3653
|
}
|
|
3691
|
-
if (!this.config.useFloorCache) {
|
|
3692
|
-
this.floorDataMap.clear();
|
|
3693
|
-
}
|
|
3694
|
-
this.floorDataMap.set(floorKey, data);
|
|
3695
|
-
return data;
|
|
3696
3654
|
}
|
|
3697
3655
|
loadEquipment() {
|
|
3698
3656
|
const equipment = new Equipment(this);
|
|
@@ -3702,10 +3660,6 @@ var BMap = class extends EventDispatcher7 {
|
|
|
3702
3660
|
plugin.bmap = this;
|
|
3703
3661
|
this.plugins.push(plugin);
|
|
3704
3662
|
}
|
|
3705
|
-
loadNavigation() {
|
|
3706
|
-
const navigation = new Navigation(this);
|
|
3707
|
-
this.plugins.push(navigation);
|
|
3708
|
-
}
|
|
3709
3663
|
createFloor(data) {
|
|
3710
3664
|
const curFloor = new Floor(this.context);
|
|
3711
3665
|
if (!data.length) {
|
|
@@ -3726,20 +3680,19 @@ var BMap = class extends EventDispatcher7 {
|
|
|
3726
3680
|
curFloor.userData.legacyToGraphicMap = legacyToGraphicMap;
|
|
3727
3681
|
return { curFloor, graphics };
|
|
3728
3682
|
}
|
|
3683
|
+
triggerHooks(hooks, ...args) {
|
|
3684
|
+
this.event.emit(hooks, ...args);
|
|
3685
|
+
}
|
|
3729
3686
|
switchFloor({
|
|
3730
3687
|
brand,
|
|
3731
3688
|
project,
|
|
3732
|
-
phase,
|
|
3733
|
-
building,
|
|
3734
3689
|
floor,
|
|
3735
3690
|
ts,
|
|
3736
3691
|
resource_type_list
|
|
3737
3692
|
}) {
|
|
3738
|
-
const floorKey =
|
|
3693
|
+
const floorKey = generatorKeyByObj({
|
|
3739
3694
|
brand,
|
|
3740
3695
|
project,
|
|
3741
|
-
phase,
|
|
3742
|
-
building,
|
|
3743
3696
|
floor,
|
|
3744
3697
|
ts,
|
|
3745
3698
|
resource_type_list
|
|
@@ -3747,33 +3700,14 @@ var BMap = class extends EventDispatcher7 {
|
|
|
3747
3700
|
const curFloorData = this.floorDataMap.get(floorKey);
|
|
3748
3701
|
this.context.control.removeEventListener("change", this.onControlChange);
|
|
3749
3702
|
if (curFloorData) {
|
|
3750
|
-
const buildingKey =
|
|
3751
|
-
brand,
|
|
3752
|
-
project,
|
|
3753
|
-
phase,
|
|
3754
|
-
building
|
|
3755
|
-
});
|
|
3703
|
+
const buildingKey = generatorKeyByObj({ brand, project });
|
|
3756
3704
|
this.currentBuildGround = this.buildingGroundMap.get(buildingKey) || null;
|
|
3757
3705
|
const createdFloor = this.createFloor(curFloorData);
|
|
3758
3706
|
if (createdFloor) {
|
|
3759
|
-
this.
|
|
3760
|
-
this.context.cameraBound.setEnable(false);
|
|
3707
|
+
this.triggerHooks("switch_floor_before" /* SWITCH_FLOOR_BEFORE */, createdFloor);
|
|
3761
3708
|
this.context.switchFloor(createdFloor.curFloor);
|
|
3762
|
-
this.
|
|
3763
|
-
this.
|
|
3764
|
-
this.context.camera.zoom = 1;
|
|
3765
|
-
this.context.setAzimuthalAngle(this.config.control.defaultAzimuthal, 0);
|
|
3766
|
-
this.context.fitCameraToGround(void 0, 0);
|
|
3767
|
-
this.basicZoom = this.context.camera.zoom;
|
|
3768
|
-
this.context.control.minZoom = this.basicZoom;
|
|
3769
|
-
this.context.control.maxZoom = this.basicZoom * 25;
|
|
3770
|
-
this.context.control.addEventListener("change", this.onControlChange);
|
|
3771
|
-
if (this.type === "3d") {
|
|
3772
|
-
this.context.fitCameraToGround(this.config.defaultPadding, 0, false);
|
|
3773
|
-
}
|
|
3774
|
-
this.onControlChange();
|
|
3775
|
-
this.context.cameraBound.setEnable(true);
|
|
3776
|
-
this.event.emit("switch_floor_after" /* SWITCH_FLOOR_AFTER */, createdFloor);
|
|
3709
|
+
this.initialFloorCamera();
|
|
3710
|
+
this.triggerHooks("switch_floor_after" /* SWITCH_FLOOR_AFTER */, createdFloor);
|
|
3777
3711
|
} else {
|
|
3778
3712
|
console.warn("[switchFloor error] [" + floor + "] \u697C\u5C42\u6CA1\u6709\u6570\u636E");
|
|
3779
3713
|
}
|
|
@@ -3783,6 +3717,24 @@ var BMap = class extends EventDispatcher7 {
|
|
|
3783
3717
|
);
|
|
3784
3718
|
}
|
|
3785
3719
|
}
|
|
3720
|
+
// 切换楼层后初始化相机
|
|
3721
|
+
initialFloorCamera() {
|
|
3722
|
+
this.context.cameraBound.setEnable(false);
|
|
3723
|
+
this.context.control.minZoom = 0;
|
|
3724
|
+
this.context.control.maxZoom = Infinity;
|
|
3725
|
+
this.context.camera.zoom = 1;
|
|
3726
|
+
this.context.setAzimuthalAngle(this.config.control.defaultAzimuthal, 0);
|
|
3727
|
+
this.context.fitCameraToGround(void 0, 0);
|
|
3728
|
+
this.basicZoom = this.context.camera.zoom;
|
|
3729
|
+
this.context.control.minZoom = this.basicZoom;
|
|
3730
|
+
this.context.control.maxZoom = this.basicZoom * 25;
|
|
3731
|
+
this.context.control.addEventListener("change", this.onControlChange);
|
|
3732
|
+
if (this.type === "3d") {
|
|
3733
|
+
this.context.fitCameraToGround(this.config.defaultPadding, 0, false);
|
|
3734
|
+
}
|
|
3735
|
+
this.onControlChange();
|
|
3736
|
+
this.context.cameraBound.setEnable(true);
|
|
3737
|
+
}
|
|
3786
3738
|
onControlChange = () => {
|
|
3787
3739
|
const {
|
|
3788
3740
|
camera: { zoom }
|
|
@@ -4145,17 +4097,145 @@ var BMap = class extends EventDispatcher7 {
|
|
|
4145
4097
|
this.unRegistryEvent();
|
|
4146
4098
|
}
|
|
4147
4099
|
};
|
|
4100
|
+
|
|
4101
|
+
// src/plugins/navigation/path.worker.ts
|
|
4102
|
+
var workerCode = `
|
|
4103
|
+
self.onmessage = (e) => {
|
|
4104
|
+
console.log(e.data)
|
|
4105
|
+
loadRoad("");
|
|
4106
|
+
getPath("", "")
|
|
4107
|
+
}
|
|
4108
|
+
|
|
4109
|
+
function loadRoad(project) {
|
|
4110
|
+
// \u8BF7\u6C42\u5168\u90E8\u697C\u5C42\u7684\u8DEF\u7F51
|
|
4111
|
+
console.log(project)
|
|
4112
|
+
self.postMessage("project")
|
|
4113
|
+
}
|
|
4114
|
+
|
|
4115
|
+
function getPath(start, end) {
|
|
4116
|
+
// \u89C4\u5212\u8DEF\u7EBF
|
|
4117
|
+
console.log(start, end)
|
|
4118
|
+
self.postMessage("getPath")
|
|
4119
|
+
}
|
|
4120
|
+
`;
|
|
4121
|
+
var path_worker_default = workerCode;
|
|
4122
|
+
|
|
4123
|
+
// src/plugins/navigation/navigation.ts
|
|
4124
|
+
var Navigation = class extends Plugin {
|
|
4125
|
+
worker_url = window.URL.createObjectURL(new Blob([path_worker_default], { type: "text/javascript" }));
|
|
4126
|
+
worker = new Worker(this.worker_url);
|
|
4127
|
+
constructor(bmap) {
|
|
4128
|
+
super(bmap);
|
|
4129
|
+
console.log(this.worker);
|
|
4130
|
+
this.worker.postMessage("initial");
|
|
4131
|
+
this.worker.onmessage = (e) => {
|
|
4132
|
+
console.log("onmessage", e.data);
|
|
4133
|
+
};
|
|
4134
|
+
}
|
|
4135
|
+
fetchRoad() {
|
|
4136
|
+
}
|
|
4137
|
+
dispose() {
|
|
4138
|
+
this.worker.terminate();
|
|
4139
|
+
window.URL.revokeObjectURL(this.worker_url);
|
|
4140
|
+
}
|
|
4141
|
+
};
|
|
4142
|
+
|
|
4143
|
+
// src/plugins/split-load/split-load.ts
|
|
4144
|
+
var SplitLoad = class extends Plugin {
|
|
4145
|
+
cacheData = /* @__PURE__ */ new Map();
|
|
4146
|
+
async load(query) {
|
|
4147
|
+
const cacheKey = generatorKeyByObj(query);
|
|
4148
|
+
if (this.cacheData.has(cacheKey)) {
|
|
4149
|
+
return this.cacheData.get(cacheKey);
|
|
4150
|
+
}
|
|
4151
|
+
console.time("floor/get\u8BF7\u6C42" + query.resource_type_list);
|
|
4152
|
+
const data = await loadGraphics(query, this.bmap.config);
|
|
4153
|
+
console.timeEnd("floor/get\u8BF7\u6C42" + query.resource_type_list);
|
|
4154
|
+
this.bmap.transformGraphicData(data, [0, 0]);
|
|
4155
|
+
data.forEach((item) => item.info.transformToBuildingGround = false);
|
|
4156
|
+
this.cacheData.set(cacheKey, data);
|
|
4157
|
+
return data;
|
|
4158
|
+
}
|
|
4159
|
+
isSameFloor(query) {
|
|
4160
|
+
return this.bmap.context.currentFloor?.name === generatorKeyByObj(query);
|
|
4161
|
+
}
|
|
4162
|
+
switchFloorByData(data, query) {
|
|
4163
|
+
if (!this.isSameFloor(query)) {
|
|
4164
|
+
const floorName = generatorKeyByObj(query);
|
|
4165
|
+
const { curFloor, graphics } = this.bmap.createFloor(data);
|
|
4166
|
+
curFloor.name = floorName;
|
|
4167
|
+
const graphicMap = /* @__PURE__ */ new Map();
|
|
4168
|
+
data.forEach((graphicInfo) => {
|
|
4169
|
+
graphicMap.set(graphicInfo.element_uuid, graphicInfo);
|
|
4170
|
+
});
|
|
4171
|
+
curFloor.userData.graphicMap = graphicMap;
|
|
4172
|
+
this.bmap.triggerHooks("switch_floor_before" /* SWITCH_FLOOR_BEFORE */, { curFloor, graphics });
|
|
4173
|
+
this.bmap.context.switchFloor(curFloor);
|
|
4174
|
+
this.bmap.initialFloorCamera();
|
|
4175
|
+
this.bmap.triggerHooks("switch_floor_after" /* SWITCH_FLOOR_AFTER */, { curFloor, graphics });
|
|
4176
|
+
} else {
|
|
4177
|
+
if (!data.length) {
|
|
4178
|
+
return;
|
|
4179
|
+
}
|
|
4180
|
+
const curFloor = this.bmap.context.currentFloor;
|
|
4181
|
+
const legacyToGraphicMap = curFloor.userData.legacyToGraphicMap;
|
|
4182
|
+
const graphicMap = curFloor.userData.graphicMap;
|
|
4183
|
+
const graphics = [];
|
|
4184
|
+
for (const item of data) {
|
|
4185
|
+
if (item.info.group === "ground") {
|
|
4186
|
+
curFloor.createGround(item.info);
|
|
4187
|
+
} else {
|
|
4188
|
+
const graphic = curFloor.addGraphic(item.info);
|
|
4189
|
+
graphic.userData.data = item;
|
|
4190
|
+
legacyToGraphicMap.set(item.legacy_id, graphic);
|
|
4191
|
+
graphics.push(graphic);
|
|
4192
|
+
}
|
|
4193
|
+
graphicMap.set(item.element_uuid, item);
|
|
4194
|
+
}
|
|
4195
|
+
this.bmap.triggerHooks("switch_floor_before" /* SWITCH_FLOOR_BEFORE */, { curFloor, graphics });
|
|
4196
|
+
this.bmap.initialFloorCamera();
|
|
4197
|
+
this.bmap.triggerHooks("switch_floor_after" /* SWITCH_FLOOR_AFTER */, { curFloor, graphics });
|
|
4198
|
+
}
|
|
4199
|
+
}
|
|
4200
|
+
filterData(data, query) {
|
|
4201
|
+
if (!this.isSameFloor(query)) {
|
|
4202
|
+
return data;
|
|
4203
|
+
}
|
|
4204
|
+
const graphicMap = this.bmap.context.currentFloor.userData.graphicMap;
|
|
4205
|
+
return data.filter((graphic) => !graphicMap.has(graphic.element_uuid));
|
|
4206
|
+
}
|
|
4207
|
+
async switchFloorByStoreData(query) {
|
|
4208
|
+
const storeData = await this.load({ ...query, resource_type_list: "6" });
|
|
4209
|
+
const filterData = this.filterData(storeData, query);
|
|
4210
|
+
this.switchFloorByData(filterData, query);
|
|
4211
|
+
}
|
|
4212
|
+
async switchFloorByOtherData(query) {
|
|
4213
|
+
const otherData = await this.load({
|
|
4214
|
+
...query,
|
|
4215
|
+
resource_type_list: "1,2,3,4"
|
|
4216
|
+
});
|
|
4217
|
+
const filterData = this.filterData(otherData, query);
|
|
4218
|
+
this.switchFloorByData(filterData, query);
|
|
4219
|
+
}
|
|
4220
|
+
async changeFloor(query) {
|
|
4221
|
+
await Promise.all([
|
|
4222
|
+
this.switchFloorByStoreData(query),
|
|
4223
|
+
this.switchFloorByOtherData(query)
|
|
4224
|
+
]);
|
|
4225
|
+
return Array.from(this.bmap.context.currentFloor.userData.graphicMap.values());
|
|
4226
|
+
}
|
|
4227
|
+
};
|
|
4148
4228
|
export {
|
|
4149
4229
|
BMap,
|
|
4150
4230
|
BaseSvg,
|
|
4151
4231
|
Context,
|
|
4152
4232
|
Equipment,
|
|
4153
|
-
EventName,
|
|
4154
4233
|
Events,
|
|
4155
4234
|
Floor,
|
|
4156
4235
|
Graphic,
|
|
4157
4236
|
GraphicLayer,
|
|
4158
4237
|
HeatmapElement,
|
|
4238
|
+
HooksName,
|
|
4159
4239
|
HoverHelper,
|
|
4160
4240
|
Layer,
|
|
4161
4241
|
MapTypePolar,
|
|
@@ -4167,6 +4247,7 @@ export {
|
|
|
4167
4247
|
SelectBox,
|
|
4168
4248
|
Selection,
|
|
4169
4249
|
Shadow,
|
|
4250
|
+
SplitLoad,
|
|
4170
4251
|
SvgLine,
|
|
4171
4252
|
SvgPolygon,
|
|
4172
4253
|
Timer,
|
|
@@ -4183,6 +4264,7 @@ export {
|
|
|
4183
4264
|
defaultConfig,
|
|
4184
4265
|
dispose,
|
|
4185
4266
|
disposeLoader,
|
|
4267
|
+
generatorKeyByObj,
|
|
4186
4268
|
getCenter,
|
|
4187
4269
|
getConfig,
|
|
4188
4270
|
getLongestSideDir,
|
|
@@ -4199,6 +4281,8 @@ export {
|
|
|
4199
4281
|
isContain,
|
|
4200
4282
|
isControl,
|
|
4201
4283
|
isMac,
|
|
4284
|
+
loadBuildingGround,
|
|
4285
|
+
loadGraphics,
|
|
4202
4286
|
loadModel,
|
|
4203
4287
|
proxyOptions,
|
|
4204
4288
|
setCirclePosition,
|