@aibee/crc-bmap 0.7.2 → 0.8.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/lib/bmap.esm.js CHANGED
@@ -1657,7 +1657,7 @@ var require_typed_function = __commonJS({
1657
1657
  });
1658
1658
 
1659
1659
  // src/bmap.ts
1660
- import { EventDispatcher as EventDispatcher9, Vector3 as Vector323 } from "three";
1660
+ import { EventDispatcher as EventDispatcher10, Vector3 as Vector323 } from "three";
1661
1661
 
1662
1662
  // src/utils/timer.ts
1663
1663
  var Timer = class {
@@ -3697,9 +3697,45 @@ var TweenUtil = class {
3697
3697
  }
3698
3698
  };
3699
3699
 
3700
+ // src/utils/click-helper.ts
3701
+ import { EventDispatcher } from "three";
3702
+ var ClickHelper = class extends EventDispatcher {
3703
+ constructor(ctn) {
3704
+ super();
3705
+ this.ctn = ctn;
3706
+ this.registryEvent();
3707
+ }
3708
+ point;
3709
+ registryEvent() {
3710
+ this.ctn.addEventListener("pointerdown", this._pointerDown);
3711
+ this.ctn.addEventListener("pointerup", this._pointerUp);
3712
+ }
3713
+ unRegistryEvent() {
3714
+ this.ctn.removeEventListener("pointerdown", this._pointerDown);
3715
+ this.ctn.removeEventListener("pointerup", this._pointerUp);
3716
+ }
3717
+ _pointerDown = (e2) => {
3718
+ this.point = { x: e2.offsetX, y: e2.offsetY };
3719
+ };
3720
+ _pointerUp = (e2) => {
3721
+ if (!this.point) {
3722
+ return;
3723
+ }
3724
+ const { offsetX, offsetY } = e2;
3725
+ const { x, y } = this.point;
3726
+ if (Math.hypot(x - offsetX + (y - offsetY)) > 3) {
3727
+ return;
3728
+ }
3729
+ this.dispatchEvent({ type: "click", e: e2 });
3730
+ };
3731
+ dispose() {
3732
+ this.unRegistryEvent();
3733
+ }
3734
+ };
3735
+
3700
3736
  // src/context/context.ts
