@aibee/crc-bmap 0.12.52 → 0.13.1

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.
@@ -1,5 +1,5 @@
1
1
  export declare const ParkingTypeIconMap: Record<string, string>;
2
- export declare const ManGlb = "https://robot-vr-public.cdn.bcebos.com/navigation_images/91ff33881f8b45acea4501fc6ff2fe9a.glb";
2
+ export declare const ManGlb = "https://robot-vr-public.bj.bcebos.com/v1/static_resource/free_3d_placeholder_locator_businessman_sign.glb";
3
3
  export declare const Arrow = "https://robot-vr-public.cdn.bcebos.com/navigation_images/b03b83729f7483a55793696a866e64db.png";
4
4
  export declare const DracoDecoderJs = "https://robot-vr-public.cdn.bcebos.com/navigation_images/69b56a1d86b226ea41399f572eccc9ce.js";
5
5
  export declare const DracoDecoderWasm = "https://robot-vr-public.cdn.bcebos.com/navigation_images/31d6fb9b3962cd0ecb3135c26f52fe41.wasm";
@@ -0,0 +1,55 @@
1
+ import { Context } from "./context";
2
+ import { Poi2 } from "../elements";
3
+ export declare class CollisionSystem {
4
+ context: Context;
5
+ objects: Poi2[];
6
+ needsUpdate: boolean;
7
+ poiEvents: WeakMap<Poi2, any>;
8
+ constructor(context: Context);
9
+ registryEvent(): void;
10
+ unRegistryEvent(): void;
11
+ changePoiLevelOrCollisionEnable(poi: Poi2): void;
12
+ addObjectEvent(poi: Poi2): void;
13
+ removeObjectEvent(poi: Poi2): void;
14
+ /**
15
+ * 添加对象到碰撞检测系统
16
+ * @param object 需要进行碰撞检测的对象
17
+ */
18
+ addObject(poi: Poi2): void;
19
+ /**
20
+ * 从碰撞检测系统中移除对象
21
+ * @param object 需要移除的对象
22
+ */
23
+ removeObject(poi: Poi2): void;
24
+ /**
25
+ * 批量移除
26
+ */
27
+ removeObjects(pois: Poi2[], disposed?: boolean): void;
28
+ /**
29
+ * 根据ID获取对象(如果对象有id属性)
30
+ * @param id 对象ID
31
+ */
32
+ getObjectById(id: string): Poi2 | null;
33
+ /**
34
+ * 更新函数,在每一帧调用
35
+ */
36
+ onUpdate: () => void;
37
+ onControlChange: () => void;
38
+ validShowParkingSpace(basicWidth?: number): boolean;
39
+ /**
40
+ * 执行碰撞检测
41
+ */
42
+ detectCollisions(): void;
43
+ /**
44
+ * 标记系统需要更新
45
+ */
46
+ markForUpdate(): void;
47
+ /**
48
+ * 清除所有对象
49
+ */
50
+ clear(): void;
51
+ /**
52
+ * 销毁系统
53
+ */
54
+ dispose(): void;
55
+ }
@@ -8,6 +8,7 @@ import { Renderer } from "./renderer";
8
8
  import { ContextScene } from "./scene";
9
9
  import { ContextCamera } from "./camera";
10
10
  import { BMap } from "../bmap";
