@aibee/crc-bmap 0.0.45 → 0.0.47

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
@@ -112,7 +112,6 @@ import {
112
112
  Scene,
113
113
  WebGLRenderer,
114
114
  OrthographicCamera,
115
- HemisphereLight,
116
115
  Shape,
117
116
  PCFSoftShadowMap,
118
117
  Group,
@@ -146,12 +145,7 @@ function initCamera(width, height) {
146
145
  }
147
146
  function initLight() {
148
147
  const lights = new Group();
149
- const hemisphereLight = new HemisphereLight(16777215, 16777215, 2);
150
- hemisphereLight.intensity = 1;
151
- hemisphereLight.position.set(0, 0, 10);
152
- hemisphereLight.up.set(0, 0, 1);
153
- lights.add(hemisphereLight);
154
- const ambientLight = new AmbientLight(16777215, 1);
148
+ const ambientLight = new AmbientLight(16777215, 2.6);
155
149
  lights.add(ambientLight);
156
150
  return lights;
157
151
  }
@@ -176,7 +170,7 @@ function initDirectionalLight(color = 16777215, intensity = 1) {
176
170
  directionalLight.castShadow = true;
177
171
  directionalLight.shadow.radius = 8;
178
172
  directionalLight.shadow.bias = -1e-3;
179
- directionalLight.shadow.mapSize.set(128, 128);
173
+ directionalLight.shadow.mapSize.set(256, 256);
180
174
  directionalLight.shadow.camera.left = -200;
181
175
  directionalLight.shadow.camera.right = 200;
182
176
  directionalLight.shadow.camera.top = 200;
@@ -401,7 +395,6 @@ import {
401
395
  Mesh,
402
396
  Color as Color2,
403
397
  Box3,
404
- EdgesGeometry,
405
398
  Vector3
406
399
  } from "three";
407
400
  import { merge } from "lodash";
@@ -428,7 +421,7 @@ var defaultOptions = {
428
421
  strokeOpacity: 1,
429
422
  // 描边透明度
430
423
  strokeWidth: 1,
431
- // 描边宽度
424
+ // 描边宽度
432
425
  doors: [],
433
426
  // 门配置
434
427
  locked: false,
@@ -560,11 +553,42 @@ var Graphic = class extends Object3D {
560
553
  initMesh() {
561
554
  return new Mesh(this.geometry, this.material);
562
555
  }
556
+ getBorderPoints() {
557
+ const points = [];
558
+ const height = this.options.height;
559
+ const { cds, curveIndex } = this.options.geometry;
560
+ for (let j = 0; j < cds.length; j++) {
561
+ const curCds = cds[j];
562
+ for (let i = 0; i < curCds.length; i++) {
563
+ const cur = curCds[i];
564
+ const next = i + 1 === curCds.length ? curCds[0] : curCds[i + 1];
565
+ points.push(cur[0], cur[1], 0);
566
+ points.push(next[0], next[1], 0);
567
+ points.push(cur[0], cur[1], height);
568
+ points.push(next[0], next[1], height);
569
+ if (j > 0) {
570
+ points.push(cur[0], cur[1], 0);
571
+ points.push(cur[0], cur[1], height);
572
+ } else {
573
+ if (curveIndex.length) {
574
+ if (curveIndex.includes(i)) {
575
+ points.push(cur[0], cur[1], 0);
576
+ points.push(cur[0], cur[1], height);
577
+ }
578
+ } else {
579
+ points.push(cur[0], cur[1], 0);
580
+ points.push(cur[0], cur[1], height);
581
+ }
582
+ }
583
+ }
584
+ }
585
+ return points;
586
+ }
563
587
  createBorder() {
564
588
  const material = this.initLineMaterial();
565
- const geometry = new EdgesGeometry(this.geometry);
589
+ const points = this.getBorderPoints();
566
590
  const lineGeometry = new LineSegmentsGeometry();
567
- lineGeometry.fromEdgesGeometry(geometry);
591
+ lineGeometry.setPositions(points);
568
592
  const line = new LineSegments2(lineGeometry, material);
569
593
  line.position.z = this.options.airHeight;
570
594
  return line;
@@ -603,13 +627,13 @@ var Shadow = class extends Object3D2 {
603
627
  super();
604
628
  __publicField(this, "directionalLight");
605
629
  __publicField(this, "plane");
606
- __publicField(this, "basicOpacity", 0.15);
630
+ __publicField(this, "basicOpacity", 0.07);
607
631
  this.directionalLight = this.initLight();
608
632
  this.initPlane();
609
633
  }
610
634
  // 创建光源
611
635
  initLight() {
612
- const directionalLight = initDirectionalLight(16777215, 1);
636
+ const directionalLight = initDirectionalLight(16777215, 0.5);
613
637
  directionalLight.position.set(0, 0, 100);
614
638
  this.add(directionalLight);
615
639
  return directionalLight;
@@ -745,7 +769,7 @@ var Overlay = class extends EventDispatcher {
745
769
 
746
770
  // src/elements/poi.ts
747
771
  var defaultOptions2 = {
748
- text: "",
772
+ texts: [{ text: "" }],
749
773
  level: 1,
750
774
  collision_enable: true,
751
775
  opacity: 1,
@@ -784,7 +808,7 @@ var Poi = class extends Object3D4 {
784
808
  this.resetSize();
785
809
  }
786
810
  });
787
- this.addEventListener("change-text", ({ value }) => {
811
+ this.addEventListener("change-texts", ({ value }) => {
788
812
  this.overlay.div.removeChild(this.textDiv);
789
813
  this.overlay.div.appendChild(this.initText());
790
814
  this.resetSize();
@@ -827,7 +851,8 @@ var Poi = class extends Object3D4 {
827
851
  if (this.options.icon) {
828
852
  div.appendChild(this.initIcon());
829
853
  }
830
- div.style.fontSize = `12px`;
854
+ div.style.fontSize = `14px`;
855
+ div.style.textShadow = `#fff 1px 0 0, #fff 0 1px 0, #fff -1px 0 0, #fff 0 -1px 0`;
831
856
  div.style.display = `flex`;
832
857
  div.style.flexDirection = `column`;
833
858
  div.style.justifyContent = `center`;
@@ -844,18 +869,27 @@ var Poi = class extends Object3D4 {
844
869
  initText() {
845
870
  const textDiv = document.createElement("div");
846
871
  textDiv.appendChild(this.createTextFragment());
847
- textDiv.style.background = "rgba(255, 255, 255, .7)";
848
- textDiv.style.padding = "2px";
849
- textDiv.style.borderRadius = "4px";
872
+ if (this.options.texts.length > 1) {
873
+ textDiv.style.background = "rgba(255, 255, 255, .7)";
874
+ textDiv.style.padding = "2px 4px";
875
+ textDiv.style.borderRadius = "4px";
876
+ textDiv.style.fontSize = "12px";
877
+ textDiv.style.lineHeight = "16px";
878
+ }
850
879
  this.textDiv = textDiv;
851
880
  return textDiv;
852
881
  }
853
882
  createTextFragment() {
854
883
  const f = document.createDocumentFragment();
855
- this.options.text.split("\r\n").forEach((item) => {
884
+ this.options.texts.forEach((item) => {
856
885
  const div = document.createElement("div");
857
886
  div.style.whiteSpace = "nowrap";
858
- div.textContent = item;
887
+ if (item.styles) {
888
+ for (let [key, value] of Object.entries(item.styles)) {
889
+ div.style[key] = value;
890
+ }
891
+ }
892
+ div.textContent = item.text;
859
893
  f.appendChild(div);
860
894
  });
861
895
  return f;
@@ -1095,7 +1129,9 @@ var PoiLayer = class extends Layer {
1095
1129
  return false;
1096
1130
  });
1097
1131
  item.setVisible(!valid);
1098
- range.push({ left, right, top, bottom });
1132
+ if (!valid) {
1133
+ range.push({ left, right, top, bottom });
1134
+ }
1099
1135
  });
1100
1136
  }
1101
1137
  registryEvent() {
@@ -1232,7 +1268,7 @@ var Floor = class extends Object3D7 {
1232
1268
  addGrounds(grounds) {
1233
1269
  grounds.forEach((ground) => {
1234
1270
  if (!this.grounds.has(ground)) {
1235
- ground.options.height += ground.options.zIndex / 1e5;
1271
+ ground.options.height += ground.options.zIndex / 1e4;
1236
1272
  this.grounds.add(ground);
1237
1273
  this.groundUpper.add(ground);
1238
1274
  }
@@ -1259,7 +1295,7 @@ var Floor = class extends Object3D7 {
1259
1295
  this.add(this.shadow);
1260
1296
  }
1261
1297
  addGraphic(graphicOptions) {
1262
- graphicOptions.height += (graphicOptions.height || 0) / 1e5;
1298
+ graphicOptions.height += this.graphicLayer.graphicMap.size * 1e-5;
1263
1299
  return this.graphicLayer.createGraphic(graphicOptions);
1264
1300
  }
1265
1301
  addPoi(poiOptions) {
@@ -2243,9 +2279,11 @@ var Context = class extends EventDispatcher5 {
2243
2279
  target: this.control.target.clone()
2244
2280
  };
2245
2281
  if (!duration) {
2246
- this.camera.position.copy(start.target.clone().sub(lookAtVector));
2247
- this.control.target.copy(start.target);
2248
- this.camera.zoom = start.zoom;
2282
+ this.camera.position.copy(center2.clone().sub(lookAtVector));
2283
+ this.control.target.copy(center2);
2284
+ this.camera.zoom = zoom;
2285
+ this.control.update();
2286
+ return;
2249
2287
  }
2250
2288
  return timeoutPromise(
2251
2289
  new Promise((resolve) => {
@@ -2538,7 +2576,7 @@ var BMap = class extends EventDispatcher6 {
2538
2576
  }
2539
2577
  const grounds = data.filter((item) => item.info.group === "ground");
2540
2578
  grounds.forEach((item) => {
2541
- item.info.fillColor = "#F5F7F9";
2579
+ item.info.fillColor = "#F2F6FC";
2542
2580
  item.info.fillOpacity = 1;
2543
2581
  item.info.strokeOpacity = 0;
2544
2582
  item.info.height = 5;
@@ -2546,9 +2584,6 @@ var BMap = class extends EventDispatcher6 {
2546
2584
  const groundGraphics = grounds.map((ground) => new Graphic(this.context, ground.info));
2547
2585
  curFloor.addGrounds(groundGraphics);
2548
2586
  const graphicData = data.filter((item) => item.info.group !== "ground");
2549
- graphicData.forEach((item, index) => {
2550
- item.info.height = 5;
2551
- });
2552
2587
  const legacyToGraphicMap = /* @__PURE__ */ new Map();
2553
2588
  const graphics = graphicData.map((item) => {
2554
2589
  const graphic = curFloor.addGraphic(item.info);
@@ -2572,6 +2607,7 @@ var BMap = class extends EventDispatcher6 {
2572
2607
  this.context.switchFloor(createdFloor.curFloor);
2573
2608
  this.context.control.minZoom = 0;
2574
2609
  this.context.control.maxZoom = Infinity;
2610
+ this.context.camera.zoom = 1;
2575
2611
  this.context.setAzimuthalAngle(0, 0);
2576
2612
  this.context.fitCameraToGround(void 0, 0);
2577
2613
  this.basicZoom = this.context.camera.zoom;
@@ -2831,6 +2867,8 @@ var BMap = class extends EventDispatcher6 {
2831
2867
  }
2832
2868
  dispose() {
2833
2869
  this.context.dispose();
2870
+ this.floorDataMap.clear();
2871
+ this.buildingGroundMap.clear();
2834
2872
  clearTextTexture();
2835
2873
  clearCanvas();
2836
2874
  this.unRegistryEvent();