@aibee/crc-bmap 0.0.113 → 0.0.115
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/lib/bmap.cjs.min.js +5 -3691
- package/lib/bmap.cjs.min.js.map +4 -4
- package/lib/bmap.esm.js +653 -249
- package/lib/bmap.esm.js.map +4 -4
- package/lib/bmap.esm.min.js +5 -5
- package/lib/bmap.esm.min.js.map +4 -4
- package/lib/bmap.min.js +4 -4
- package/lib/bmap.min.js.map +4 -4
- package/lib/src/elements/floor.d.ts +4 -6
- package/lib/src/elements/index.d.ts +2 -0
- package/lib/src/elements/model.d.ts +0 -5
- package/lib/src/elements/wall.d.ts +29 -2
- package/lib/src/index.d.ts +1 -0
- package/lib/src/loader/AibeeLoader/index.d.ts +3 -2
- package/lib/src/loader/AibeeLoader/type.d.ts +115 -0
- package/lib/src/loader/AibeeLoader/utils.d.ts +3 -0
- package/lib/src/plugins/index.d.ts +1 -0
- package/package.json +1 -1
package/lib/bmap.esm.js
CHANGED
|
@@ -454,7 +454,7 @@ var require_Graph = __commonJS({
|
|
|
454
454
|
});
|
|
455
455
|
|
|
456
456
|
// src/bmap.ts
|
|
457
|
-
import { EventDispatcher as EventDispatcher7, Vector3 as
|
|
457
|
+
import { EventDispatcher as EventDispatcher7, Vector3 as Vector315 } from "three";
|
|
458
458
|
|
|
459
459
|
// src/utils/timer.ts
|
|
460
460
|
var Timer = class {
|
|
@@ -1619,7 +1619,7 @@ function toWebWorker(obj) {
|
|
|
1619
1619
|
import {
|
|
1620
1620
|
EventDispatcher as EventDispatcher6,
|
|
1621
1621
|
Box2,
|
|
1622
|
-
Vector3 as
|
|
1622
|
+
Vector3 as Vector314,
|
|
1623
1623
|
Vector2 as Vector25,
|
|
1624
1624
|
Raycaster as Raycaster3,
|
|
1625
1625
|
Box3 as Box38,
|
|
@@ -2380,8 +2380,13 @@ var Poi = class extends EventDispatcher2 {
|
|
|
2380
2380
|
}
|
|
2381
2381
|
});
|
|
2382
2382
|
this.addEventListener("change-texts", ({ value }) => {
|
|
2383
|
-
|
|
2384
|
-
|
|
2383
|
+
const div = this.textDiv;
|
|
2384
|
+
if (div) {
|
|
2385
|
+
const text = this.initText();
|
|
2386
|
+
this.div.replaceChild(text, div);
|
|
2387
|
+
} else {
|
|
2388
|
+
this.addText();
|
|
2389
|
+
}
|
|
2385
2390
|
this.resetSize();
|
|
2386
2391
|
});
|
|
2387
2392
|
this.addEventListener("change-opacity", ({ value }) => {
|
|
@@ -2608,20 +2613,141 @@ var Poi = class extends EventDispatcher2 {
|
|
|
2608
2613
|
};
|
|
2609
2614
|
|
|
2610
2615
|
// src/elements/floor.ts
|
|
2611
|
-
import { Box3 as Box35,
|
|
2616
|
+
import { Box3 as Box35, Object3D as Object3D8, Vector3 as Vector38 } from "three";
|
|
2617
|
+
|
|
2618
|
+
// src/elements/heatmap.ts
|
|
2619
|
+
import {
|
|
2620
|
+
MeshBasicMaterial as MeshBasicMaterial2,
|
|
2621
|
+
Object3D as Object3D5,
|
|
2622
|
+
PlaneGeometry as PlaneGeometry2,
|
|
2623
|
+
Texture,
|
|
2624
|
+
DoubleSide as DoubleSide3,
|
|
2625
|
+
Mesh as Mesh3,
|
|
2626
|
+
Matrix3,
|
|
2627
|
+
Vector2 as Vector24
|
|
2628
|
+
} from "three";
|
|
2629
|
+
import { create } from "@mars3d/heatmap.js";
|
|
2630
|
+
import { featureCollection as featureCollection2, point as point2, bbox, center as getCenter2 } from "@turf/turf";
|
|
2631
|
+
var HeatmapElement = class extends Object3D5 {
|
|
2632
|
+
constructor(context) {
|
|
2633
|
+
super();
|
|
2634
|
+
this.context = context;
|
|
2635
|
+
this.div = document.createElement("div");
|
|
2636
|
+
}
|
|
2637
|
+
heatmap;
|
|
2638
|
+
div;
|
|
2639
|
+
plane;
|
|
2640
|
+
clearHeatmap() {
|
|
2641
|
+
if (this.div.firstChild) {
|
|
2642
|
+
this.div.removeChild(this.div.firstChild);
|
|
2643
|
+
}
|
|
2644
|
+
this.heatmap = void 0;
|
|
2645
|
+
}
|
|
2646
|
+
loadData(data) {
|
|
2647
|
+
this.clearHeatmap();
|
|
2648
|
+
const { width, height, leftTop, center: center2 } = this.getBox(data);
|
|
2649
|
+
this.heatmap = create({
|
|
2650
|
+
width,
|
|
2651
|
+
height,
|
|
2652
|
+
container: this.div,
|
|
2653
|
+
...this.context.config.heatMap
|
|
2654
|
+
});
|
|
2655
|
+
this.heatmap.setData(this.transformData(data, leftTop));
|
|
2656
|
+
this.initPlane(width, height);
|
|
2657
|
+
this.position.set(center2[0], center2[1], this.position.z);
|
|
2658
|
+
}
|
|
2659
|
+
initPlane(width, height) {
|
|
2660
|
+
if (this.plane) {
|
|
2661
|
+
this.remove(this.plane);
|
|
2662
|
+
}
|
|
2663
|
+
const geometry = new PlaneGeometry2(width, height);
|
|
2664
|
+
const texture = new Texture(this.div.firstChild);
|
|
2665
|
+
texture.needsUpdate = true;
|
|
2666
|
+
const material = new MeshBasicMaterial2({
|
|
2667
|
+
transparent: true,
|
|
2668
|
+
side: DoubleSide3,
|
|
2669
|
+
map: texture
|
|
2670
|
+
});
|
|
2671
|
+
material.needsUpdate = true;
|
|
2672
|
+
this.plane = new Mesh3(geometry, material);
|
|
2673
|
+
this.add(this.plane);
|
|
2674
|
+
}
|
|
2675
|
+
getTransMatrix({ x, y }) {
|
|
2676
|
+
return new Matrix3().makeScale(1, -1).multiply(new Matrix3().makeTranslation(0 - x, 0 - y));
|
|
2677
|
+
}
|
|
2678
|
+
/**
|
|
2679
|
+
* 所有点的坐标减去左上角从00点开始画canvas
|
|
2680
|
+
* @param data
|
|
2681
|
+
* @param leftTop
|
|
2682
|
+
* @returns
|
|
2683
|
+
*/
|
|
2684
|
+
transformData(data, leftTop) {
|
|
2685
|
+
const matrix = this.getTransMatrix(leftTop);
|
|
2686
|
+
const $data = data.data.map((item) => {
|
|
2687
|
+
const vector = new Vector24(item.x, item.y).applyMatrix3(matrix);
|
|
2688
|
+
return {
|
|
2689
|
+
x: vector.x,
|
|
2690
|
+
y: vector.y,
|
|
2691
|
+
value: item.value
|
|
2692
|
+
};
|
|
2693
|
+
});
|
|
2694
|
+
return {
|
|
2695
|
+
data: $data,
|
|
2696
|
+
max: data.max,
|
|
2697
|
+
min: data.min
|
|
2698
|
+
};
|
|
2699
|
+
}
|
|
2700
|
+
getBox(data) {
|
|
2701
|
+
const features = featureCollection2(data.data.map((item) => point2([item.x, item.y])));
|
|
2702
|
+
const box = bbox(features);
|
|
2703
|
+
const width = box[2] - box[0];
|
|
2704
|
+
const height = box[3] - box[1];
|
|
2705
|
+
const leftTop = { x: box[0], y: box[3] };
|
|
2706
|
+
const center2 = getCenter2(features);
|
|
2707
|
+
return { width, height, leftTop, center: center2.geometry.coordinates };
|
|
2708
|
+
}
|
|
2709
|
+
dispose() {
|
|
2710
|
+
this.div = null;
|
|
2711
|
+
this.heatmap = void 0;
|
|
2712
|
+
}
|
|
2713
|
+
};
|
|
2714
|
+
|
|
2715
|
+
// src/elements/model.ts
|
|
2716
|
+
import { Object3D as Object3D6, Vector3 as Vector36 } from "three";
|
|
2717
|
+
var Model = class extends Object3D6 {
|
|
2718
|
+
constructor(context, options) {
|
|
2719
|
+
super();
|
|
2720
|
+
this.context = context;
|
|
2721
|
+
this.options = options;
|
|
2722
|
+
this.position.copy(options.position || new Vector36(0, 0, 0));
|
|
2723
|
+
this.loadModel();
|
|
2724
|
+
}
|
|
2725
|
+
model = null;
|
|
2726
|
+
async loadModel() {
|
|
2727
|
+
const object = await loadModel(this.options.modelUrl);
|
|
2728
|
+
object.scene.rotation.set(Math.PI / 2, Math.PI / 2, 0);
|
|
2729
|
+
this.add(object.scene);
|
|
2730
|
+
this.model = object;
|
|
2731
|
+
}
|
|
2732
|
+
dispose() {
|
|
2733
|
+
dispose(this);
|
|
2734
|
+
this.model = null;
|
|
2735
|
+
}
|
|
2736
|
+
};
|
|
2612
2737
|
|
|
2613
2738
|
// src/layer/graphic-layer.ts
|
|
2614
|
-
import { Box3 as
|
|
2739
|
+
import { Box3 as Box34, Vector3 as Vector37 } from "three";
|
|
2615
2740
|
|
|
2616
2741
|
// src/layer/layer.ts
|
|
2617
|
-
import { Object3D as
|
|
2618
|
-
var Layer = class extends
|
|
2742
|
+
import { Object3D as Object3D7 } from "three";
|
|
2743
|
+
var Layer = class extends Object3D7 {
|
|
2619
2744
|
constructor(context) {
|
|
2620
2745
|
super();
|
|
2621
2746
|
this.context = context;
|
|
2622
2747
|
}
|
|
2623
2748
|
dispose() {
|
|
2624
2749
|
dispose(this);
|
|
2750
|
+
this.children.forEach((item) => item.dispose?.());
|
|
2625
2751
|
this.clear();
|
|
2626
2752
|
}
|
|
2627
2753
|
};
|
|
@@ -2633,8 +2759,8 @@ var GraphicLayer = class extends Layer {
|
|
|
2633
2759
|
super(context);
|
|
2634
2760
|
}
|
|
2635
2761
|
getCenter() {
|
|
2636
|
-
const box = new
|
|
2637
|
-
return box.getCenter(new
|
|
2762
|
+
const box = new Box34().setFromObject(this);
|
|
2763
|
+
return box.getCenter(new Vector37());
|
|
2638
2764
|
}
|
|
2639
2765
|
createGraphic(options) {
|
|
2640
2766
|
const graphic = new Graphic(this.context, options);
|
|
@@ -2818,215 +2944,32 @@ var PoiLayer = class extends Layer {
|
|
|
2818
2944
|
}
|
|
2819
2945
|
};
|
|
2820
2946
|
|
|
2821
|
-
// src/elements/heatmap.ts
|
|
2822
|
-
import {
|
|
2823
|
-
MeshBasicMaterial as MeshBasicMaterial2,
|
|
2824
|
-
Object3D as Object3D6,
|
|
2825
|
-
PlaneGeometry as PlaneGeometry2,
|
|
2826
|
-
Texture,
|
|
2827
|
-
DoubleSide as DoubleSide3,
|
|
2828
|
-
Mesh as Mesh3,
|
|
2829
|
-
Matrix3,
|
|
2830
|
-
Vector2 as Vector24
|
|
2831
|
-
} from "three";
|
|
2832
|
-
import { create } from "@mars3d/heatmap.js";
|
|
2833
|
-
import { featureCollection as featureCollection2, point as point2, bbox, center as getCenter2 } from "@turf/turf";
|
|
2834
|
-
var HeatmapElement = class extends Object3D6 {
|
|
2835
|
-
constructor(context) {
|
|
2836
|
-
super();
|
|
2837
|
-
this.context = context;
|
|
2838
|
-
this.div = document.createElement("div");
|
|
2839
|
-
}
|
|
2840
|
-
heatmap;
|
|
2841
|
-
div;
|
|
2842
|
-
plane;
|
|
2843
|
-
clearHeatmap() {
|
|
2844
|
-
if (this.div.firstChild) {
|
|
2845
|
-
this.div.removeChild(this.div.firstChild);
|
|
2846
|
-
}
|
|
2847
|
-
this.heatmap = void 0;
|
|
2848
|
-
}
|
|
2849
|
-
loadData(data) {
|
|
2850
|
-
this.clearHeatmap();
|
|
2851
|
-
const { width, height, leftTop, center: center2 } = this.getBox(data);
|
|
2852
|
-
this.heatmap = create({
|
|
2853
|
-
width,
|
|
2854
|
-
height,
|
|
2855
|
-
container: this.div,
|
|
2856
|
-
...this.context.config.heatMap
|
|
2857
|
-
});
|
|
2858
|
-
this.heatmap.setData(this.transformData(data, leftTop));
|
|
2859
|
-
this.initPlane(width, height);
|
|
2860
|
-
this.position.set(center2[0], center2[1], this.position.z);
|
|
2861
|
-
}
|
|
2862
|
-
initPlane(width, height) {
|
|
2863
|
-
if (this.plane) {
|
|
2864
|
-
this.remove(this.plane);
|
|
2865
|
-
}
|
|
2866
|
-
const geometry = new PlaneGeometry2(width, height);
|
|
2867
|
-
const texture = new Texture(this.div.firstChild);
|
|
2868
|
-
texture.needsUpdate = true;
|
|
2869
|
-
const material = new MeshBasicMaterial2({
|
|
2870
|
-
transparent: true,
|
|
2871
|
-
side: DoubleSide3,
|
|
2872
|
-
map: texture
|
|
2873
|
-
});
|
|
2874
|
-
material.needsUpdate = true;
|
|
2875
|
-
this.plane = new Mesh3(geometry, material);
|
|
2876
|
-
this.add(this.plane);
|
|
2877
|
-
}
|
|
2878
|
-
getTransMatrix({ x, y }) {
|
|
2879
|
-
return new Matrix3().makeScale(1, -1).multiply(new Matrix3().makeTranslation(0 - x, 0 - y));
|
|
2880
|
-
}
|
|
2881
|
-
/**
|
|
2882
|
-
* 所有点的坐标减去左上角从00点开始画canvas
|
|
2883
|
-
* @param data
|
|
2884
|
-
* @param leftTop
|
|
2885
|
-
* @returns
|
|
2886
|
-
*/
|
|
2887
|
-
transformData(data, leftTop) {
|
|
2888
|
-
const matrix = this.getTransMatrix(leftTop);
|
|
2889
|
-
const $data = data.data.map((item) => {
|
|
2890
|
-
const vector = new Vector24(item.x, item.y).applyMatrix3(matrix);
|
|
2891
|
-
return {
|
|
2892
|
-
x: vector.x,
|
|
2893
|
-
y: vector.y,
|
|
2894
|
-
value: item.value
|
|
2895
|
-
};
|
|
2896
|
-
});
|
|
2897
|
-
return {
|
|
2898
|
-
data: $data,
|
|
2899
|
-
max: data.max,
|
|
2900
|
-
min: data.min
|
|
2901
|
-
};
|
|
2902
|
-
}
|
|
2903
|
-
getBox(data) {
|
|
2904
|
-
const features = featureCollection2(data.data.map((item) => point2([item.x, item.y])));
|
|
2905
|
-
const box = bbox(features);
|
|
2906
|
-
const width = box[2] - box[0];
|
|
2907
|
-
const height = box[3] - box[1];
|
|
2908
|
-
const leftTop = { x: box[0], y: box[3] };
|
|
2909
|
-
const center2 = getCenter2(features);
|
|
2910
|
-
return { width, height, leftTop, center: center2.geometry.coordinates };
|
|
2911
|
-
}
|
|
2912
|
-
dispose() {
|
|
2913
|
-
this.div = null;
|
|
2914
|
-
this.heatmap = void 0;
|
|
2915
|
-
}
|
|
2916
|
-
};
|
|
2917
|
-
|
|
2918
|
-
// src/elements/model.ts
|
|
2919
|
-
import { Box3 as Box34, Object3D as Object3D7, Vector3 as Vector37 } from "three";
|
|
2920
|
-
var Model = class extends Object3D7 {
|
|
2921
|
-
constructor(context, options) {
|
|
2922
|
-
super();
|
|
2923
|
-
this.context = context;
|
|
2924
|
-
this.options = options;
|
|
2925
|
-
this.position.copy(options.position || new Vector37(0, 0, 0));
|
|
2926
|
-
this.loadModel();
|
|
2927
|
-
}
|
|
2928
|
-
poi = null;
|
|
2929
|
-
model = null;
|
|
2930
|
-
async loadModel() {
|
|
2931
|
-
const object = await loadModel(this.options.modelUrl);
|
|
2932
|
-
object.scene.rotation.set(Math.PI / 2, Math.PI / 2, 0);
|
|
2933
|
-
this.add(object.scene);
|
|
2934
|
-
this.model = object;
|
|
2935
|
-
this.initPoi();
|
|
2936
|
-
}
|
|
2937
|
-
initPoi() {
|
|
2938
|
-
if (!this.options.icon) {
|
|
2939
|
-
return;
|
|
2940
|
-
}
|
|
2941
|
-
const poi = this.context.currentFloor?.addPoi({
|
|
2942
|
-
icon: this.options.icon,
|
|
2943
|
-
icon_size: this.options.icon_size,
|
|
2944
|
-
built_in: true,
|
|
2945
|
-
level: 0
|
|
2946
|
-
});
|
|
2947
|
-
this.poi = poi || null;
|
|
2948
|
-
if (this.model && poi) {
|
|
2949
|
-
poi.position = new Box34().setFromObject(this).getCenter(new Vector37());
|
|
2950
|
-
}
|
|
2951
|
-
}
|
|
2952
|
-
dispose() {
|
|
2953
|
-
dispose(this);
|
|
2954
|
-
this.model = null;
|
|
2955
|
-
if (this.poi) {
|
|
2956
|
-
this.context.currentFloor?.poiLayer.removePoi(this.poi);
|
|
2957
|
-
this.poi = null;
|
|
2958
|
-
}
|
|
2959
|
-
}
|
|
2960
|
-
};
|
|
2961
|
-
|
|
2962
|
-
// src/elements/ground-texture.ts
|
|
2963
|
-
import { Euler, Mesh as Mesh4, Object3D as Object3D8, PlaneGeometry as PlaneGeometry3 } from "three";
|
|
2964
|
-
var defaultOptions4 = {
|
|
2965
|
-
uuid: "",
|
|
2966
|
-
url: "",
|
|
2967
|
-
name: "",
|
|
2968
|
-
angleX: 0,
|
|
2969
|
-
angleY: 0,
|
|
2970
|
-
angleZ: 0,
|
|
2971
|
-
width: 0,
|
|
2972
|
-
height: 0,
|
|
2973
|
-
center: [0, 0],
|
|
2974
|
-
opacity: 1,
|
|
2975
|
-
visible: true
|
|
2976
|
-
};
|
|
2977
|
-
var GroundTexture = class extends Object3D8 {
|
|
2978
|
-
constructor(context, options) {
|
|
2979
|
-
super();
|
|
2980
|
-
this.context = context;
|
|
2981
|
-
this.options = proxyOptions(
|
|
2982
|
-
{ ...defaultOptions4, ...options },
|
|
2983
|
-
this
|
|
2984
|
-
);
|
|
2985
|
-
this.init();
|
|
2986
|
-
}
|
|
2987
|
-
options;
|
|
2988
|
-
mesh;
|
|
2989
|
-
async init() {
|
|
2990
|
-
const { width, height, center: center2, url, opacity, angleX, angleY, angleZ } = this.options;
|
|
2991
|
-
const planeGeometry = new PlaneGeometry3(width, height);
|
|
2992
|
-
const planeMaterial = await this.context.materialFactory.createGroundTextureMaterial({
|
|
2993
|
-
url,
|
|
2994
|
-
opacity
|
|
2995
|
-
});
|
|
2996
|
-
const mesh = new Mesh4(planeGeometry, planeMaterial);
|
|
2997
|
-
this.mesh = mesh;
|
|
2998
|
-
this.mesh.position.set(center2[0], center2[1], 0);
|
|
2999
|
-
mesh.setRotationFromEuler(new Euler(angleX, angleY, angleZ));
|
|
3000
|
-
this.add(mesh);
|
|
3001
|
-
}
|
|
3002
|
-
dispose() {
|
|
3003
|
-
this.mesh?.geometry.dispose();
|
|
3004
|
-
this.clear();
|
|
3005
|
-
}
|
|
3006
|
-
};
|
|
3007
|
-
|
|
3008
2947
|
// src/elements/floor.ts
|
|
3009
|
-
var Floor = class extends
|
|
2948
|
+
var Floor = class extends Object3D8 {
|
|
3010
2949
|
constructor(context) {
|
|
3011
2950
|
super();
|
|
3012
2951
|
this.context = context;
|
|
3013
2952
|
this.graphicLayer = new GraphicLayer(this.context);
|
|
3014
2953
|
this.poiLayer = new PoiLayer(this.context);
|
|
2954
|
+
this.wallLayer = new Layer(this.context);
|
|
2955
|
+
this.textureLayer = new Layer(this.context);
|
|
3015
2956
|
this.groundUpper.add(this.graphicLayer);
|
|
3016
2957
|
this.groundUpper.add(this.poiLayer);
|
|
3017
|
-
this.groundUpper.add(this.
|
|
2958
|
+
this.groundUpper.add(this.wallLayer);
|
|
2959
|
+
this.groundUpper.add(this.textureLayer);
|
|
3018
2960
|
this.add(this.groundUpper);
|
|
3019
2961
|
this.add(this.models);
|
|
3020
2962
|
}
|
|
3021
2963
|
graphicLayer;
|
|
3022
2964
|
poiLayer;
|
|
2965
|
+
wallLayer;
|
|
2966
|
+
textureLayer;
|
|
3023
2967
|
grounds = /* @__PURE__ */ new Set();
|
|
3024
2968
|
shadow = new Shadow();
|
|
3025
2969
|
heatmap;
|
|
3026
|
-
groundUpper = new
|
|
3027
|
-
models = new
|
|
2970
|
+
groundUpper = new Object3D8();
|
|
2971
|
+
models = new Object3D8();
|
|
3028
2972
|
modelMap = /* @__PURE__ */ new Map();
|
|
3029
|
-
groundTextures = new Group2();
|
|
3030
2973
|
groundMaxHeight = 0;
|
|
3031
2974
|
name = "";
|
|
3032
2975
|
key = "";
|
|
@@ -3079,10 +3022,6 @@ var Floor = class extends Object3D9 {
|
|
|
3079
3022
|
addPoi(poiOptions) {
|
|
3080
3023
|
return this.poiLayer.createPoi(poiOptions);
|
|
3081
3024
|
}
|
|
3082
|
-
addGroundTexture(options) {
|
|
3083
|
-
const groundTexture = new GroundTexture(this.context, options);
|
|
3084
|
-
this.groundTextures.add(groundTexture);
|
|
3085
|
-
}
|
|
3086
3025
|
addHeatmap(data) {
|
|
3087
3026
|
if (!this.heatmap) {
|
|
3088
3027
|
this.heatmap = new HeatmapElement(this.context);
|
|
@@ -3110,9 +3049,9 @@ var Floor = class extends Object3D9 {
|
|
|
3110
3049
|
this.shadow.dispose();
|
|
3111
3050
|
this.graphicLayer.dispose();
|
|
3112
3051
|
this.poiLayer.dispose();
|
|
3052
|
+
this.wallLayer.dispose();
|
|
3053
|
+
this.textureLayer.dispose();
|
|
3113
3054
|
this.grounds.forEach((ground) => ground.dispose());
|
|
3114
|
-
this.groundTextures.children.forEach((groundTexture) => groundTexture.dispose());
|
|
3115
|
-
this.groundTextures.clear();
|
|
3116
3055
|
this.heatmap?.dispose();
|
|
3117
3056
|
this.groundUpper.clear();
|
|
3118
3057
|
this.models.children.forEach((model) => model.dispose());
|
|
@@ -3511,6 +3450,154 @@ var SelectBox = class extends BaseSvg {
|
|
|
3511
3450
|
}
|
|
3512
3451
|
};
|
|
3513
3452
|
|
|
3453
|
+
// src/elements/wall.ts
|
|
3454
|
+
import { BufferGeometry as BufferGeometry2, ExtrudeGeometry as ExtrudeGeometry2, LineSegments as LineSegments2, Mesh as Mesh4, Object3D as Object3D9, Vector3 as Vector310 } from "three";
|
|
3455
|
+
import { mergeGeometries } from "three/examples/jsm/utils/BufferGeometryUtils";
|
|
3456
|
+
var Wall = class extends Object3D9 {
|
|
3457
|
+
constructor(context, options) {
|
|
3458
|
+
super();
|
|
3459
|
+
this.context = context;
|
|
3460
|
+
this.options = options;
|
|
3461
|
+
if (!options.length) {
|
|
3462
|
+
return;
|
|
3463
|
+
}
|
|
3464
|
+
this.init();
|
|
3465
|
+
}
|
|
3466
|
+
geometry;
|
|
3467
|
+
material;
|
|
3468
|
+
lineMaterial;
|
|
3469
|
+
lineGeometry;
|
|
3470
|
+
Mesh;
|
|
3471
|
+
LineMesh;
|
|
3472
|
+
initGeometry() {
|
|
3473
|
+
const geometries = this.options.map((option) => {
|
|
3474
|
+
const shape = initShape(
|
|
3475
|
+
option.geometry.coords[0],
|
|
3476
|
+
option.geometry.coords.slice(1)
|
|
3477
|
+
);
|
|
3478
|
+
const geometry = new ExtrudeGeometry2(shape, {
|
|
3479
|
+
steps: 1,
|
|
3480
|
+
bevelEnabled: false,
|
|
3481
|
+
depth: option.height,
|
|
3482
|
+
curveSegments: 4
|
|
3483
|
+
});
|
|
3484
|
+
return geometry;
|
|
3485
|
+
});
|
|
3486
|
+
this.geometry = mergeGeometries(geometries);
|
|
3487
|
+
}
|
|
3488
|
+
initMaterial() {
|
|
3489
|
+
const { fillColor, fillOpacity, height } = this.options[0];
|
|
3490
|
+
const material = this.context.materialFactory.createMeshBasicMaterial({
|
|
3491
|
+
color: fillColor,
|
|
3492
|
+
opacity: fillOpacity
|
|
3493
|
+
});
|
|
3494
|
+
const material1 = this.context.materialFactory.createMeshBasicMaterial({
|
|
3495
|
+
color: darkenColor(fillColor),
|
|
3496
|
+
opacity: fillOpacity
|
|
3497
|
+
});
|
|
3498
|
+
this.material = [material, material1];
|
|
3499
|
+
return [material, material1];
|
|
3500
|
+
}
|
|
3501
|
+
initLineMaterial() {
|
|
3502
|
+
const { strokeColor, strokeOpacity } = this.options[0];
|
|
3503
|
+
const lineMaterial = this.context.materialFactory.createLineMaterial({
|
|
3504
|
+
color: strokeColor,
|
|
3505
|
+
opacity: strokeOpacity
|
|
3506
|
+
});
|
|
3507
|
+
this.lineMaterial = lineMaterial;
|
|
3508
|
+
return lineMaterial;
|
|
3509
|
+
}
|
|
3510
|
+
getBorderPoints(option) {
|
|
3511
|
+
const { height, deltaHeight, geometry } = option;
|
|
3512
|
+
const points = [];
|
|
3513
|
+
const _height = height + (deltaHeight || 0);
|
|
3514
|
+
const { coords } = geometry;
|
|
3515
|
+
for (let j = 0; j < coords.length; j++) {
|
|
3516
|
+
const curCds = coords[j];
|
|
3517
|
+
for (let i = 0; i < curCds.length; i++) {
|
|
3518
|
+
const cur = curCds[i];
|
|
3519
|
+
const next = i + 1 === curCds.length ? curCds[0] : curCds[i + 1];
|
|
3520
|
+
points.push(new Vector310(cur[0], cur[1], _height));
|
|
3521
|
+
points.push(new Vector310(next[0], next[1], _height));
|
|
3522
|
+
}
|
|
3523
|
+
}
|
|
3524
|
+
return points;
|
|
3525
|
+
}
|
|
3526
|
+
initLineGeometry() {
|
|
3527
|
+
const geometries = this.options.map((option) => {
|
|
3528
|
+
const points = this.getBorderPoints(option);
|
|
3529
|
+
return new BufferGeometry2().setFromPoints(points);
|
|
3530
|
+
});
|
|
3531
|
+
this.lineGeometry = mergeGeometries(geometries);
|
|
3532
|
+
}
|
|
3533
|
+
createBorder() {
|
|
3534
|
+
const line = new LineSegments2(this.lineGeometry, this.lineMaterial);
|
|
3535
|
+
this.LineMesh = line;
|
|
3536
|
+
this.add(line);
|
|
3537
|
+
return line;
|
|
3538
|
+
}
|
|
3539
|
+
init() {
|
|
3540
|
+
this.initGeometry();
|
|
3541
|
+
this.initMaterial();
|
|
3542
|
+
const mesh = new Mesh4(this.geometry, this.material);
|
|
3543
|
+
this.add(mesh);
|
|
3544
|
+
this.initLineMaterial();
|
|
3545
|
+
this.initLineGeometry();
|
|
3546
|
+
this.createBorder();
|
|
3547
|
+
}
|
|
3548
|
+
dispose() {
|
|
3549
|
+
this.geometry?.dispose();
|
|
3550
|
+
this.lineGeometry?.dispose();
|
|
3551
|
+
this.clear();
|
|
3552
|
+
}
|
|
3553
|
+
};
|
|
3554
|
+
|
|
3555
|
+
// src/elements/ground-texture.ts
|
|
3556
|
+
import { Euler, Mesh as Mesh5, Object3D as Object3D10, PlaneGeometry as PlaneGeometry3 } from "three";
|
|
3557
|
+
var defaultOptions4 = {
|
|
3558
|
+
uuid: "",
|
|
3559
|
+
url: "",
|
|
3560
|
+
name: "",
|
|
3561
|
+
angleX: 0,
|
|
3562
|
+
angleY: 0,
|
|
3563
|
+
angleZ: 0,
|
|
3564
|
+
width: 0,
|
|
3565
|
+
height: 0,
|
|
3566
|
+
center: [0, 0],
|
|
3567
|
+
opacity: 1,
|
|
3568
|
+
visible: true
|
|
3569
|
+
};
|
|
3570
|
+
var GroundTexture = class extends Object3D10 {
|
|
3571
|
+
constructor(context, options) {
|
|
3572
|
+
super();
|
|
3573
|
+
this.context = context;
|
|
3574
|
+
this.options = proxyOptions(
|
|
3575
|
+
{ ...defaultOptions4, ...options },
|
|
3576
|
+
this
|
|
3577
|
+
);
|
|
3578
|
+
this.init();
|
|
3579
|
+
}
|
|
3580
|
+
options;
|
|
3581
|
+
mesh;
|
|
3582
|
+
async init() {
|
|
3583
|
+
const { width, height, center: center2, url, opacity, angleX, angleY, angleZ } = this.options;
|
|
3584
|
+
const planeGeometry = new PlaneGeometry3(width, height);
|
|
3585
|
+
const planeMaterial = await this.context.materialFactory.createGroundTextureMaterial({
|
|
3586
|
+
url,
|
|
3587
|
+
opacity
|
|
3588
|
+
});
|
|
3589
|
+
const mesh = new Mesh5(planeGeometry, planeMaterial);
|
|
3590
|
+
this.mesh = mesh;
|
|
3591
|
+
this.mesh.position.set(center2[0], center2[1], 0);
|
|
3592
|
+
mesh.setRotationFromEuler(new Euler(angleX, angleY, angleZ));
|
|
3593
|
+
this.add(mesh);
|
|
3594
|
+
}
|
|
3595
|
+
dispose() {
|
|
3596
|
+
this.mesh?.geometry.dispose();
|
|
3597
|
+
this.clear();
|
|
3598
|
+
}
|
|
3599
|
+
};
|
|
3600
|
+
|
|
3514
3601
|
// src/operations/selection/box-selection.ts
|
|
3515
3602
|
import { Frustum } from "three";
|
|
3516
3603
|
var BoxSelection = class extends BaseSvg {
|
|
@@ -3871,9 +3958,9 @@ var HoverHelper = class extends EventDispatcher5 {
|
|
|
3871
3958
|
// src/factory/material.ts
|
|
3872
3959
|
import {
|
|
3873
3960
|
Color as Color4,
|
|
3874
|
-
LineBasicMaterial as
|
|
3961
|
+
LineBasicMaterial as LineBasicMaterial3,
|
|
3875
3962
|
MeshStandardMaterial as MeshStandardMaterial2,
|
|
3876
|
-
MeshBasicMaterial as
|
|
3963
|
+
MeshBasicMaterial as MeshBasicMaterial5,
|
|
3877
3964
|
ShaderMaterial as ShaderMaterial2,
|
|
3878
3965
|
DoubleSide as DoubleSide4
|
|
3879
3966
|
} from "three";
|
|
@@ -3897,7 +3984,7 @@ var MaterialFactory = class {
|
|
|
3897
3984
|
if (this.lineMaterialMap.has(key)) {
|
|
3898
3985
|
return this.lineMaterialMap.get(key);
|
|
3899
3986
|
}
|
|
3900
|
-
const lineMaterial = new
|
|
3987
|
+
const lineMaterial = new LineBasicMaterial3({
|
|
3901
3988
|
color: new Color4(color).convertLinearToSRGB(),
|
|
3902
3989
|
transparent: true,
|
|
3903
3990
|
opacity
|
|
@@ -3925,7 +4012,7 @@ var MaterialFactory = class {
|
|
|
3925
4012
|
if (this.meshBasicMaterialMap.has(key)) {
|
|
3926
4013
|
return this.meshBasicMaterialMap.get(key);
|
|
3927
4014
|
}
|
|
3928
|
-
const material = new
|
|
4015
|
+
const material = new MeshBasicMaterial5({
|
|
3929
4016
|
color,
|
|
3930
4017
|
transparent: true,
|
|
3931
4018
|
opacity,
|
|
@@ -4028,7 +4115,7 @@ var MaterialFactory = class {
|
|
|
4028
4115
|
return this.groundTextureMaterialMap.get(key);
|
|
4029
4116
|
}
|
|
4030
4117
|
const texture = await this.context.textureFactory.getTexture(url);
|
|
4031
|
-
const material = new
|
|
4118
|
+
const material = new MeshBasicMaterial5({
|
|
4032
4119
|
map: texture,
|
|
4033
4120
|
transparent: true,
|
|
4034
4121
|
opacity
|
|
@@ -4062,7 +4149,7 @@ var MaterialFactory = class {
|
|
|
4062
4149
|
};
|
|
4063
4150
|
|
|
4064
4151
|
// src/utils/camera-bound.ts
|
|
4065
|
-
import { Box3 as Box37, Vector3 as
|
|
4152
|
+
import { Box3 as Box37, Vector3 as Vector313 } from "three";
|
|
4066
4153
|
var CameraBound = class {
|
|
4067
4154
|
constructor(context) {
|
|
4068
4155
|
this.context = context;
|
|
@@ -4070,9 +4157,9 @@ var CameraBound = class {
|
|
|
4070
4157
|
this.changePrevCamera();
|
|
4071
4158
|
}
|
|
4072
4159
|
prevCamera = {
|
|
4073
|
-
position: new
|
|
4160
|
+
position: new Vector313(),
|
|
4074
4161
|
zoom: 1,
|
|
4075
|
-
target: new
|
|
4162
|
+
target: new Vector313()
|
|
4076
4163
|
};
|
|
4077
4164
|
enable = true;
|
|
4078
4165
|
setEnable(enable) {
|
|
@@ -4105,16 +4192,17 @@ var CameraBound = class {
|
|
|
4105
4192
|
this.context.removeEventListener("control-change", this.onCameraChange);
|
|
4106
4193
|
}
|
|
4107
4194
|
getCurFloorScreenPosition() {
|
|
4108
|
-
|
|
4195
|
+
const floors = this.context.scene.children.filter((el) => el instanceof Floor);
|
|
4196
|
+
if (!floors.length) {
|
|
4109
4197
|
return null;
|
|
4110
4198
|
}
|
|
4111
|
-
const box = new Box37().setFromObject(this.context.
|
|
4112
|
-
const { camera,
|
|
4199
|
+
const box = new Box37().setFromObject(this.context.scene);
|
|
4200
|
+
const { camera, clientSize: { width: w, height: h } } = this.context;
|
|
4113
4201
|
const { min, max } = box;
|
|
4114
4202
|
const lb = vector3ToDevice(min, camera, w, h);
|
|
4115
4203
|
const rt = vector3ToDevice(max, camera, w, h);
|
|
4116
|
-
const lt = vector3ToDevice(new
|
|
4117
|
-
const rb = vector3ToDevice(new
|
|
4204
|
+
const lt = vector3ToDevice(new Vector313(min.x, max.y, max.z), camera, w, h);
|
|
4205
|
+
const rb = vector3ToDevice(new Vector313(max.x, min.y, min.z), camera, w, h);
|
|
4118
4206
|
const left = Math.min(lb.x, rt.x, lt.x, rb.x);
|
|
4119
4207
|
const right = Math.max(lb.x, rt.x, lt.x, rb.x);
|
|
4120
4208
|
const top = Math.min(lb.y, rt.y, lt.y, rb.y);
|
|
@@ -4129,9 +4217,23 @@ var CameraBound = class {
|
|
|
4129
4217
|
checkDistanceToScreenEdge({ left, right, top, bottom }) {
|
|
4130
4218
|
const { width, height } = this.context.clientSize;
|
|
4131
4219
|
const [pt, pr, pb, pl] = this.context.config.cameraBound.padding;
|
|
4132
|
-
|
|
4220
|
+
const checkedRight = right >= pl;
|
|
4221
|
+
const checkedLeft = width - left >= pr;
|
|
4222
|
+
const checkedTop = height - top >= pb;
|
|
4223
|
+
const checkedBottom = bottom >= pt;
|
|
4224
|
+
return checkedRight && checkedLeft && checkedTop && checkedBottom;
|
|
4133
4225
|
}
|
|
4134
4226
|
onCameraChange = () => {
|
|
4227
|
+
const bound = this.getCurFloorScreenPosition();
|
|
4228
|
+
if (bound) {
|
|
4229
|
+
const { left, right, top, bottom } = bound;
|
|
4230
|
+
const isInBound = this.checkDistanceToScreenEdge({ left, right, top, bottom });
|
|
4231
|
+
if (isInBound) {
|
|
4232
|
+
this.changePrevCamera();
|
|
4233
|
+
} else {
|
|
4234
|
+
this.backToPrevCamera();
|
|
4235
|
+
}
|
|
4236
|
+
}
|
|
4135
4237
|
};
|
|
4136
4238
|
dispose() {
|
|
4137
4239
|
this.unRegistryEvent();
|
|
@@ -4230,7 +4332,7 @@ var Context = class extends EventDispatcher6 {
|
|
|
4230
4332
|
/**
|
|
4231
4333
|
* 获取两个点之间的像素数
|
|
4232
4334
|
*/
|
|
4233
|
-
getRatio(point1 = new
|
|
4335
|
+
getRatio(point1 = new Vector314(0, 0, 0), point22 = new Vector314(100, 0, 0)) {
|
|
4234
4336
|
const { clientWidth, clientHeight } = this.container;
|
|
4235
4337
|
const device1 = vector3ToDevice(point1, this.camera, clientWidth, clientHeight);
|
|
4236
4338
|
const device2 = vector3ToDevice(point22, this.camera, clientWidth, clientHeight);
|
|
@@ -4431,7 +4533,7 @@ var Context = class extends EventDispatcher6 {
|
|
|
4431
4533
|
);
|
|
4432
4534
|
}
|
|
4433
4535
|
getCameraLookAt() {
|
|
4434
|
-
return new
|
|
4536
|
+
return new Vector314().subVectors(this.control.target, this.camera.position);
|
|
4435
4537
|
}
|
|
4436
4538
|
/**
|
|
4437
4539
|
* 按照一个中心点设置相机的放大缩小
|
|
@@ -4486,10 +4588,10 @@ var Context = class extends EventDispatcher6 {
|
|
|
4486
4588
|
const boundingBox = new Box38().setFromObject(object);
|
|
4487
4589
|
this.setPolarAngle(polar, 0);
|
|
4488
4590
|
const { max, min } = boundingBox;
|
|
4489
|
-
const leftTop = new
|
|
4490
|
-
const rightTop = new
|
|
4491
|
-
const rightBottom = new
|
|
4492
|
-
const leftBottom = new
|
|
4591
|
+
const leftTop = new Vector314(min.x, max.y, max.z);
|
|
4592
|
+
const rightTop = new Vector314(max.x, max.y, max.z);
|
|
4593
|
+
const rightBottom = new Vector314(max.x, min.y, min.z);
|
|
4594
|
+
const leftBottom = new Vector314(min.x, min.y, min.z);
|
|
4493
4595
|
const leftTop2d = vector3ToDevice(leftTop, this.camera, width, height);
|
|
4494
4596
|
const rightTop2d = vector3ToDevice(rightTop, this.camera, width, height);
|
|
4495
4597
|
const leftBottom2d = vector3ToDevice(leftBottom, this.camera, width, height);
|
|
@@ -4504,7 +4606,7 @@ var Context = class extends EventDispatcher6 {
|
|
|
4504
4606
|
const xScale = (width - right - left) / size.x;
|
|
4505
4607
|
const yScale = (height - top - bottom) / size.y;
|
|
4506
4608
|
const scale = Math.min(xScale, yScale);
|
|
4507
|
-
const center2 = new
|
|
4609
|
+
const center2 = new Vector314((max.x + min.x) / 2, (max.y + min.y) / 2, (max.z + min.z) / 2);
|
|
4508
4610
|
return { zoom: scale * this.camera.zoom, center: center2 };
|
|
4509
4611
|
}
|
|
4510
4612
|
/**
|
|
@@ -4964,6 +5066,7 @@ var BMap = class extends EventDispatcher7 {
|
|
|
4964
5066
|
this.context.control.addEventListener("change", this.onControlChange);
|
|
4965
5067
|
this.onControlChange();
|
|
4966
5068
|
this.context.cameraBound.setEnable(true);
|
|
5069
|
+
this.context.cameraBound.changePrevCamera();
|
|
4967
5070
|
}
|
|
4968
5071
|
onControlChange = () => {
|
|
4969
5072
|
const {
|
|
@@ -5054,7 +5157,7 @@ var BMap = class extends EventDispatcher7 {
|
|
|
5054
5157
|
} = this.context;
|
|
5055
5158
|
const device = vector3ToDevice(position, camera, width, height);
|
|
5056
5159
|
const offsetX = device.x - width / 2;
|
|
5057
|
-
const v3 = new
|
|
5160
|
+
const v3 = new Vector315();
|
|
5058
5161
|
v3.setFromMatrixColumn(this.context.camera.matrix, 0);
|
|
5059
5162
|
v3.normalize();
|
|
5060
5163
|
v3.multiplyScalar(offsetX / this.context.camera.zoom);
|
|
@@ -5427,24 +5530,24 @@ function Worker2() {
|
|
|
5427
5530
|
|
|
5428
5531
|
// src/plugins/navigation/path.ts
|
|
5429
5532
|
import {
|
|
5430
|
-
Mesh as
|
|
5431
|
-
Object3D as
|
|
5533
|
+
Mesh as Mesh6,
|
|
5534
|
+
Object3D as Object3D13,
|
|
5432
5535
|
TextureLoader as TextureLoader2,
|
|
5433
5536
|
Color as Color7,
|
|
5434
5537
|
Vector2 as Vector27,
|
|
5435
|
-
Vector3 as
|
|
5538
|
+
Vector3 as Vector317,
|
|
5436
5539
|
NormalBlending,
|
|
5437
5540
|
RepeatWrapping
|
|
5438
5541
|
} from "three";
|
|
5439
5542
|
|
|
5440
5543
|
// src/external/meshLine.js
|
|
5441
5544
|
import {
|
|
5442
|
-
BufferGeometry as
|
|
5545
|
+
BufferGeometry as BufferGeometry3,
|
|
5443
5546
|
Matrix4,
|
|
5444
|
-
Vector3 as
|
|
5547
|
+
Vector3 as Vector316,
|
|
5445
5548
|
Ray as Ray2,
|
|
5446
5549
|
Sphere,
|
|
5447
|
-
LineSegments as
|
|
5550
|
+
LineSegments as LineSegments3,
|
|
5448
5551
|
BufferAttribute,
|
|
5449
5552
|
ShaderChunk,
|
|
5450
5553
|
ShaderMaterial as ShaderMaterial3,
|
|
@@ -5452,7 +5555,7 @@ import {
|
|
|
5452
5555
|
Color as Color6,
|
|
5453
5556
|
Vector2 as Vector26
|
|
5454
5557
|
} from "three";
|
|
5455
|
-
var MeshLine = class extends
|
|
5558
|
+
var MeshLine = class extends BufferGeometry3 {
|
|
5456
5559
|
constructor() {
|
|
5457
5560
|
super();
|
|
5458
5561
|
this.isMeshLine = true;
|
|
@@ -5521,7 +5624,7 @@ MeshLine.prototype.setPoints = function(points, wcb) {
|
|
|
5521
5624
|
this.widthCallback = wcb;
|
|
5522
5625
|
this.positions = [];
|
|
5523
5626
|
this.counters = [];
|
|
5524
|
-
if (points.length && points[0] instanceof
|
|
5627
|
+
if (points.length && points[0] instanceof Vector316) {
|
|
5525
5628
|
for (var j = 0; j < points.length; j++) {
|
|
5526
5629
|
var p = points[j];
|
|
5527
5630
|
var c = j / points.length;
|
|
@@ -5545,7 +5648,7 @@ function MeshLineRaycast(raycaster, intersects) {
|
|
|
5545
5648
|
var inverseMatrix = new Matrix4();
|
|
5546
5649
|
var ray = new Ray2();
|
|
5547
5650
|
var sphere = new Sphere();
|
|
5548
|
-
var interRay = new
|
|
5651
|
+
var interRay = new Vector316();
|
|
5549
5652
|
var geometry = this.geometry;
|
|
5550
5653
|
if (!geometry.boundingSphere) geometry.computeBoundingSphere();
|
|
5551
5654
|
sphere.copy(geometry.boundingSphere);
|
|
@@ -5555,10 +5658,10 @@ function MeshLineRaycast(raycaster, intersects) {
|
|
|
5555
5658
|
}
|
|
5556
5659
|
inverseMatrix.copy(this.matrixWorld).invert();
|
|
5557
5660
|
ray.copy(raycaster.ray).applyMatrix4(inverseMatrix);
|
|
5558
|
-
var vStart = new
|
|
5559
|
-
var vEnd = new
|
|
5560
|
-
var interSegment = new
|
|
5561
|
-
var step = this instanceof
|
|
5661
|
+
var vStart = new Vector316();
|
|
5662
|
+
var vEnd = new Vector316();
|
|
5663
|
+
var interSegment = new Vector316();
|
|
5664
|
+
var step = this instanceof LineSegments3 ? 2 : 1;
|
|
5562
5665
|
var index = geometry.index;
|
|
5563
5666
|
var attributes = geometry.attributes;
|
|
5564
5667
|
if (index !== null) {
|
|
@@ -5611,8 +5714,8 @@ MeshLine.prototype.getDistance = function(i) {
|
|
|
5611
5714
|
let maxLength = 0;
|
|
5612
5715
|
for (let k = 0; k < i; k++) {
|
|
5613
5716
|
const index = 6 * k;
|
|
5614
|
-
const p0 = new
|
|
5615
|
-
const p1 = new
|
|
5717
|
+
const p0 = new Vector316(this.positions[index], this.positions[index + 1], this.positions[index + 2]);
|
|
5718
|
+
const p1 = new Vector316(this.positions[index + 6], this.positions[index + 7], this.positions[index + 8]);
|
|
5616
5719
|
const distance = p0.distanceTo(p1);
|
|
5617
5720
|
maxLength += distance;
|
|
5618
5721
|
}
|
|
@@ -6075,7 +6178,7 @@ var defaultConfig2 = {
|
|
|
6075
6178
|
lineWidth: 8,
|
|
6076
6179
|
color: 16777215
|
|
6077
6180
|
};
|
|
6078
|
-
var Path2 = class extends
|
|
6181
|
+
var Path2 = class extends Object3D13 {
|
|
6079
6182
|
constructor(navigation, config) {
|
|
6080
6183
|
super();
|
|
6081
6184
|
this.navigation = navigation;
|
|
@@ -6124,7 +6227,7 @@ var Path2 = class extends Object3D12 {
|
|
|
6124
6227
|
}
|
|
6125
6228
|
} = this;
|
|
6126
6229
|
const screenPoints = points.map(
|
|
6127
|
-
([x, y]) => vector3ToDevice(new
|
|
6230
|
+
([x, y]) => vector3ToDevice(new Vector317(x, y, 0), camera, width, height)
|
|
6128
6231
|
).map(({ x, y }) => [x, y]);
|
|
6129
6232
|
const pointLength = getPathLength(screenPoints);
|
|
6130
6233
|
return pointLength / 32;
|
|
@@ -6180,7 +6283,7 @@ var Path2 = class extends Object3D12 {
|
|
|
6180
6283
|
blending: NormalBlending,
|
|
6181
6284
|
repeat: new Vector27(this.getRepeat(), 1)
|
|
6182
6285
|
});
|
|
6183
|
-
const mesh = this.mesh = new
|
|
6286
|
+
const mesh = this.mesh = new Mesh6(lineGeometry, material);
|
|
6184
6287
|
this.add(mesh);
|
|
6185
6288
|
return mesh;
|
|
6186
6289
|
}
|
|
@@ -6574,7 +6677,304 @@ var SplitLoad = class extends Plugin {
|
|
|
6574
6677
|
return Array.from(this.bmap.context.currentFloor.userData.graphicMap.values());
|
|
6575
6678
|
}
|
|
6576
6679
|
};
|
|
6680
|
+
|
|
6681
|
+
// src/plugins/mul-floors/mul-floors.ts
|
|
6682
|
+
import { Group as Group4 } from "three";
|
|
6683
|
+
var MulFloors = class extends Plugin {
|
|
6684
|
+
poiLayer;
|
|
6685
|
+
floors = [];
|
|
6686
|
+
group = new Group4();
|
|
6687
|
+
constructor(bmap) {
|
|
6688
|
+
super(bmap);
|
|
6689
|
+
this.poiLayer = new PoiLayer(bmap.context);
|
|
6690
|
+
}
|
|
6691
|
+
show(floors) {
|
|
6692
|
+
let height = floors[0].userData.height;
|
|
6693
|
+
floors.forEach((floor) => {
|
|
6694
|
+
floor.poiLayer.pois.forEach((poi) => {
|
|
6695
|
+
this.poiLayer.pushPoi(poi);
|
|
6696
|
+
});
|
|
6697
|
+
floor.poiLayer.pois.length = 0;
|
|
6698
|
+
floor.poiLayer.dispose();
|
|
6699
|
+
floor.position.z = height;
|
|
6700
|
+
height += floor.userData.height;
|
|
6701
|
+
});
|
|
6702
|
+
const { scene, currentFloor } = this.bmap.context;
|
|
6703
|
+
if (currentFloor) {
|
|
6704
|
+
scene.remove(currentFloor);
|
|
6705
|
+
currentFloor.dispose();
|
|
6706
|
+
}
|
|
6707
|
+
this.group.add(this.poiLayer, ...floors);
|
|
6708
|
+
scene.add(this.group);
|
|
6709
|
+
this.floors = floors;
|
|
6710
|
+
}
|
|
6711
|
+
hide() {
|
|
6712
|
+
const { scene } = this.bmap.context;
|
|
6713
|
+
scene.remove(this.group);
|
|
6714
|
+
this.poiLayer.clear(true);
|
|
6715
|
+
this.floors.forEach((floor) => {
|
|
6716
|
+
floor.dispose();
|
|
6717
|
+
});
|
|
6718
|
+
this.floors = [];
|
|
6719
|
+
this.group.clear();
|
|
6720
|
+
}
|
|
6721
|
+
fitCamera() {
|
|
6722
|
+
const { context, config, type } = this.bmap;
|
|
6723
|
+
context.cameraBound.setEnable(false);
|
|
6724
|
+
context.control.minZoom = 0;
|
|
6725
|
+
context.control.maxZoom = Infinity;
|
|
6726
|
+
context.camera.zoom = 1;
|
|
6727
|
+
context.setAzimuthalAngle(config.control.defaultAzimuthal, 0);
|
|
6728
|
+
context.setPolarAngle(config.control.defaultPolar, 0);
|
|
6729
|
+
context.fitCameraToObject(this.group, void 0, 0);
|
|
6730
|
+
const basicZoom = context.camera.zoom;
|
|
6731
|
+
context.control.minZoom = basicZoom;
|
|
6732
|
+
context.control.maxZoom = basicZoom * 25;
|
|
6733
|
+
if (type === "3d") {
|
|
6734
|
+
context.fitCameraToObject(this.group, config.defaultPadding, 0, false);
|
|
6735
|
+
}
|
|
6736
|
+
this.bmap.basicZoom = context.camera.zoom;
|
|
6737
|
+
context.control.addEventListener(
|
|
6738
|
+
"change",
|
|
6739
|
+
this.bmap.onControlChange.bind(this.bmap)
|
|
6740
|
+
);
|
|
6741
|
+
this.bmap.onControlChange();
|
|
6742
|
+
context.cameraBound.setEnable(true);
|
|
6743
|
+
}
|
|
6744
|
+
dispose() {
|
|
6745
|
+
this.poiLayer.dispose();
|
|
6746
|
+
this.floors.forEach((item) => item.dispose());
|
|
6747
|
+
this.floors = [];
|
|
6748
|
+
}
|
|
6749
|
+
};
|
|
6750
|
+
|
|
6751
|
+
// src/utils/index-db.ts
|
|
6752
|
+
var _db;
|
|
6753
|
+
function createDb(database = "aibee_map") {
|
|
6754
|
+
return new Promise((resolve, reject) => {
|
|
6755
|
+
if (_db) {
|
|
6756
|
+
return resolve(_db);
|
|
6757
|
+
}
|
|
6758
|
+
const request = indexedDB.open(database);
|
|
6759
|
+
request.onupgradeneeded = function(event) {
|
|
6760
|
+
_db = event.target.result;
|
|
6761
|
+
resolve(_db);
|
|
6762
|
+
};
|
|
6763
|
+
request.onsuccess = (event) => {
|
|
6764
|
+
_db = event.target.result;
|
|
6765
|
+
};
|
|
6766
|
+
request.onerror = (event) => {
|
|
6767
|
+
reject(event);
|
|
6768
|
+
};
|
|
6769
|
+
});
|
|
6770
|
+
}
|
|
6771
|
+
function createStore(storeName, db = _db) {
|
|
6772
|
+
if (!db) {
|
|
6773
|
+
return;
|
|
6774
|
+
}
|
|
6775
|
+
if (!db.objectStoreNames.contains(storeName)) {
|
|
6776
|
+
db.createObjectStore(storeName, { keyPath: "key" });
|
|
6777
|
+
}
|
|
6778
|
+
}
|
|
6779
|
+
|
|
6780
|
+
// src/loader/AibeeLoader/zstd.worker.ts
|
|
6781
|
+
function Worker3() {
|
|
6782
|
+
return inlineWorker('var L=Object.defineProperty;var k=(g,A,Q)=>A in g?L(g,A,{enumerable:!0,configurable:!0,writable:!0,value:Q}):g[A]=Q;var s=(g,A,Q)=>k(g,typeof A!="symbol"?A+"":A,Q);function a(g,A){return new Promise((Q,I)=>{let B=new XMLHttpRequest;B.open("GET",g,!0),Object.keys(A.headers||{}).forEach(C=>{B.setRequestHeader(C,A.headers[C])}),A.responseType&&(B.responseType=A.responseType),B.onload=()=>{if(B.status>=200&&B.status<300)if(A.responseType==="arraybuffer")Q(B.response);else try{let C=JSON.parse(B.responseText);Q(C)}catch(C){I(C)}else I(B.statusText)},B.onerror=()=>{I(B.statusText)},B.send()})}function F(g){return g.replace(/[A-Z]/g,A=>"_"+A.toLowerCase()).replace(/^_/,"")}var D=class g{constructor(){s(this,"keySet",new Set)}static createKey(){return Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15)}genUniqueKey(){let A=g.createKey();for(;this.keySet.has(A);)A=g.createKey();return A}removeKey(A){this.keySet.delete(A)}dispose(){this.keySet.clear()}};var H=new D;function h(g){let A={};for(let I in g)I.startsWith("on")&&(A[F(I.slice(2))]=g[I]);let Q=async({data:I})=>{if(A[I.type])try{let B=await A[I.type](I.data);self.postMessage({type:`${I.type}_result`,key:I.key,data:B})}catch(B){self.postMessage({type:`${I.type}_result`,key:I.key,error:B})}else self.postMessage({type:`${I.type}_result`,key:I.key,error:"no_event"})};return self.addEventListener("message",Q),()=>{self.removeEventListener("message",Q)}}var i,E,w,G={env:{emscripten_notify_memory_growth:function(g){w=new Uint8Array(E.exports.memory.buffer)}}},o=class{init(){return i||(typeof fetch!="undefined"?i=fetch("data:application/wasm;base64,"+y).then(A=>A.arrayBuffer()).then(A=>WebAssembly.instantiate(A,G)).then(this._init):i=WebAssembly.instantiate(Buffer.from(y,"base64"),G).then(this._init),i)}_init(A){E=A.instance,G.env.emscripten_notify_memory_growth(0)}decode(A,Q=0){if(!E)throw new Error("ZSTDDecoder: Await .init() before decoding.");let I=A.byteLength,B=E.exports.malloc(I);w.set(A,B),Q=Q||Number(E.exports.ZSTD_findDecompressedSize(B,I));let C=E.exports.malloc(Q),S=E.exports.ZSTD_decompress(C,Q,B,I),N=w.slice(C,C+S);return E.exports.free(B),E.exports.free(C),N}},y="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdBKGogACgCBBATQQAhBCAHQeAAaiEMIAdB5ABqIQoDQCAHQShqEARBAksgBCAXTnJFBEAgBygCQCAHKAI8QQN0aikCACIdQhCIp0H/AXEhCyAHKAJQIAcoAkxBA3RqKQIAIh5CEIinQf8BcSEJIAcoAkggBygCREEDdGopAgAiH0IgiKchCCAeQiCIISAgHUIgiKchAgJAIB9CEIinQf8BcSIDQQJPBEACQCAGRSADQRlJckUEQCAIIAdBKGogA0EgIAcoAixrIg0gDSADSxsiDRAFIAMgDWsiA3RqIQggB0EoahAEGiADRQ0BIAdBKGogAxAFIAhqIQgMAQsgB0EoaiADEAUgCGohCCAHQShqEAQaCyAHKQJUISEgByAINgJUIAcgITcDWAwBCwJAIANFBEAgAgRAIAcoAlQhCAwDCyAHKAJYIQgMAQsCQAJAIAdBKGpBARAFIAggAkVqaiIDQQNGBEAgBygCVEF/aiIDIANFaiEIDAELIANBAnQgB2ooAlQiCCAIRWohCCADQQFGDQELIAcgBygCWDYCXAsLIAcgBygCVDYCWCAHIAg2AlQLICCnIQMgCQRAIAdBKGogCRAFIANqIQMLIAkgC2pBFE8EQCAHQShqEAQaCyALBEAgB0EoaiALEAUgAmohAgsgB0EoahAEGiAHIAcoAmggAmoiCSADajYCaCAKIAwgCCAJSxsoAgAhDSAHIAdBKGogHUIYiKdB/wFxEAggHadB//8DcWo2AjwgByAHQShqIB5CGIinQf8BcRAIIB6nQf//A3FqNgJMIAdBKGoQBBogB0EoaiAfQhiIp0H/AXEQCCEOIAdB8ABqIARBBHRqIgsgCSANaiAIazYCDCALIAg2AgggCyADNgIEIAsgAjYCACAHIA4gH6dB//8DcWo2AkQgBEEBaiEEDAELCyAEIBdIDQEgEkFgaiEYIAdB4ABqIRogB0HkAGohGyABIQMDQCAHQShqEARBAksgBCAFTnJFBEAgBygCQCAHKAI8QQN0aikCACIdQhCIp0H/AXEhCyAHKAJQIAcoAkxBA3RqKQIAIh5CEIinQf8BcSEIIAcoAkggBygCREEDdGopAgAiH0IgiKchCSAeQiCIISAgHUIgiKchDAJAIB9CEIinQf8BcSICQQJPBEACQCAGRSACQRlJckUEQCAJIAdBKGogAkEgIAcoAixrIgogCiACSxsiChAFIAIgCmsiAnRqIQkgB0EoahAEGiACRQ0BIAdBKGogAhAFIAlqIQkMAQsgB0EoaiACEAUgCWohCSAHQShqEAQaCyAHKQJUISEgByAJNgJUIAcgITcDWAwBCwJAIAJFBEAgDARAIAcoAlQhCQwDCyAHKAJYIQkMAQsCQAJAIAdBKGpBARAFIAkgDEVqaiICQQNGBEAgBygCVEF/aiICIAJFaiEJDAELIAJBAnQgB2ooAlQiCSAJRWohCSACQQFGDQELIAcgBygCWDYCXAsLIAcgBygCVDYCWCAHIAk2AlQLICCnIRQgCARAIAdBKGogCBAFIBRqIRQLIAggC2pBFE8EQCAHQShqEAQaCyALBEAgB0EoaiALEAUgDGohDAsgB0EoahAEGiAHIAcoAmggDGoiGSAUajYCaCAbIBogCSAZSxsoAgAhHCAHIAdBKGogHUIYiKdB/wFxEAggHadB//8DcWo2AjwgByAHQShqIB5CGIinQf8BcRAIIB6nQf//A3FqNgJMIAdBKGoQBBogByAHQShqIB9CGIinQf8BcRAIIB+nQf//A3FqNgJEIAcgB0HwAGogBEEDcUEEdGoiDSkDCCIdNwPIASAHIA0pAwAiHjcDwAECQAJAAkAgBygCvAEiDiAepyICaiIWIBNLDQAgAyAHKALEASIKIAJqIgtqIBhLDQAgEiADayALQSBqTw0BCyAHIAcpA8gBNwMQIAcgBykDwAE3AwggAyASIAdBCGogB0G8AWogEyAPIBUgERAeIQsMAQsgAiADaiEIIAMgDhAHIAJBEU8EQCADQRBqIQIDQCACIA5BEGoiDhAHIAJBEGoiAiAISQ0ACwsgCCAdpyIOayECIAcgFjYCvAEgDiAIIA9rSwRAIA4gCCAVa0sEQEFsIQsMAgsgESACIA9rIgJqIhYgCmogEU0EQCAIIBYgChAPGgwCCyAIIBZBACACaxAPIQggByACIApqIgo2AsQBIAggAmshCCAPIQILIA5BEE8EQCAIIApqIQoDQCAIIAIQByACQRBqIQIgCEEQaiIIIApJDQALDAELAkAgDkEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgDkECdCIKQcAeaigCAGoiAhAXIAIgCkHgHmooAgBrIQIgBygCxAEhCgwBCyAIIAIQDAsgCkEJSQ0AIAggCmohCiAIQQhqIgggAkEIaiICa0EPTARAA0AgCCACEAwgAkEIaiECIAhBCGoiCCAKSQ0ADAIACwALA0AgCCACEAcgAkEQaiECIAhBEGoiCCAKSQ0ACwsgCxADBEAgCyEQDAQFIA0gDDYCACANIBkgHGogCWs2AgwgDSAJNgIIIA0gFDYCBCAEQQFqIQQgAyALaiEDDAILAAsLIAQgBUgNASAEIBdrIQtBACEEA0AgCyAFSARAIAcgB0HwAGogC0EDcUEEdGoiAikDCCIdNwPIASAHIAIpAwAiHjcDwAECQAJAAkAgBygCvAEiDCAepyICaiIKIBNLDQAgAyAHKALEASIJIAJqIhBqIBhLDQAgEiADayAQQSBqTw0BCyAHIAcpA8gBNwMgIAcgBykDwAE3AxggAyASIAdBGGogB0G8AWogEyAPIBUgERAeIRAMAQsgAiADaiEIIAMgDBAHIAJBEU8EQCADQRBqIQIDQCACIAxBEGoiDBAHIAJBEGoiAiAISQ0ACwsgCCAdpyIGayECIAcgCjYCvAEgBiAIIA9rSwRAIAYgCCAVa0sEQEFsIRAMAgsgESACIA9rIgJqIgwgCWogEU0EQCAIIAwgCRAPGgwCCyAIIAxBACACaxAPIQggByACIAlqIgk2AsQBIAggAmshCCAPIQILIAZBEE8EQCAIIAlqIQYDQCAIIAIQByACQRBqIQIgCEEQaiIIIAZJDQALDAELAkAgBkEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgBkECdCIGQcAeaigCAGoiAhAXIAIgBkHgHmooAgBrIQIgBygCxAEhCQwBCyAIIAIQDAsgCUEJSQ0AIAggCWohBiAIQQhqIgggAkEIaiICa0EPTARAA0AgCCACEAwgAkEIaiECIAhBCGoiCCAGSQ0ADAIACwALA0AgCCACEAcgAkEQaiECIAhBEGoiCCAGSQ0ACwsgEBADDQMgC0EBaiELIAMgEGohAwwBCwsDQCAEQQNHBEAgACAEQQJ0IgJqQazQAWogAiAHaigCVDYCACAEQQFqIQQMAQsLIAcoArwBIQgLQbp/IRAgEyAIayIAIBIgA2tLDQAgAwR/IAMgCCAAEAsgAGoFQQALIAFrIRALIAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY0AAQMyIFEAMiBg0AIANBHzYCfCADIANB/ABqIANB+ABqIAQgBCAFaiAGGyIEIAEgAmoiAiAEaxAVIgUQAw0AIAMoAnwiBkEfSw0AIAMoAngiB0EJTw0AIABBiCBqIAMgBkGAC0GADCAHEBggA0E0NgJ8IAMgA0H8AGogA0H4AGogBCAFaiIEIAIgBGsQFSIFEAMNACADKAJ8IgZBNEsNACADKAJ4IgdBCk8NACAAQZAwaiADIAZBgA1B4A4gBxAYIANBIzYCfCADIANB/ABqIANB+ABqIAQgBWoiBCACIARrEBUiBRADDQAgAygCfCIGQSNLDQAgAygCeCIHQQpPDQAgACADIAZBwBBB0BEgBxAYIAQgBWoiBEEMaiIFIAJLDQAgAiAFayEFQQAhAgNAIAJBA0cEQCAEKAAAIgZBf2ogBU8NAiAAIAJBAnRqQZzQAWogBjYCACACQQFqIQIgBEEEaiEEDAELCyAEIAFrIQgLIANBgAFqJAAgCAtGAQN/IABBCGohAyAAKAIEIQJBACEAA0AgACACdkUEQCABIAMgAEEDdGotAAJBFktqIQEgAEEBaiEADAELCyABQQggAmt0C4YDAQV/Qbh/IQcCQCADRQ0AIAItAAAiBEUEQCABQQA2AgBBAUG4fyADQQFGGw8LAn8gAkEBaiIFIARBGHRBGHUiBkF/Sg0AGiAGQX9GBEAgA0EDSA0CIAUvAABBgP4BaiEEIAJBA2oMAQsgA0ECSA0BIAItAAEgBEEIdHJBgIB+aiEEIAJBAmoLIQUgASAENgIAIAVBAWoiASACIANqIgNLDQBBbCEHIABBEGogACAFLQAAIgVBBnZBI0EJIAEgAyABa0HAEEHQEUHwEiAAKAKM4QEgACgCnOIBIAQQHyIGEAMiCA0AIABBmCBqIABBCGogBUEEdkEDcUEfQQggASABIAZqIAgbIgEgAyABa0GAC0GADEGAFyAAKAKM4QEgACgCnOIBIAQQHyIGEAMiCA0AIABBoDBqIABBBGogBUECdkEDcUE0QQkgASABIAZqIAgbIgEgAyABa0GADUHgDkGQGSAAKAKM4QEgACgCnOIBIAQQHyIAEAMNACAAIAFqIAJrIQcLIAcLrQMBCn8jAEGABGsiCCQAAn9BUiACQf8BSw0AGkFUIANBDEsNABogAkEBaiELIABBBGohCUGAgAQgA0F/anRBEHUhCkEAIQJBASEEQQEgA3QiB0F/aiIMIQUDQCACIAtGRQRAAkAgASACQQF0Ig1qLwEAIgZB//8DRgRAIAkgBUECdGogAjoAAiAFQX9qIQVBASEGDAELIARBACAKIAZBEHRBEHVKGyEECyAIIA1qIAY7AQAgAkEBaiECDAELCyAAIAQ7AQIgACADOwEAIAdBA3YgB0EBdmpBA2ohBkEAIQRBACECA0AgBCALRkUEQCABIARBAXRqLgEAIQpBACEAA0AgACAKTkUEQCAJIAJBAnRqIAQ6AAIDQCACIAZqIAxxIgIgBUsNAAsgAEEBaiEADAELCyAEQQFqIQQMAQsLQX8gAg0AGkEAIQIDfyACIAdGBH9BAAUgCCAJIAJBAnRqIgAtAAJBAXRqIgEgAS8BACIBQQFqOwEAIAAgAyABEBRrIgU6AAMgACABIAVB/wFxdCAHazsBACACQQFqIQIMAQsLCyEFIAhBgARqJAAgBQvjBgEIf0FsIQcCQCACQQNJDQACQAJAAkACQCABLQAAIgNBA3EiCUEBaw4DAwEAAgsgACgCiOEBDQBBYg8LIAJBBUkNAkEDIQYgASgAACEFAn8CQAJAIANBAnZBA3EiCEF+aiIEQQFNBEAgBEEBaw0BDAILIAVBDnZB/wdxIQQgBUEEdkH/B3EhAyAIRQwCCyAFQRJ2IQRBBCEGIAVBBHZB//8AcSEDQQAMAQsgBUEEdkH//w9xIgNBgIAISw0DIAEtAARBCnQgBUEWdnIhBEEFIQZBAAshBSAEIAZqIgogAksNAgJAIANBgQZJDQAgACgCnOIBRQ0AQQAhAgNAIAJBg4ABSw0BIAJBQGshAgwAAAsACwJ/IAlBA0YEQCABIAZqIQEgAEHw4gFqIQIgACgCDCEGIAUEQCACIAMgASAEIAYQXwwCCyACIAMgASAEIAYQXQwBCyAAQbjQAWohAiABIAZqIQEgAEHw4gFqIQYgAEGo0ABqIQggBQRAIAggBiADIAEgBCACEF4MAQsgCCAGIAMgASAEIAIQXAsQAw0CIAAgAzYCgOIBIABBATYCiOEBIAAgAEHw4gFqNgLw4QEgCUECRgRAIAAgAEGo0ABqNgIMCyAAIANqIgBBiOMBakIANwAAIABBgOMBakIANwAAIABB+OIBakIANwAAIABB8OIBakIANwAAIAoPCwJ/AkACQAJAIANBAnZBA3FBf2oiBEECSw0AIARBAWsOAgACAQtBASEEIANBA3YMAgtBAiEEIAEvAABBBHYMAQtBAyEEIAEQIUEEdgsiAyAEaiIFQSBqIAJLBEAgBSACSw0CIABB8OIBaiABIARqIAMQCyEBIAAgAzYCgOIBIAAgATYC8OEBIAEgA2oiAEIANwAYIABCADcAECAAQgA3AAggAEIANwAAIAUPCyAAIAM2AoDiASAAIAEgBGo2AvDhASAFDwsCfwJAAkACQCADQQJ2QQNxQX9qIgRBAksNACAEQQFrDgIAAgELQQEhByADQQN2DAILQQIhByABLwAAQQR2DAELIAJBBEkgARAhIgJBj4CAAUtyDQFBAyEHIAJBBHYLIQIgAEHw4gFqIAEgB2otAAAgAkEgahAQIQEgACACNgKA4gEgACABNgLw4QEgB0EBaiEHCyAHC0sAIABC+erQ0OfJoeThADcDICAAQgA3AxggAELP1tO+0ser2UI3AxAgAELW64Lu6v2J9eAANwMIIABCADcDACAAQShqQQBBKBAQGgviAgICfwV+IABBKGoiASAAKAJIaiECAn4gACkDACIDQiBaBEAgACkDECIEQgeJIAApAwgiBUIBiXwgACkDGCIGQgyJfCAAKQMgIgdCEol8IAUQGSAEEBkgBhAZIAcQGQwBCyAAKQMYQsXP2bLx5brqJ3wLIAN8IQMDQCABQQhqIgAgAk0EQEIAIAEpAAAQCSADhUIbiUKHla+vmLbem55/fkLj3MqV/M7y9YV/fCEDIAAhAQwBCwsCQCABQQRqIgAgAksEQCABIQAMAQsgASgAAK1Ch5Wvr5i23puef34gA4VCF4lCz9bTvtLHq9lCfkL5893xmfaZqxZ8IQMLA0AgACACSQRAIAAxAABCxc/ZsvHluuonfiADhUILiUKHla+vmLbem55/fiEDIABBAWohAAwBCwsgA0IhiCADhULP1tO+0ser2UJ+IgNCHYggA4VC+fPd8Zn2masWfiIDQiCIIAOFC+8CAgJ/BH4gACAAKQMAIAKtfDcDAAJAAkAgACgCSCIDIAJqIgRBH00EQCABRQ0BIAAgA2pBKGogASACECAgACgCSCACaiEEDAELIAEgAmohAgJ/IAMEQCAAQShqIgQgA2ogAUEgIANrECAgACAAKQMIIAQpAAAQCTcDCCAAIAApAxAgACkAMBAJNwMQIAAgACkDGCAAKQA4EAk3AxggACAAKQMgIABBQGspAAAQCTcDICAAKAJIIQMgAEEANgJIIAEgA2tBIGohAQsgAUEgaiACTQsEQCACQWBqIQMgACkDICEFIAApAxghBiAAKQMQIQcgACkDCCEIA0AgCCABKQAAEAkhCCAHIAEpAAgQCSEHIAYgASkAEBAJIQYgBSABKQAYEAkhBSABQSBqIgEgA00NAAsgACAFNwMgIAAgBjcDGCAAIAc3AxAgACAINwMICyABIAJPDQEgAEEoaiABIAIgAWsiBBAgCyAAIAQ2AkgLCy8BAX8gAEUEQEG2f0EAIAMbDwtBun8hBCADIAFNBH8gACACIAMQEBogAwVBun8LCy8BAX8gAEUEQEG2f0EAIAMbDwtBun8hBCADIAFNBH8gACACIAMQCxogAwVBun8LC6gCAQZ/IwBBEGsiByQAIABB2OABaikDAEKAgIAQViEIQbh/IQUCQCAEQf//B0sNACAAIAMgBBBCIgUQAyIGDQAgACgCnOIBIQkgACAHQQxqIAMgAyAFaiAGGyIKIARBACAFIAYbayIGEEAiAxADBEAgAyEFDAELIAcoAgwhBCABRQRAQbp/IQUgBEEASg0BCyAGIANrIQUgAyAKaiEDAkAgCQRAIABBADYCnOIBDAELAkACQAJAIARBBUgNACAAQdjgAWopAwBCgICACFgNAAwBCyAAQQA2ApziAQwBCyAAKAIIED8hBiAAQQA2ApziASAGQRRPDQELIAAgASACIAMgBSAEIAgQOSEFDAELIAAgASACIAMgBSAEIAgQOiEFCyAHQRBqJAAgBQtnACAAQdDgAWogASACIAAoAuzhARAuIgEQAwRAIAEPC0G4fyECAkAgAQ0AIABB7OABaigCACIBBEBBYCECIAAoApjiASABRw0BC0EAIQIgAEHw4AFqKAIARQ0AIABBkOEBahBDCyACCycBAX8QVyIERQRAQUAPCyAEIAAgASACIAMgBBBLEE8hACAEEFYgAAs/AQF/AkACQAJAIAAoAqDiAUEBaiIBQQJLDQAgAUEBaw4CAAECCyAAEDBBAA8LIABBADYCoOIBCyAAKAKU4gELvAMCB38BfiMAQRBrIgkkAEG4fyEGAkAgBCgCACIIQQVBCSAAKALs4QEiBRtJDQAgAygCACIHQQFBBSAFGyAFEC8iBRADBEAgBSEGDAELIAggBUEDakkNACAAIAcgBRBJIgYQAw0AIAEgAmohCiAAQZDhAWohCyAIIAVrIQIgBSAHaiEHIAEhBQNAIAcgAiAJECwiBhADDQEgAkF9aiICIAZJBEBBuH8hBgwCCyAJKAIAIghBAksEQEFsIQYMAgsgB0EDaiEHAn8CQAJAAkAgCEEBaw4CAgABCyAAIAUgCiAFayAHIAYQSAwCCyAFIAogBWsgByAGEEcMAQsgBSAKIAVrIActAAAgCSgCCBBGCyIIEAMEQCAIIQYMAgsgACgC8OABBEAgCyAFIAgQRQsgAiAGayECIAYgB2ohByAFIAhqIQUgCSgCBEUNAAsgACkD0OABIgxCf1IEQEFsIQYgDCAFIAFrrFINAQsgACgC8OABBEBBaiEGIAJBBEkNASALEEQhDCAHKAAAIAynRw0BIAdBBGohByACQXxqIQILIAMgBzYCACAEIAI2AgAgBSABayEGCyAJQRBqJAAgBgsuACAAECsCf0EAQQAQAw0AGiABRSACRXJFBEBBYiAAIAEgAhA9EAMNARoLQQALCzcAIAEEQCAAIAAoAsTgASABKAIEIAEoAghqRzYCnOIBCyAAECtBABADIAFFckUEQCAAIAEQWwsL0QIBB38jAEEQayIGJAAgBiAENgIIIAYgAzYCDCAFBEAgBSgCBCEKIAUoAgghCQsgASEIAkACQANAIAAoAuzhARAWIQsCQANAIAQgC0kNASADKAAAQXBxQdDUtMIBRgRAIAMgBBAiIgcQAw0EIAQgB2shBCADIAdqIQMMAQsLIAYgAzYCDCAGIAQ2AggCQCAFBEAgACAFEE5BACEHQQAQA0UNAQwFCyAAIAogCRBNIgcQAw0ECyAAIAgQUCAMQQFHQQAgACAIIAIgBkEMaiAGQQhqEEwiByIDa0EAIAMQAxtBCkdyRQRAQbh/IQcMBAsgBxADDQMgAiAHayECIAcgCGohCEEBIQwgBigCDCEDIAYoAgghBAwBCwsgBiADNgIMIAYgBDYCCEG4fyEHIAQNASAIIAFrIQcMAQsgBiADNgIMIAYgBDYCCAsgBkEQaiQAIAcLRgECfyABIAAoArjgASICRwRAIAAgAjYCxOABIAAgATYCuOABIAAoArzgASEDIAAgATYCvOABIAAgASADIAJrajYCwOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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";var R=new o,J=R.init();h({async onDecode(g){try{let A=await a(g,{responseType:"arraybuffer"}),Q=new Uint8Array(A);await J;let I=R.decode(Q),B=new TextDecoder().decode(I);return JSON.parse(B)}catch(A){return console.error(A),"error"}}});\n');
|
|
6783
|
+
}
|
|
6784
|
+
|
|
6785
|
+
// src/loader/AibeeLoader/utils.ts
|
|
6786
|
+
function transformGraphicData(data, center2, baseIndex = 0) {
|
|
6787
|
+
data.forEach((item) => {
|
|
6788
|
+
item.geometry.coords = JSON.parse(
|
|
6789
|
+
JSON.stringify(item.geometry.cds)
|
|
6790
|
+
);
|
|
6791
|
+
if (item.geometry.type === "polygon") {
|
|
6792
|
+
item.geometry.coords.map((cds) => {
|
|
6793
|
+
if (Array.isArray(cds)) {
|
|
6794
|
+
cds.forEach((coord) => {
|
|
6795
|
+
coord[0] -= center2[0];
|
|
6796
|
+
coord[1] -= center2[1];
|
|
6797
|
+
});
|
|
6798
|
+
}
|
|
6799
|
+
});
|
|
6800
|
+
} else {
|
|
6801
|
+
item.geometry.coords = translatePosToCenter(item.geometry.cds, center2);
|
|
6802
|
+
}
|
|
6803
|
+
});
|
|
6804
|
+
for (let i = 0; i < data.length; i++) {
|
|
6805
|
+
const item = data[i];
|
|
6806
|
+
item.deltaHeight = 1e-5 * (baseIndex + i + 1);
|
|
6807
|
+
}
|
|
6808
|
+
}
|
|
6809
|
+
function translatePosToCenter(cds, center2) {
|
|
6810
|
+
return [cds[0] - center2[0], cds[1] - center2[1]];
|
|
6811
|
+
}
|
|
6812
|
+
|
|
6813
|
+
// src/loader/AibeeLoader/index.ts
|
|
6814
|
+
var defaultAibeeLoaderOption = {
|
|
6815
|
+
loadRoadNetwork: false
|
|
6816
|
+
};
|
|
6817
|
+
var VersionStoreName = "version";
|
|
6818
|
+
var MapDataStoreName = "map_data";
|
|
6819
|
+
var RoadNetworkDataStoreName = "road_network_data";
|
|
6820
|
+
var AibeeLoader = class {
|
|
6821
|
+
constructor(bmap) {
|
|
6822
|
+
this.bmap = bmap;
|
|
6823
|
+
this.initDb();
|
|
6824
|
+
}
|
|
6825
|
+
placeId = null;
|
|
6826
|
+
canUseZstd = localStorage.getItem("canUseZstd") !== "0";
|
|
6827
|
+
// 是不是可以使用zstd 默认是可以的 如果解压缩失败了就要标记本机不可以使用,之后不在尝试
|
|
6828
|
+
worker = Worker3();
|
|
6829
|
+
async initDb() {
|
|
6830
|
+
try {
|
|
6831
|
+
await createDb();
|
|
6832
|
+
createStore(VersionStoreName);
|
|
6833
|
+
createStore(MapDataStoreName);
|
|
6834
|
+
createStore(RoadNetworkDataStoreName);
|
|
6835
|
+
} catch (e) {
|
|
6836
|
+
console.log("[\u6253\u5F00indexDb\u9519\u8BEF]", e);
|
|
6837
|
+
}
|
|
6838
|
+
}
|
|
6839
|
+
async load(placeId) {
|
|
6840
|
+
this.clear();
|
|
6841
|
+
this.placeId = placeId;
|
|
6842
|
+
}
|
|
6843
|
+
async getFloorData(floor) {
|
|
6844
|
+
if (this.canUseZstd) {
|
|
6845
|
+
const res = await triggerWorker(this.worker, "decode", "");
|
|
6846
|
+
if (res === "error") {
|
|
6847
|
+
this.setCanUseZstd(false);
|
|
6848
|
+
return this.getFloorData(floor);
|
|
6849
|
+
}
|
|
6850
|
+
} else {
|
|
6851
|
+
}
|
|
6852
|
+
return new Floor(this.bmap.context);
|
|
6853
|
+
}
|
|
6854
|
+
async getRoadNetworkData() {
|
|
6855
|
+
}
|
|
6856
|
+
// 空闲时间请求其他数据
|
|
6857
|
+
async getOtherDataByFreeTime() {
|
|
6858
|
+
}
|
|
6859
|
+
// 获取多楼层数据
|
|
6860
|
+
async getMulFloorsData(floor) {
|
|
6861
|
+
return [];
|
|
6862
|
+
}
|
|
6863
|
+
async getDataByUrl(url) {
|
|
6864
|
+
const data = await fetch(url).then((res) => res.json());
|
|
6865
|
+
return this.getDataByJson(data);
|
|
6866
|
+
}
|
|
6867
|
+
getDataByJson(data) {
|
|
6868
|
+
const floor = new Floor(this.bmap.context);
|
|
6869
|
+
let center2 = [0, 0];
|
|
6870
|
+
data.layers.forEach((layer) => {
|
|
6871
|
+
switch (layer.l_type) {
|
|
6872
|
+
case "range":
|
|
6873
|
+
const data2 = layer.elements[0];
|
|
6874
|
+
center2 = [data2.center_x, data2.center_y];
|
|
6875
|
+
break;
|
|
6876
|
+
case "graph":
|
|
6877
|
+
const graphics = [];
|
|
6878
|
+
const graphicMap = /* @__PURE__ */ new Map();
|
|
6879
|
+
transformGraphicData(layer.elements, center2);
|
|
6880
|
+
layer.elements.forEach((options) => {
|
|
6881
|
+
const graphic = floor.addGraphic(options);
|
|
6882
|
+
graphics.push(graphic);
|
|
6883
|
+
graphicMap.set(options.id, graphic);
|
|
6884
|
+
});
|
|
6885
|
+
floor.userData.graphics = graphics;
|
|
6886
|
+
floor.userData.graphicMap = graphicMap;
|
|
6887
|
+
break;
|
|
6888
|
+
case "ground":
|
|
6889
|
+
transformGraphicData(layer.elements, center2);
|
|
6890
|
+
const grounds = layer.elements.map((options) => new Graphic(this.bmap.context, options));
|
|
6891
|
+
floor.addGrounds(grounds);
|
|
6892
|
+
break;
|
|
6893
|
+
case "wall":
|
|
6894
|
+
transformGraphicData(layer.elements, center2);
|
|
6895
|
+
const wallGroup = layer.elements.reduce((obj, options) => {
|
|
6896
|
+
const { fillColor, fillOpacity, strokeColor, strokeOpacity } = options;
|
|
6897
|
+
const key = `${fillColor}-${fillOpacity}-${strokeColor}-${strokeOpacity}`;
|
|
6898
|
+
if (obj[key]) {
|
|
6899
|
+
obj[key].push(options);
|
|
6900
|
+
} else {
|
|
6901
|
+
obj[key] = [options];
|
|
6902
|
+
}
|
|
6903
|
+
return obj;
|
|
6904
|
+
}, {});
|
|
6905
|
+
Object.values(wallGroup).forEach((optionArray) => {
|
|
6906
|
+
const wall = new Wall(this.bmap.context, optionArray);
|
|
6907
|
+
floor.wallLayer.add(wall);
|
|
6908
|
+
});
|
|
6909
|
+
break;
|
|
6910
|
+
case "lane":
|
|
6911
|
+
break;
|
|
6912
|
+
case "texture2d":
|
|
6913
|
+
case "texture3d":
|
|
6914
|
+
layer.elements.forEach((options) => {
|
|
6915
|
+
options.center = translatePosToCenter(options.center, center2);
|
|
6916
|
+
const texture = new GroundTexture(this.bmap.context, options);
|
|
6917
|
+
floor.textureLayer.add(texture);
|
|
6918
|
+
});
|
|
6919
|
+
break;
|
|
6920
|
+
case "glb":
|
|
6921
|
+
break;
|
|
6922
|
+
case "store":
|
|
6923
|
+
layer.elements.map((options) => {
|
|
6924
|
+
const pos = translatePosToCenter(options.geometry.cds, center2);
|
|
6925
|
+
floor.poiLayer.createPoi({
|
|
6926
|
+
icon: options.poi_info.icon,
|
|
6927
|
+
texts: [{ text: options.store_name || options.poi_info.name }],
|
|
6928
|
+
position: { x: pos[0], y: pos[1], z: options.airHeight }
|
|
6929
|
+
});
|
|
6930
|
+
});
|
|
6931
|
+
break;
|
|
6932
|
+
case "facility":
|
|
6933
|
+
layer.elements.map((options) => {
|
|
6934
|
+
const pos = translatePosToCenter(options.geometry.cds, center2);
|
|
6935
|
+
floor.poiLayer.createPoi({
|
|
6936
|
+
icon: options.poi_info.icon,
|
|
6937
|
+
texts: [{ text: options.store_name || options.poi_info.name }],
|
|
6938
|
+
position: { x: pos[0], y: pos[1], z: options.airHeight }
|
|
6939
|
+
});
|
|
6940
|
+
});
|
|
6941
|
+
break;
|
|
6942
|
+
case "parkingSpace":
|
|
6943
|
+
transformGraphicData(layer.elements, center2);
|
|
6944
|
+
let parkingSpacesGraphics = [];
|
|
6945
|
+
let parkingSpacesGraphicMap = /* @__PURE__ */ new Map();
|
|
6946
|
+
layer.elements.forEach((options) => {
|
|
6947
|
+
const graphic = floor.addGraphic(options);
|
|
6948
|
+
parkingSpacesGraphics.push(graphic);
|
|
6949
|
+
parkingSpacesGraphicMap.set(options.id, graphic);
|
|
6950
|
+
const pos = translatePosToCenter([options.center_x, options.center_y], center2);
|
|
6951
|
+
floor.poiLayer.createPoi({
|
|
6952
|
+
texts: [{ text: options.poi_info.name }],
|
|
6953
|
+
position: { x: pos[0], y: pos[1], z: options.airHeight }
|
|
6954
|
+
});
|
|
6955
|
+
});
|
|
6956
|
+
floor.userData.parkingSpaces = parkingSpacesGraphics;
|
|
6957
|
+
floor.userData.parkingSpacesGraphicMap = parkingSpacesGraphicMap;
|
|
6958
|
+
break;
|
|
6959
|
+
}
|
|
6960
|
+
});
|
|
6961
|
+
floor.userData.center = center2;
|
|
6962
|
+
floor.userData.height = data.floorHeight;
|
|
6963
|
+
return floor;
|
|
6964
|
+
}
|
|
6965
|
+
clear() {
|
|
6966
|
+
this.placeId = null;
|
|
6967
|
+
}
|
|
6968
|
+
setCanUseZstd(bool) {
|
|
6969
|
+
this.canUseZstd = bool;
|
|
6970
|
+
localStorage.setItem("canUseZstd", "0");
|
|
6971
|
+
}
|
|
6972
|
+
dispose() {
|
|
6973
|
+
this.clear();
|
|
6974
|
+
}
|
|
6975
|
+
};
|
|
6577
6976
|
export {
|
|
6977
|
+
AibeeLoader,
|
|
6578
6978
|
BMap,
|
|
6579
6979
|
BaseSvg,
|
|
6580
6980
|
Context,
|
|
@@ -6583,12 +6983,14 @@ export {
|
|
|
6583
6983
|
Floor,
|
|
6584
6984
|
Graphic,
|
|
6585
6985
|
GraphicLayer,
|
|
6986
|
+
GroundTexture,
|
|
6586
6987
|
HeatmapElement,
|
|
6587
6988
|
HooksName,
|
|
6588
6989
|
HoverHelper,
|
|
6589
6990
|
Layer,
|
|
6590
6991
|
MapTypePolar,
|
|
6591
6992
|
Model,
|
|
6993
|
+
MulFloors,
|
|
6592
6994
|
Navigation,
|
|
6593
6995
|
Overlay,
|
|
6594
6996
|
PathDirection,
|
|
@@ -6603,6 +7005,7 @@ export {
|
|
|
6603
7005
|
SvgPolygon,
|
|
6604
7006
|
Timer,
|
|
6605
7007
|
UniqueKey,
|
|
7008
|
+
Wall,
|
|
6606
7009
|
addAlphaToHexColor,
|
|
6607
7010
|
calc_angle,
|
|
6608
7011
|
calc_direction,
|
|
@@ -6616,7 +7019,9 @@ export {
|
|
|
6616
7019
|
createSvg,
|
|
6617
7020
|
createSvgElement,
|
|
6618
7021
|
darkenColor,
|
|
7022
|
+
defaultAibeeLoaderOption,
|
|
6619
7023
|
defaultConfig,
|
|
7024
|
+
defaultOptions4 as defaultOptions,
|
|
6620
7025
|
dispose,
|
|
6621
7026
|
disposeLoader,
|
|
6622
7027
|
distancePointToSegment,
|
|
@@ -6660,4 +7065,3 @@ export {
|
|
|
6660
7065
|
vector3ToDevice,
|
|
6661
7066
|
xhrGet
|
|
6662
7067
|
};
|
|
6663
|
-
//# sourceMappingURL=bmap.esm.js.map
|