11
+ import { CollisionSystem } from "./collision-system";
11
12
  export interface ContextEventMap {
12
13
  update: {};
13
14
  "graphic-click": {
@@ -62,6 +63,7 @@ export declare class Context extends EventDispatcher<ContextEventMap> {
62
63
  hoverHelper: HoverHelper;
63
64
  private basicRatio?;
64
65
  cameraBound: CameraBound;
66
+ collisionSystem: CollisionSystem;
65
67
  range: import("@turf/turf").Feature<import("@turf/turf").Polygon, import("@turf/turf").Properties>;
66
68
  clientSize: {
67
69
  width: number;
@@ -164,5 +166,6 @@ export declare class Context extends EventDispatcher<ContextEventMap> {
164
166
  setCameraPosition(position: Vector3, duration: number): Promise<unknown>;
165
167
  pauseRender(): void;
166
168
  continueRender(): void;
169
+ forceUpdate(): void;
167
170
  dispose(): void;
168
171
  }
@@ -5,7 +5,7 @@ import { Shadow } from "./shadow";
5
5
  import { PoiOptionsParam } from "./poi";
6
6
  import { HeatmapDataParam, HeatmapElement } from './heatmap';
7
7
  import { Model, ModelOptions } from "./model";
8
- import { Layer, GraphicLayer, PoiLayer, PoiLayer2, ParkingLayer, MergedGraphicLayer, MergedModelLayer } from "../layer";
8
+ import { Layer, GraphicLayer, PoiLayer, PoiLayer2, ParkingLayer, MergedGraphicLayer, MergedModelLayer, AddSceneType } from "../layer";
9
9
  import { GraphicOptions, ParkingOption } from "../types";
10
10
  import { MergeAttributeGraphic } from "./merge-attribute-graphic";
11
11
  import { Poi2, PoiOptionsParam2 } from "./poi2";
@@ -34,7 +34,7 @@ export declare class Floor extends Object3D {
34
34
  box: Box3;
35
35
  constructor(context: Context);
36
36
  getPosition(): Vector3;
37
- onAddToScene(): void;
37
+ onAddToScene(type: AddSceneType): void;
38
38
  onRemoveFromScene(): void;
39
39
  createGround(options: GraphicOptionsParam): void;
40
40
  addGrounds(grounds: (Graphic | MergeAttributeGraphic)[]): void;
@@ -35,7 +35,9 @@ type PoiEventMap2 = {
35
35
  [K in keyof PoiOptions2 as `change-${K}`]: {
36
36
  value: PoiOptions2[K];
37
37
  };
38
- } & Object3DEventMap;
38
+ } & Object3DEventMap & {
39
+ 'text-texture-inited': {};
40
+ };
39
41
  export type PoiOptionsParam2 = Partial<PoiOptions2>;
40
42
  export declare class Poi2 extends Object3D<PoiEventMap2> {
41
43
  context: Context;
@@ -48,6 +50,7 @@ export declare class Poi2 extends Object3D<PoiEventMap2> {
48
50
  private _initIconPromise;
49
51
  textureLines: number;
50
52
  private _shouldShow;
53
+ textTexture?: DataTexture;
51
54
  constructor(context: Context, options: PoiOptionsParam2);
52
55
  get hasText(): string | false;
53
56
  get durIconAndText(): 2 | 0;
@@ -57,6 +60,7 @@ export declare class Poi2 extends Object3D<PoiEventMap2> {
57
60
  get textWidth(): number;
58
61
  get textHeight(): number;
59
62
  get hasOriginTexture(): boolean;
63
+ get inited(): true | "" | DataTexture | undefined;
60
64
  get deltaZ(): number;
61
65
  get canSelect(): boolean;
62
66
  show(): Promise<void>;
@@ -65,6 +69,7 @@ export declare class Poi2 extends Object3D<PoiEventMap2> {
65
69
  unRegistryEvent(): void;
66
70
  getPosition(): Vector3;
67
71
  initIcon(): Promise<any>;
72
+ initTextTexture: () => Promise<void>;
68
73
  initText(): Promise<void>;
69
74
  initSize(): void;
70
75
  init(): Promise<void>;
@@ -72,7 +77,7 @@ export declare class Poi2 extends Object3D<PoiEventMap2> {
72
77
  zoom: number;
73
78
  }) => void;
74
79
  resetZ(): void;
75
- getBox(v3: Vector3): Box2;
80
+ getBox(v3: Vector3): Box2 | null;
76
81
  renderBoxHelper(x?: number, y?: number): void;
77
82
  parentSetVisible(visible: boolean): void;
78
83
  dispose(): void;
@@ -2,7 +2,7 @@ export * from './bmap';
2
2
  export * from './utils';
3
3
  export * from './elements';
4
4
  export * from './config';
5
- export * from './context/context';
5
+ export * from './context';
6
6
  export * from './layer';
7
7
  export * from './types';
8
8
  export * from './operations';
@@ -5,3 +5,4 @@ export * from './parking-layer';
5
5
  export * from './layer';
6
6
  export * from './merged-model-layer';
7
7
  export * from './merged-graphic-layer';
8
+ export * from './tile-layer';
@@ -2,34 +2,26 @@ import { Poi2, PoiOptionsParam2 } from "../elements";
2
2
  import { Layer } from "./layer";
3
3
  import { Context } from "../context/context";
4
4
  import { Timer } from "../utils";
5
+ export type AddSceneType = "scene" | "mulFloors";
5
6
  export declare class PoiLayer2 extends Layer {
6
7
  pois: Poi2[];
7
- needChangeParkingSpaceVisibleByZoom: boolean;
8
8
  timer: Timer;
9
+ active: boolean;
10
+ sceneType: AddSceneType;
9
11
  constructor(context: Context);
10
- clear(): this;
12
+ clear(disposed?: boolean): this;
11
13
  createPoi(options: PoiOptionsParam2): Poi2;
12
- changePoiLevelOrCollisionEnable(poi: Poi2): void;
13
14
  removePoi(poi: Poi2): void;
14
15
  removePoiById(id: string): void;
15
16
  getPoiById(id: string): Poi2 | null;
16
- add(poi: Poi2): this;
17
17
  /**
18
18
  * 保存poi按照level排序
19
19
  * @param poi
20
20
  */
21
21
  pushPoi(poi: Poi2): void;
22
22
  getPoiByDeviceXy(x: number, y: number): Poi2[];
23
- changeParkingSpaceVisibleByZoom: () => void;
24
- onUpdate: () => void;
25
- /**
26
- * 碰撞检测
27
- */
28
- collisionDetection(): void;
29
23
  setOpacity(opacity: number): void;
30
- registryEvent(): void;
31
- unRegistryEvent(): void;
32
- onAddToScene(): void;
24
+ onAddToScene(type: "scene" | "mulFloors"): void;
33
25
  onRemoveFromScene(): void;
34
26
  dispose(): void;
35
27
  }
@@ -0,0 +1,72 @@
1
+ import { Layer } from "./layer";
2
+ import { Context } from "../context/context";
3
+ import { PlaneGeometry } from "three";
4
+ export interface TileLayerConfig {
5
+ base_url: string;
6
+ }
7
+ export declare class TileLayer extends Layer {
8
+ private static readonly WORLD_WIDTH;
9
+ private static readonly WORLD_WIDTH_HALF;
10
+ private tileLoader;
11
+ private tileConfig;
12
+ private tileGroup;
13
+ private loadedTiles;
14
+ currentLevel: number;
15
+ tileSize: number;
16
+ baseGeometry: PlaneGeometry;
17
+ options: TileLayerConfig;
18
+ constructor(context: Context, options?: Partial<TileLayerConfig>);
19
+ /**
20
+ * 加载瓦片配置
21
+ */
22
+ private loadTileConfig;
23
+ /**
24
+ * 初始化事件监听
25
+ */
26
+ private initEvents;
27
+ /**
28
+ * 移除事件监听
29
+ */
30
+ private removeEvents;
31
+ /**
32
+ * 更新处理函数
33
+ */
34
+ private onUpdate;
35
+ private onCenterChange;
36
+ /**
37
+ * 更新瓦片显示
38
+ */
39
+ private updateTiles;
40
+ /**
41
+ * 获取视图边界
42
+ */
43
+ private getViewBounds;
44
+ /**
45
+ * 根据相机缩放级别获取瓦片缩放级别
46
+ */
47
+ private getTileZoomLevel;
48
+ /**
49
+ * 获取视图范围内的瓦片
50
+ */
51
+ private getTilesInView;
52
+ /**
53
+ * 渲染瓦片
54
+ */
55
+ private renderTiles;
56
+ /**
57
+ * 设置图层可见性
58
+ */
59
+ setVisibility(visible: boolean): void;
60
+ /**
61
+ * 设置透明度
62
+ */
63
+ setOpacity(opacity: number): void;
64
+ /**
65
+ * 清除已加载的瓦片
66
+ */
67
+ clearTiles(): void;
68
+ /**
69
+ * 销毁图层
70
+ */
71
+ dispose(): void;
72
+ }
@@ -0,0 +1 @@
1
+ export * from './tile-loader';
@@ -0,0 +1,51 @@
1
+ import { Texture } from "three";
2
+ export interface TileConfig {
3
+ extent: [number, number, number, number];
4
+ maxZoom: number;
5
+ minZoom: number;
6
+ }
7
+ export declare class TileLoader {
8
+ private baseUrl;
9
+ private config;
10
+ private textureCache;
11
+ private textureLoader;
12
+ constructor(baseUrl?: string);
13
+ /**
14
+ * 设置基础URL
15
+ * @param url TMS服务基础URL
16
+ */
17
+ setBaseUrl(url: string): void;
18
+ /**
19
+ * 设置瓦片配置
20
+ * @param config 瓦片配置
21
+ */
22
+ setConfig(config: TileConfig): void;
23
+ /**
24
+ * 异步加载瓦片配置
25
+ */
26
+ loadConfig(): Promise<TileConfig>;
27
+ /**
28
+ * 构建TMS瓦片URL
29
+ * @param tileX 瓦片X坐标
30
+ * @param tileY 瓦片Y坐标
31
+ * @param zoom 缩放级别
32
+ * @returns 完整的瓦片URL
33
+ */
34
+ buildTileUrl(tileX: number, tileY: number, zoom: number): string;
35
+ /**
36
+ * 根据Web墨卡托坐标加载瓦片纹理
37
+ * @param x Web墨卡托X坐标
38
+ * @param y Web墨卡托Y坐标
39
+ * @param zoom 缩放级别
40
+ * @returns Promise<Texture> 纹理对象
41
+ */
42
+ loadTileTexture(x: number, y: number, zoom: number): Promise<Texture | null>;
43
+ /**
44
+ * 清除纹理缓存
45
+ */
46
+ clearCache(): void;
47
+ /**
48
+ * 销毁加载器,清理资源
49
+ */
50
+ dispose(): void;
51
+ }
@@ -1,2 +1,3 @@
1
1
  export * from './AibeeLoader';
2
2
  export * from './CrLoader';
3
+ export * from './TileLoader';
@@ -13,9 +13,10 @@ export declare class StartModel extends Object3D<StartModelEventMap> {
13
13
  group: Object3D<Object3DEventMap>;
14
14
  mixer: AnimationMixer | null;
15
15
  previewTime: number;
16
- basicScale: number;
16
+ modelMaxLength: number;
17
17
  options: StartModelOptions;
18
18
  constructor(bmap: BMap, url: string, options?: Partial<StartModelOptions>);
19
+ meshSetMaterial(object: Object3D): void;
19
20
  getBaseScale(object: Object3D): number;
20
21
  registryEvent(): void;
21
22
  unRegistryEvent(): void;
@@ -23,7 +24,7 @@ export declare class StartModel extends Object3D<StartModelEventMap> {
23
24
  _onChangeZoom: ({ zoom }: {
24
25
  zoom: number;
25
26
  }) => void;
26
- printGraph(e: any): void;
27
+ lookAtCamera(): void;
27
28
  setClips(animations: AnimationClip[]): void;
28
29
  startClips(): void;
29
30
  clearClips(): void;
@@ -1,11 +1,9 @@
1
1
  import { Floor, Poi2 } from "../../elements";
2
2
  import { BMap } from "../../bmap";
3
3
  import { Plugin } from "../base";
4
- import { PoiLayer2 } from "../../layer";
5
4
  import { Group } from "three";
6
5
  import { PlaceConfig } from "../../loader";
7
6
  export declare class MulFloors extends Plugin {
8
- poiLayer: PoiLayer2;
9
7
  floors: Floor[];
10
8
  group: Group<import("three").Object3DEventMap>;
11
9
  showStatus: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aibee/crc-bmap",
3
- "version": "0.12.52",
3
+ "version": "0.13.1",
4
4
  "description": "",
5
5
  "main": "lib/index.cjs",
6
6
  "module": "lib/index.esm.min.js",
@@ -34,6 +34,7 @@
34
34
  "lint": "eslint src/**/*.ts",
35
35
  "start": "cd example && vite dev",
36
36
  "dev": "cd ./build && go run src/dev/dev.go",
37
+ "dev:online": "cd ./build && go run src/dev/dev.go online",
37
38
  "publish:all": "cd ./build && go run src/publish/publish.go",
38
39
  "publish:npm": "npm publish --access public --registry https://registry.npmjs.org --@aibee:registry=https://registry.npmjs.org",
39
40
  "publish:aibee": "npm publish --registry https://npm.aibee.cn --@aibee:registry=https://npm.aibee.cn",
@@ -1,26 +0,0 @@
1
- export * from '../index';
2
- import { BMap as _BMap, Overlay, PoiOptions2 } from '../index';
3
- export declare class BMap extends _BMap {
4
- myPositionOverlay: Overlay | null;
5
- showMyPosition(nodeId: string, content: HTMLElement): void;
6
- hideMyPosition(): void;
7
- highlightPoi(nodeIds: string[], options?: Partial<PoiOptions2>): void;
8
- restorePoi(nodeIds: string[]): void;
9
- sortByDistance(start: {
10
- floor: string;
11
- x: number;
12
- y: number;
13
- }, list: {
14
- floor: string;
15
- center_x: number;
16
- center_y: number;
17
- distance?: number;
18
- }[], strict?: boolean): Promise<{
19
- floor: string;
20
- center_x: number;
21
- center_y: number;
22
- distance?: number;
23
- }[]>;
24
- private _getDistance;
25
- dispose(): void;
26
- }