3701
3737
  import {
3702
- EventDispatcher as EventDispatcher8,
3738
+ EventDispatcher as EventDispatcher9,
3703
3739
  Box2 as Box23,
3704
3740
  Vector3 as Vector322,
3705
3741
  Vector2 as Vector212,
@@ -3710,7 +3746,7 @@ import {
3710
3746
  } from "three";
3711
3747
 
3712
3748
  // src/operations/selection/selection.ts
3713
- import { EventDispatcher as EventDispatcher4 } from "three";
3749
+ import { EventDispatcher as EventDispatcher5 } from "three";
3714
3750
 
3715
3751
  // src/elements/graphic.ts
3716
3752
  import {
@@ -4512,17 +4548,17 @@ var Shadow = class extends Object3D2 {
4512
4548
  };
4513
4549
 
4514
4550
  // src/elements/poi.ts
4515
- import { EventDispatcher as EventDispatcher2, Vector3 as Vector37 } from "three";
4551
+ import { EventDispatcher as EventDispatcher3, Vector3 as Vector37 } from "three";
4516
4552
 
4517
4553
  // src/elements/overlay.ts
4518
- import { Box3 as Box32, EventDispatcher, Vector3 as Vector36 } from "three";
4554
+ import { Box3 as Box32, EventDispatcher as EventDispatcher2, Vector3 as Vector36 } from "three";
4519
4555
  import { debounce } from "lodash";
4520
4556
  var defaultOptions = {
4521
4557
  autoUpdate: true,
4522
4558
  appendToBody: false,
4523
4559
  autoChangePlacement: false
4524
4560
  };
4525
- var Overlay = class extends EventDispatcher {
4561
+ var Overlay = class extends EventDispatcher2 {
4526
4562
  constructor(context, options = {}) {
4527
4563
  super();
4528
4564
  this.context = context;
@@ -4825,7 +4861,7 @@ var defaultOptions2 = {
4825
4861
  built_in: false,
4826
4862
  box_only_icon: false
4827
4863
  };
4828
- var Poi = class extends EventDispatcher2 {
4864
+ var Poi = class extends EventDispatcher3 {
4829
4865
  constructor(context, options) {
4830
4866
  super();
4831
4867
  this.context = context;
@@ -5741,8 +5777,8 @@ var Floor = class extends Object3D8 {
5741
5777
  };
5742
5778
 
5743
5779
  // src/elements/base-svg.ts
5744
- import { EventDispatcher as EventDispatcher3, Vector3 as Vector312 } from "three";
5745
- var BaseSvg = class extends EventDispatcher3 {
5780
+ import { EventDispatcher as EventDispatcher4, Vector3 as Vector312 } from "three";
5781
+ var BaseSvg = class extends EventDispatcher4 {
5746
5782
  constructor(context) {
5747
5783
  super();
5748
5784
  this.context = context;
@@ -7019,8 +7055,10 @@ var Poi2 = class extends Object3D14 {
7019
7055
  }
7020
7056
  }
7021
7057
  dispose() {
7058
+ this.clear();
7022
7059
  this.unRegistryEvent();
7023
7060
  this.spriteText = void 0;
7061
+ this.spriteIcon = void 0;
7024
7062
  }
7025
7063
  };
7026
7064
 
@@ -7243,7 +7281,7 @@ var BoxSelection = class extends BaseSvg {
7243
7281
  };
7244
7282
 
7245
7283
  // src/operations/selection/selection.ts
7246
- var Selection = class extends EventDispatcher4 {
7284
+ var Selection = class extends EventDispatcher5 {
7247
7285
  constructor(context) {
7248
7286
  super();
7249
7287
  this.context = context;
@@ -7363,8 +7401,8 @@ var Selection = class extends EventDispatcher4 {
7363
7401
  };
7364
7402
 
7365
7403
  // src/operations/hover/hover-helper.ts
7366
- import { EventDispatcher as EventDispatcher5, Vector2 as Vector210 } from "three";
7367
- var HoverHelper = class extends EventDispatcher5 {
7404
+ import { EventDispatcher as EventDispatcher6, Vector2 as Vector210 } from "three";
7405
+ var HoverHelper = class extends EventDispatcher6 {
7368
7406
  constructor(context) {
7369
7407
  super();
7370
7408
  this.context = context;
@@ -7576,7 +7614,7 @@ import { MOUSE as MOUSE2, TOUCH as TOUCH2 } from "three";
7576
7614
 
7577
7615
  // node_modules/.pnpm/three@0.157.0/node_modules/three/examples/jsm/controls/OrbitControls.js
7578
7616
  import {
7579
- EventDispatcher as EventDispatcher6,
7617
+ EventDispatcher as EventDispatcher7,
7580
7618
  MOUSE,
7581
7619
  Quaternion,
7582
7620
  Spherical,
@@ -7593,7 +7631,7 @@ var _endEvent = { type: "end" };
7593
7631
  var _ray = new Ray2();
7594
7632
  var _plane = new Plane();
7595
7633
  var TILT_LIMIT = Math.cos(70 * MathUtils.DEG2RAD);
7596
- var OrbitControls = class extends EventDispatcher6 {
7634
+ var OrbitControls = class extends EventDispatcher7 {
7597
7635
  constructor(object, domElement) {
7598
7636
  super();
7599
7637
  this.object = object;
@@ -8511,12 +8549,12 @@ var Control = class extends MapControls {
8511
8549
 
8512
8550
  // src/context/renderer.ts
8513
8551
  import {
8514
- EventDispatcher as EventDispatcher7,
8552
+ EventDispatcher as EventDispatcher8,
8515
8553
  PCFSoftShadowMap,
8516
8554
  WebGLRenderer
8517
8555
  } from "three";
8518
8556
  var Renderer = class extends WebGLRenderer {
8519
- event = new EventDispatcher7();
8557
+ event = new EventDispatcher8();
8520
8558
  scene;
8521
8559
  camera;
8522
8560
  enable = true;
@@ -8595,7 +8633,7 @@ var ContextCamera = class extends OrthographicCamera2 {
8595
8633
  };
8596
8634
 
8597
8635
  // src/context/context.ts
8598
- var Context = class extends EventDispatcher8 {
8636
+ var Context = class extends EventDispatcher9 {
8599
8637
  constructor(container, config4) {
8600
8638
  super();
8601
8639
  this.container = container;
@@ -8975,7 +9013,7 @@ var MapTypePolar = /* @__PURE__ */ ((MapTypePolar2) => {
8975
9013
  MapTypePolar2[MapTypePolar2["D3"] = 1.1] = "D3";
8976
9014
  return MapTypePolar2;
8977
9015
  })(MapTypePolar || {});
8978
- var BMap = class extends EventDispatcher9 {
9016
+ var BMap = class extends EventDispatcher10 {
8979
9017
  constructor(container, config4 = {}) {
8980
9018
  super();
8981
9019
  this.container = container;
@@ -9410,8 +9448,8 @@ var BMap = class extends EventDispatcher9 {
9410
9448
  };
9411
9449
 
9412
9450
  // src/plugins/base.ts
9413
- import { EventDispatcher as EventDispatcher10 } from "three";
9414
- var Plugin = class extends EventDispatcher10 {
9451
+ import { EventDispatcher as EventDispatcher11 } from "three";
9452
+ var Plugin = class extends EventDispatcher11 {
9415
9453
  bmap;
9416
9454
  constructor(bmap) {
9417
9455
  super();
@@ -10320,7 +10358,7 @@ import { Tween as Tween4, Easing } from "@tweenjs/tween.js";
10320
10358
  import { Vector3 as Vector326 } from "three";
10321
10359
 
10322
10360
  // src/plugins/navigation/position-navigation.ts
10323
- import { EventDispatcher as EventDispatcher11 } from "three";
10361
+ import { EventDispatcher as EventDispatcher12 } from "three";
10324
10362
  import { Tween as Tween3 } from "@tweenjs/tween.js";
10325
10363
  import { throttle } from "lodash";
10326
10364
  var defaultConfig3 = {
@@ -10329,7 +10367,7 @@ var defaultConfig3 = {
10329
10367
  directionEmitThreshold: 5,
10330
10368
  simulationSpeed: 1
10331
10369
  };
10332
- var PositionNavigation = class extends EventDispatcher11 {
10370
+ var PositionNavigation = class extends EventDispatcher12 {
10333
10371
  constructor(navigation, options) {
10334
10372
  super();
10335
10373
  this.navigation = navigation;
@@ -10595,8 +10633,8 @@ var PositionNavigation = class extends EventDispatcher11 {
10595
10633
  };
10596
10634
 
10597
10635
  // src/utils/taskQueue.ts
10598
- import { EventDispatcher as EventDispatcher12 } from "three";
10599
- var TaskQueue = class extends EventDispatcher12 {
10636
+ import { EventDispatcher as EventDispatcher13 } from "three";
10637
+ var TaskQueue = class extends EventDispatcher13 {
10600
10638
  // 任务队列
10601
10639
  _task = [];
10602
10640
  // 是否开始执行任务
@@ -11202,14 +11240,30 @@ var Navigation = class extends Plugin {
11202
11240
 
11203
11241
  // src/plugins/mul-floors/mul-floors.ts
11204
11242
  import { Group as Group4 } from "three";
11243
+ import { Box3 as Box310 } from "three157";
11205
11244
  var MulFloors = class extends Plugin {
11206
11245
  poiLayer;
11207
11246
  floors = [];
11208
11247
  group = new Group4();
11248
+ showStatus = false;
11209
11249
  constructor(bmap) {
11210
11250
  super(bmap);
11211
11251
  this.group.name = "mul-floor-group";
11212
11252
  this.poiLayer = new PoiLayer2(bmap.context);
11253
+ this.poiLayer.changeParkingSpaceVisibleByZoom = () => {
11254
+ const box = new Box310().setFromObject(this.group);
11255
+ const { clientSize: { width, height } } = this.bmap.context;
11256
+ const { max: max2, min: min2 } = box;
11257
+ const baseScale = Math.min(width / (max2.x - min2.x), height / (max2.y - min2.y));
11258
+ const zoom = baseScale * (max2.x - min2.x) / 45;
11259
+ this.poiLayer.pois.filter((poi) => poi.userData.type === "parkingSpace").map((poi) => {
11260
+ const visible = this.bmap.context.camera.zoom >= zoom;
11261
+ poi.visible = visible;
11262
+ if (!visible) {
11263
+ poi.parentSetVisible(visible);
11264
+ }
11265
+ });
11266
+ };
11213
11267
  }
11214
11268
  show(floors) {
11215
11269
  let height = floors[0].userData.height;
@@ -11234,6 +11288,7 @@ var MulFloors = class extends Plugin {
11234
11288
  this.floors = floors;
11235
11289
  this.fitCamera();
11236
11290
  this.bmap.context.cameraBound.updateBox();
11291
+ this.showStatus = true;
11237
11292
  }
11238
11293
  hide() {
11239
11294
  const { scene } = this.bmap.context;
@@ -11244,6 +11299,7 @@ var MulFloors = class extends Plugin {
11244
11299
  });
11245
11300
  this.floors = [];
11246
11301
  this.group.clear();
11302
+ this.showStatus = false;
11247
11303
  }
11248
11304
  fitCamera() {
11249
11305
  const { context, config: config4, type } = this.bmap;
@@ -11276,7 +11332,7 @@ var MulFloors = class extends Plugin {
11276
11332
  };
11277
11333
 
11278
11334
  // src/plugins/nav-path/nav-path.ts
11279
- import { EventDispatcher as EventDispatcher13 } from "three";
11335
+ import { EventDispatcher as EventDispatcher14 } from "three";
11280
11336
 
11281
11337
  // inline-worker:__inline-worker
11282
11338
  function inlineWorker(scriptText) {
@@ -11293,7 +11349,7 @@ function Worker2() {
11293
11349
  }
11294
11350
 
11295
11351
  // src/plugins/nav-path/nav-path.ts
11296
- var NavPath = class extends EventDispatcher13 {
11352
+ var NavPath = class extends EventDispatcher14 {
11297
11353
  worker = Worker2();
11298
11354
  initRoadStatus = false;
11299
11355
  constructor() {
@@ -11343,7 +11399,7 @@ var NavPath = class extends EventDispatcher13 {
11343
11399
  };
11344
11400
 
11345
11401
  // src/plugins/cr-nav-path/cr-nav-path.ts
11346
- import { EventDispatcher as EventDispatcher14 } from "three";
11402
+ import { EventDispatcher as EventDispatcher15 } from "three";
11347
11403
 
11348
11404
  // src/plugins/cr-nav-path/cr-path.worker.ts
11349
11405
  function Worker3() {
@@ -11351,7 +11407,7 @@ function Worker3() {
11351
11407
  }
11352
11408
 
11353
11409
  // src/plugins/cr-nav-path/cr-nav-path.ts
11354
- var CrNavPath = class extends EventDispatcher14 {
11410
+ var CrNavPath = class extends EventDispatcher15 {
11355
11411
  worker = Worker3();
11356
11412
  initRoadStatus = false;
11357
11413
  constructor() {
@@ -11689,12 +11745,12 @@ var BMapSelect = class extends Plugin {
11689
11745
 
11690
11746
  // src/plugins/pdr-position/sensor.ts
11691
11747
  import { cloneDeep as cloneDeep4, isNil, throttle as throttle2 } from "lodash";
11692
- import { EventDispatcher as EventDispatcher15 } from "three";
11748
+ import { EventDispatcher as EventDispatcher16 } from "three";
11693
11749
  var defaultSensorOptions = {
11694
11750
  time: 1e3,
11695
11751
  elements: ["compass" /* COMPASS */, "deviceMotion" /* DEVICE_MOTION */, "acceleration" /* ACCELERATION */, "gps" /* GPS */]
11696
11752
  };
11697
- var Sensor = class extends EventDispatcher15 {
11753
+ var Sensor = class extends EventDispatcher16 {
11698
11754
  options;
11699
11755
  gpsTimer = null;
11700
11756
  data = [];
@@ -11826,7 +11882,7 @@ var Sensor = class extends EventDispatcher15 {
11826
11882
  };
11827
11883
 
11828
11884
  // src/plugins/pdr-position/position.ts
11829
- import { EventDispatcher as EventDispatcher16 } from "three";
11885
+ import { EventDispatcher as EventDispatcher17 } from "three";
11830
11886
 
11831
11887
  // src/plugins/pdr-position/utils.ts
11832
11888
  function gaussLikelihood(avg, std) {
@@ -23637,7 +23693,7 @@ var PositioningSystem = class {
23637
23693
  };
23638
23694
 
23639
23695
  // src/plugins/pdr-position/position.ts
23640
- var PdrPosition = class extends EventDispatcher16 {
23696
+ var PdrPosition = class extends EventDispatcher17 {
23641
23697
  sensor;
23642
23698
  pdr;
23643
23699
  _pause = false;
@@ -24128,6 +24184,73 @@ var MulFloorNavigation = class extends Plugin {
24128
24184
  }
24129
24185
  };
24130
24186
 
24187
+ // src/plugins/mul-floor-select/mul-floor-select.ts
24188
+ import { EventDispatcher as EventDispatcher18, Raycaster as Raycaster5, Vector2 as Vector216 } from "three";
24189
+ var MulFloorSelect = class extends EventDispatcher18 {
24190
+ constructor(bmap, mulFloors) {
24191
+ super();
24192
+ this.bmap = bmap;
24193
+ this.mulFloors = mulFloors;
24194
+ this.clickHelper = new ClickHelper(this.bmap.context.container);
24195
+ this.registryEvent();
24196
+ }
24197
+ clickHelper;
24198
+ registryEvent() {
24199
+ this.clickHelper.addEventListener("click", this._click);
24200
+ }
24201
+ unRegistryEvent() {
24202
+ this.clickHelper.removeEventListener("click", this._click);
24203
+ }
24204
+ _click = ({ e: e2 }) => {
24205
+ if (!this.mulFloors.showStatus) {
24206
+ return;
24207
+ }
24208
+ const point3 = new Vector216();
24209
+ const { offsetX: x, offsetY: y } = e2;
24210
+ const { clientSize } = this.bmap.context;
24211
+ point3.x = x / clientSize.width * 2 - 1;
24212
+ point3.y = y / clientSize.height * -2 + 1;
24213
+ const raycaster = new Raycaster5();
24214
+ raycaster.setFromCamera(point3, this.bmap.context.camera);
24215
+ raycaster.ray.origin.sub(raycaster.ray.direction.clone().multiplyScalar(1e4));
24216
+ const pois = this.mulFloors.poiLayer.pois;
24217
+ const object = pois.map((item) => {
24218
+ if (!item.canSelect) {
24219
+ return null;
24220
+ }
24221
+ const arr = raycaster.intersectObjects(item.children, true);
24222
+ if (arr.length) {
24223
+ return arr[0];
24224
+ } else {
24225
+ return null;
24226
+ }
24227
+ }).reduce((obj, item) => {
24228
+ if (!item) {
24229
+ return obj;
24230
+ }
24231
+ if (!obj) {
24232
+ return item;
24233
+ }
24234
+ if (item.distance < obj.distance) {
24235
+ return item;
24236
+ } else {
24237
+ return obj;
24238
+ }
24239
+ }, null);
24240
+ let poi = object?.object;
24241
+ if (object && object.object.isSprite) {
24242
+ poi = object.object.parent;
24243
+ }
24244
+ if (poi && poi instanceof Poi2) {
24245
+ this.dispatchEvent({ "type": "select", pois: [poi] });
24246
+ }
24247
+ };
24248
+ dispose() {
24249
+ this.unRegistryEvent();
24250
+ this.clickHelper.dispose();
24251
+ }
24252
+ };
24253
+
24131
24254
  // src/loader/CrLoader/api/floor.ts
24132
24255
  async function loadBuildingGround({ brand, project }, config4) {
24133
24256
  const {
@@ -24878,6 +25001,7 @@ export {
24878
25001
  BMap,
24879
25002
  BMapSelect,
24880
25003
  BaseSvg,
25004
+ ClickHelper,
24881
25005
  Context,
24882
25006
  CrLoader,
24883
25007
  CrNavPath,
@@ -24897,6 +25021,7 @@ export {
24897
25021
  MergeGraphic,
24898
25022
  Model,
24899
25023
  MulFloorNavigation,
25024
+ MulFloorSelect,
24900
25025
  MulFloors,
24901
25026
  NavPath,
24902
25027
  Navigation,