vis-core 0.30.0-beta.6 → 0.30.0-beta.61

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/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- declare const _default: "0.30.0-beta.6";
1
+ declare const _default: "0.30.0-beta.61";
2
2
  export default _default;
@@ -1,3 +1,4 @@
1
+ export declare const extendsAdcodeAll: (cb: any) => void;
1
2
  export declare const findAdcodeInfo: (adcode: number) => {
2
3
  adcode: number;
3
4
  lng: number;
@@ -8,3 +9,14 @@ export declare const findAdcodeInfo: (adcode: number) => {
8
9
  c: number[];
9
10
  b: number[];
10
11
  } | undefined;
12
+ export declare const findAdcodeInfoByName: (name: string) => {
13
+ adcode: number;
14
+ lng: number;
15
+ lat: number;
16
+ name: string;
17
+ level: string;
18
+ parent: number;
19
+ c: number[];
20
+ b: number[];
21
+ } | undefined;
22
+ export declare const getAdcodeShowLevel: (adcode: number, fix?: boolean) => string | undefined;
@@ -12,6 +12,7 @@ export interface BaseOptions {
12
12
  container: HTMLElement;
13
13
  assetsPrefix?: string;
14
14
  css2DContainer?: HTMLElement;
15
+ controlsContainer?: HTMLElement;
15
16
  pencil?: any;
16
17
  pencil2?: any;
17
18
  pencilConfig?: Record<string, any>;
@@ -96,7 +97,7 @@ export default class Base extends Camera {
96
97
  initCameraUserData(): void;
97
98
  initSceneUserData(): void;
98
99
  initBaseObjectUserData(baseObject: BaseObject): void;
99
- addCSS3DRenderer(): void;
100
+ addCSS3DRenderer(container?: HTMLElement): void;
100
101
  initSettingsObj?: Record<string, any>;
101
102
  mouseButtonsActiveStore: Record<string, any> | null;
102
103
  initSettings(): void;
@@ -104,14 +105,17 @@ export default class Base extends Camera {
104
105
  show(): void;
105
106
  showAction(): void;
106
107
  hide(): void;
108
+ addGroup(): Promise<import("gl-draw/dist/objects").Group>;
107
109
  addCSS2D(dom: HTMLElement, options?: {
108
110
  display?: string;
109
111
  onTop?: number;
112
+ target?: BaseObject;
110
113
  }): Promise<Node>;
111
114
  addCSS3D(dom: HTMLElement, options?: {
112
115
  display?: string;
113
116
  onTop?: number;
114
117
  type?: '3d' | '3dSprite';
118
+ target?: BaseObject;
115
119
  }): Promise<Node>;
116
120
  getRoomEnvMap(): THREE.Texture<unknown>;
117
121
  handlePick(objArr: PickFunctionsItem['objArr'], type: PickFunctionsItem['type'], cb: PickFunctionsItem['cb']): void;
@@ -4,6 +4,7 @@ import { type BaseObject, type Lead } from 'gl-draw';
4
4
  import { type Group } from 'gl-draw/dist/objects';
5
5
  import { getProjection } from 'gl-draw/dist/utils';
6
6
  import * as THREE from 'three';
7
+ import type { IBaseObject } from "../../editor";
7
8
  import type Building from './objects/building';
8
9
  import type Road from './objects/road';
9
10
  interface CityOptions extends BaseOptions {
@@ -71,13 +72,11 @@ export default class extends Base {
71
72
  projection: ReturnType<typeof getProjection>;
72
73
  options: CityOptions;
73
74
  group: Group;
74
- outAreaGroup: Group;
75
75
  building: Building;
76
76
  road: Road;
77
77
  setOptions(options: CityOptions): void;
78
78
  multiplyScalar: number;
79
79
  loaderAdd(): void;
80
- loaderAddJson(jsonName: string): void;
81
80
  initMaterial(): Promise<void>;
82
81
  disableSSAO(): void;
83
82
  enabledSSAO(): void;
@@ -85,27 +84,22 @@ export default class extends Base {
85
84
  getInvert(vector3: THREE.Vector3): any;
86
85
  fitTo(obj: BaseObject, enableTransition?: boolean): Promise<void>;
87
86
  initVis(): Promise<void>;
87
+ drawCityPlane(adcode: number, target?: IBaseObject): Promise<void>;
88
88
  drawBuilding(options?: {
89
- json?: {
90
- features: any[];
91
- };
89
+ jsonUrl?: string;
92
90
  meters?: number;
93
91
  grey?: boolean;
94
92
  sideGradient?: boolean;
95
93
  hasSide?: boolean;
96
94
  }): Promise<Building | undefined>;
97
95
  drawArea(options?: {
98
- json?: {
99
- features: any[];
100
- };
96
+ jsonUrl?: string;
101
97
  type?: 'river' | 'grassland';
102
98
  oArr?: number[];
103
99
  grey?: boolean;
104
100
  }): Promise<import("./objects/area").default | undefined>;
105
101
  drawRoad(options?: {
106
- json?: {
107
- features: any[];
108
- };
102
+ jsonUrl?: string;
109
103
  meters?: number;
110
104
  z?: number;
111
105
  grey?: boolean;
@@ -2,9 +2,7 @@ import { BaseObject } from 'gl-draw';
2
2
  import type { ExtrudePolygon } from 'gl-draw/dist/objects';
3
3
  import type * as THREE from 'three';
4
4
  interface Options {
5
- json: {
6
- features: any[];
7
- };
5
+ jsonUrl: string;
8
6
  projection: {
9
7
  center: [number, number];
10
8
  scale: number;
@@ -1,9 +1,7 @@
1
1
  import { BaseObject } from 'gl-draw';
2
2
  import * as THREE from 'three';
3
3
  interface Options {
4
- json: {
5
- features: any[];
6
- };
4
+ jsonUrl: string;
7
5
  projection: {
8
6
  center: [number, number];
9
7
  scale: number;
@@ -1,9 +1,7 @@
1
1
  import { BaseObject } from 'gl-draw';
2
2
  import type { Line } from 'gl-draw/dist/objects';
3
3
  interface Options {
4
- json: {
5
- features: any[];
6
- };
4
+ jsonUrl: string;
7
5
  projection: {
8
6
  center: [number, number];
9
7
  scale: number;
@@ -0,0 +1,131 @@
1
+ import Map from './';
2
+ export interface FixConfig {
3
+ [key: `${string}`]: {
4
+ s: string[];
5
+ z: string[];
6
+ };
7
+ }
8
+ export interface MapManagerConfig {
9
+ container: HTMLDivElement;
10
+ controlsContainer?: HTMLDivElement;
11
+ assetsPrefix?: string;
12
+ fixConfig?: FixConfig;
13
+ raycasterPointsThreshold?: number;
14
+ mapPadding?: [number, number, number, number];
15
+ rmTemplateIdentifier?: boolean;
16
+ geojsonExtensions?: Record<string, any[]>;
17
+ }
18
+ export interface MapEventHandlers {
19
+ [key: string]: (...args: any[]) => void;
20
+ }
21
+ /**
22
+ * MapManager - 地图管理类
23
+ */
24
+ export declare class MapManager {
25
+ private container;
26
+ private controlsContainer?;
27
+ private assetsPrefix?;
28
+ private fixConfig?;
29
+ private raycasterPointsThreshold;
30
+ private readonly MAX_ZOOM_FACTOR;
31
+ private readonly MIN_ZOOM_FACTOR;
32
+ private mapInstances;
33
+ private mapDistances;
34
+ private mapConfigs;
35
+ private currentMap;
36
+ private currentZoom;
37
+ private mapPadding;
38
+ private isInitializing;
39
+ private rmTemplateIdentifier;
40
+ private geojsonExtensions;
41
+ private groups;
42
+ private eventHandlers;
43
+ private areaCloseTimer;
44
+ static findAdcodeInfoByName: (name: string) => {
45
+ adcode: number;
46
+ lng: number;
47
+ lat: number;
48
+ name: string;
49
+ level: string;
50
+ parent: number;
51
+ c: number[];
52
+ b: number[];
53
+ } | undefined;
54
+ static getAdcodeShowLevel: (adcode: number, fix?: boolean) => string | undefined;
55
+ static findAdcodeInfo: (adcode: number) => {
56
+ adcode: number;
57
+ lng: number;
58
+ lat: number;
59
+ name: string;
60
+ level: string;
61
+ parent: number;
62
+ c: number[];
63
+ b: number[];
64
+ } | undefined;
65
+ constructor(config: MapManagerConfig);
66
+ /**
67
+ * 设置事件处理器
68
+ */
69
+ setEventHandlers(handlers: MapEventHandlers): void;
70
+ /**
71
+ * 触发事件
72
+ */
73
+ emit<K extends keyof MapEventHandlers>(eventName: K, ...args: Parameters<MapEventHandlers[K]>): void;
74
+ /**
75
+ * 获取当前地图实例
76
+ */
77
+ getCurrentMap(): Map | null;
78
+ /**
79
+ * 获取当前缩放级别
80
+ */
81
+ getCurrentZoom(): number;
82
+ /**
83
+ * 初始化地图
84
+ */
85
+ initMap(adcodeArr: number[], fixedAdcode?: boolean): Promise<Map | null | undefined>;
86
+ /**
87
+ * 创建地图实例
88
+ */
89
+ private createMapInstance;
90
+ /**
91
+ * 应用地图修复配置
92
+ */
93
+ private applyFixConfig;
94
+ /**
95
+ * 绑定区域交互事件
96
+ */
97
+ private bindAreaEvents;
98
+ /**
99
+ * 设置缩放级别
100
+ */
101
+ setZoom(zoom: number): void;
102
+ /**
103
+ * 创建分组
104
+ * @param groupId 分组ID,用于后续管理
105
+ * @returns 分组实例
106
+ */
107
+ createGroup(groupId: string): Promise<Awaited<ReturnType<Map['addGroup']>> | null>;
108
+ /**
109
+ * 获取分组
110
+ */
111
+ getGroup(groupId: string): Awaited<ReturnType<Map['addGroup']>> | undefined;
112
+ /**
113
+ * 清除指定分组
114
+ */
115
+ clearGroup(groupId: string): void;
116
+ /**
117
+ * 清除所有分组
118
+ */
119
+ clearAllGroups(): void;
120
+ /**
121
+ * 清除区域关闭定时器(供 PortalModal 调用)
122
+ */
123
+ clearAreaCloseTimer(): void;
124
+ triggerAreaLeave({ areaName }?: {
125
+ areaName: string;
126
+ }): void;
127
+ /**
128
+ * 销毁所有地图实例
129
+ */
130
+ dispose(): void;
131
+ }
@@ -5,7 +5,7 @@ import type ContinentsBg from "./objects/ContinentsBg";
5
5
  import type PlaneMap from "./objects/PlaneMap";
6
6
  import type { FeatureCollection, MultiPolygon, Polygon } from 'geojson';
7
7
  import { type BaseObject, type Lead } from 'gl-draw';
8
- import { type ExtrudePolygon, type Group, Line, MeshLineMaterial } from 'gl-draw/dist/objects';
8
+ import { type ExtrudePolygon, type Group, MeshLineMaterial } from 'gl-draw/dist/objects';
9
9
  import { getProjection } from 'gl-draw/dist/utils';
10
10
  import * as THREE from 'three';
11
11
  import City from './city';
@@ -16,7 +16,6 @@ export interface MapOptions extends BaseOptions {
16
16
  parentBg?: boolean | number;
17
17
  parentBgDepth?: number;
18
18
  topSegments?: number;
19
- fixCity?: Record<number, number>;
20
19
  continentsBg?: boolean;
21
20
  continentsBgDepth?: number;
22
21
  clickOusideBack?: boolean;
@@ -52,9 +51,9 @@ export interface MapOptions extends BaseOptions {
52
51
  style?: 'map2Base' | 'map2CityOnMap';
53
52
  bottomPlane?: boolean;
54
53
  bottomPlaneWater?: boolean;
54
+ geojsonExtensions?: Record<string, GeoJSON | string | number | (GeoJSON | string | number)[]>;
55
55
  }
56
56
  interface MapCityOptions extends MapOptions {
57
- jsonNameObj?: Record<number, string>;
58
57
  cacheCity?: boolean;
59
58
  nearbyCities?: boolean | 'full';
60
59
  showBuilding?: boolean;
@@ -93,7 +92,7 @@ export default class extends Base {
93
92
  Lathe: typeof import("../all/objects/Lathe").default;
94
93
  Octahedron: typeof import("../all/objects/Octahedron").default;
95
94
  Node: typeof import("gl-draw/dist/objects").Node;
96
- Line: typeof Line;
95
+ Line: typeof import("gl-draw/dist/objects").Line;
97
96
  Line2: typeof import("gl-draw/dist/objects").Line2;
98
97
  ExtrudePolygon: typeof ExtrudePolygon;
99
98
  ConicPolygon: typeof import("gl-draw/dist/objects").ConicPolygon;
@@ -153,7 +152,7 @@ export default class extends Base {
153
152
  b: number[];
154
153
  };
155
154
  get mapArea(): ExtrudePolygon[];
156
- get mapLine(): Line[];
155
+ get mapLine(): import("gl-draw/dist/objects").Line[];
157
156
  get adcodes(): number[];
158
157
  activePlaneMap: PlaneMap | null;
159
158
  isAnimating: boolean;
@@ -164,7 +163,7 @@ export default class extends Base {
164
163
  pcenter: [number, number];
165
164
  pscale: number;
166
165
  meters: number;
167
- cityVis: City | null;
166
+ cityVis: City[];
168
167
  extendsOptions: Record<string, any>;
169
168
  setOptions(options: MapOptions): void;
170
169
  initSettingsObj: Record<string, any>;
@@ -226,11 +225,19 @@ export default class extends Base {
226
225
  * @param height - 距离地图平面的高度,默认为0
227
226
  */
228
227
  setObjectOnMap(object: BaseObject, location: [number, number], height?: number): void;
228
+ setObjectOnMapAreaByProperty(object: BaseObject, key: string, value: any, height?: number): void;
229
229
  getAdcodeScreenPosition(adcode: number): {
230
230
  x: number;
231
231
  y: number;
232
232
  } | undefined;
233
233
  booleanPointInCn(location: [number, number]): boolean;
234
+ /**
235
+ * 判断经纬度是否在当前地图板块内
236
+ * @param location - 经纬度坐标 [经度, 纬度]
237
+ * @param adcode - 可选,指定板块的行政区划代码,不传则使用当前地图的adcode
238
+ * @returns 是否在板块内
239
+ */
240
+ booleanPointInMap(location: [number, number], adcode?: number): boolean;
234
241
  private getGeojson;
235
242
  handleDrillDown({ adcode, duration, handleLook, saveBackCamvasState, extrudelineBloom, }: {
236
243
  adcode: number;
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "vis-core",
3
- "version": "0.30.0-beta.6",
3
+ "version": "0.30.0-beta.61",
4
4
  "scripts": {
5
- "start": "npm run version && PORT=5173 bundler-dev",
5
+ "start": "npm run version && PORT=5174 bundler-dev",
6
6
  "build:site": "npm run version && PUBLIC_EXCLUDE=true bundler",
7
7
  "build:lib": "npm run version && PUBLIC_EXCLUDE=true BUILD_LIBRARY=src/sdk/index.ts CSS_EXTRACT=false bundler && npm run build:type",
8
8
  "build:type": "BUILD_LIBRARY=src/sdk/index.ts bundler-type",
@@ -64,7 +64,7 @@
64
64
  "esus-lite": "^0.2.8",
65
65
  "events": "^3.3.0",
66
66
  "geojson-cn": "^0.2.5",
67
- "gl-draw": "0.17.0-beta.14",
67
+ "gl-draw": "0.17.0-beta.43",
68
68
  "jsrsasign": "^11.1.0",
69
69
  "lodash-es": "^4.17.21"
70
70
  },