@vsleem-realsee-viewer/shared 2.1.5 → 2.1.6

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/README.internal.md +0 -707
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vsleem-realsee-viewer/shared",
3
- "version": "2.1.5",
3
+ "version": "2.1.6",
4
4
  "private": false,
5
5
  "description": "Shared utilities for VSLeem RealSee Viewer",
6
6
  "main": "./dist/index.umd.js",
@@ -1,707 +0,0 @@
1
- # @vsleem-realsee-viewer/shared
2
-
3
- 共享工具库,为 VSLeem RealSee Viewer 提供核心数据模型、坐标系统、工具函数和 API 接口。
4
-
5
- ## 目录
6
-
7
- - [核心组件](#核心组件)
8
- - [Coordinate 坐标系类](#1-coordinate-坐标系类)
9
- - [DataSource 数据源类](#2-datasource-数据源类)
10
- - [GeoPoint 地理坐标类](#3-geopoint-地理坐标类)
11
- - [RelativeMap 相对坐标映射类](#4-relativemap-相对坐标映射类)
12
- - [Point 点坐标类](#5-point-点坐标类)
13
- - [Vector3 三维向量类](#6-vector3-三维向量类)
14
- - [Position 球面位置类](#7-position-球面位置类)
15
- - [DataHelper 数据助手类](#8-datahelper-数据助手类)
16
- - [枚举类型](#枚举类型)
17
- - [类型定义](#类型定义)
18
- - [工具函数](#工具函数)
19
- - [API 接口](#api-接口)
20
- - [配置常量](#配置常量)
21
-
22
- ---
23
-
24
- # 核心组件
25
-
26
- ## 1. Coordinate 坐标系类
27
-
28
- 适用于建筑信息模型(BIM)、地理信息系统(GIS)等需要复杂空间关系管理的场景。
29
-
30
- ### 1.1 属性说明
31
-
32
- | 属性 | 类型 | 默认值 | 说明 |
33
- | -------------- | -------------- | ------ | -------------------------------------------- |
34
- | `id` | `number` | 0 | 坐标系的唯一标识符 |
35
- | `type` | `number` | 0 | 坐标系类型:0表示空间坐标系,1表示模型坐标系 |
36
- | `level?` | `number` | - | 表示空间坐标系的层级深度 |
37
- | `relativeMap?` | `RelativeMap` | - | 存储与父坐标系的相对位置变换关系 |
38
- | `no?` | `string` | - | 坐标系的编号标识 |
39
- | `name?` | `string` | - | 坐标系的完整名称 |
40
- | `shortName?` | `string` | - | 坐标系的简称 |
41
- | `status?` | `number` | - | 表示坐标系的当前使用状态 |
42
- | `modelId?` | `number` | - | 关联的模型ID |
43
- | `modelType?` | `number` | - | 关联的模型类型 |
44
- | `modelValue?` | `string` | - | 关联的模型值 |
45
- | `projectId?` | `number` | - | 所属项目ID |
46
- | `parentId?` | `number` | - | 父坐标系ID |
47
- | `parent?` | `Coordinate` | - | 父坐标系对象引用 |
48
- | `groupUuid?` | `string` | - | 坐标系分组的唯一标识 |
49
- | `children` | `Coordinate[]` | [] | 子坐标系数组,默认初始化为空数组 |
50
- | `z?` | `number` | - | 坐标系的高度值 |
51
- | `disabled?` | `boolean` | - | 标识坐标系是否被禁用 |
52
- | `createTime?` | `number` | - | 坐标系的创建时间戳 |
53
-
54
- ### 1.2 计算属性说明
55
-
56
- | 属性 | 类型 | 默认值 | 说明 |
57
- | ----------- | -------------- | ------ | -------------------------------------------------- |
58
- | `spaceList` | `Coordinate[]` | [] | 获取所有空间类型的子坐标系 |
59
- | `modelList` | `Coordinate[]` | [] | 获取所有模型类型的子坐标系 |
60
- | `fullName` | `string` | - | 获取组合后的完整名称,格式为"简称(名称)"或单独名称 |
61
-
62
- ### 1.3 方法说明
63
-
64
- | 方法 | 类型 | 说明 |
65
- | ---------------------- | ------------------------------------------------------------------------------------- | -------------------------------------------- |
66
- | `constructor` | `(options?: Partial<Coordinate>) => Coordinate` | 初始化坐标系实例,支持部分属性配置 |
67
- | `addChild` | `(child: Partial<Coordinate> \| Partial<Coordinate>[]) => Promise<Coordinate>` | 添加一个或多个子坐标系,并建立映射关系 |
68
- | `removeChild` | `(child: Partial<Coordinate> \| Partial<Coordinate>[]) => Promise<void>` | 移除一个或多个子坐标系 |
69
- | `updateChild` | `(child: Partial<Coordinate> \| Partial<Coordinate>[]) => Promise<Coordinate>` | 更新子坐标系的属性信息 |
70
- | `bindChild` | `(child: Partial<Coordinate> \| Partial<Coordinate>[]) => Promise<Coordinate>` | 绑定子坐标系但不建立映射关系 |
71
- | `mergeChild` | `(result?: Coordinate[]) => Promise<void>` | 合并更新的子坐标系数据到当前树结构 |
72
- | `mappingTo` | `(result: ProjectionModel[]) => Promise<void>` | 将当前坐标系映射到目标坐标系组 |
73
- | `getMapping` | `() => Promise<ProjectionModel \| undefined>` | 查询当前坐标系被哪些源坐标系映射 |
74
- | `findRoot` | `(mapped?: boolean) => Coordinate` | 递归查找根坐标系,可选是否只查找有映射关系的 |
75
- | `findChildModel` | `(type: number \| number[], mapped?: boolean) => Coordinate \| undefined` | 查找符合条件的子模型坐标系 |
76
- | `findClosestModel` | `(type?: number \| number[], excludeNodes?: Coordinate[]) => Coordinate \| undefined` | 使用广度优先搜索查找最近的模型坐标系 |
77
- | `findParentSpace` | `() => Coordinate \| undefined` | 向上查找最近的父级空间坐标系 |
78
- | `findParentSpaceNames` | `(level?: number) => string[]` | 获取指定层级数的父空间名称列表 |
79
- | `findCsGroup` | `() => Coordinate[]` | 查找当前坐标系所在的分组 |
80
- | `findCsByLevel` | `(level: number) => Coordinate \| undefined` | 递归查找指定层级的坐标系 |
81
- | `findCsById` | `(id?: number) => Coordinate \| undefined` | 通过ID深度优先搜索查找坐标系 |
82
- | `getCsRoutes` | `(mapped?: boolean) => Coordinate[]` | 获取从当前坐标系到根系的路径数组 |
83
- | `getMappedCsTree` | `() => Coordinate` | 生成只包含有映射关系的坐标系树 |
84
- | `getDestRelativeMap` | `(dstCoordinate: Coordinate) => RelativeMap` | 计算到目标坐标系的相对变换关系 |
85
- | `getRelativeMaps` | `() => RelativeMap[]` | 获取从当前坐标系到根系的相对变换链 |
86
-
87
- ---
88
-
89
- ## 2. DataSource 数据源类
90
-
91
- 用于管理 BIM、GIS、数字孪生的层级结构与空间关系。
92
-
93
- ### 2.1 静态方法说明
94
-
95
- | 方法 | 类型 | 说明 |
96
- | ----------------------- | -------------------------------------------------------------------------------- | ------------------------------------ |
97
- | `getCoordinateTree` | `(projectId: number) => Promise<Coordinate \| undefined>` | 获取项目坐标系树结构 |
98
- | `parsedCoordinateTree` | `(tree: Coordinate) => Coordinate \| undefined` | 解析坐标系树 |
99
- | `addCoordinate` | `(parent: Coordinate, children: Partial<Coordinate>[]) => Promise<Coordinate[]>` | 添加子坐标系到指定父节点 |
100
- | `removeCoordinate` | `(parent: Coordinate, children: Partial<Coordinate>[]) => Promise<any>` | 删除指定坐标系 |
101
- | `updateCoordinate` | `(parent: Coordinate, children: Partial<Coordinate>[]) => Promise<Coordinate[]>` | 更新坐标系信息 |
102
- | `bindCoordinate` | `(parent: Coordinate, children: Partial<Coordinate>[]) => Promise<Coordinate[]>` | 绑定坐标系到父节点 |
103
- | `handleCoordinateList` | `(array: CoordinateModel[]) => Coordinate[]` | 转换原始数据为Coordinate对象 |
104
- | `buildCoordinateTree` | `(flatNodes: Coordinate[], rootId: number) => Coordinate` | 将扁平列表转为树形结构 |
105
- | `flattenCoordinateTree` | `(tree: Coordinate \| Coordinate[]) => Coordinate[]` | 将树形结构的节点扁平化为一个一维数组 |
106
- | `sortCoordinateTree` | `(node: Coordinate) => void` | 递归排序坐标系树 |
107
- | `filterSpaceTree` | `(tree: Coordinate[],parent?: Coordinate) => Coordinate[]` | 过滤出空间坐标系树 |
108
-
109
- ---
110
-
111
- ## 3. GeoPoint 地理坐标类
112
-
113
- 实现地理与平面坐标的高精度双向转换,基于 WGS84 椭球体模型。
114
-
115
- ### 3.1 属性说明
116
-
117
- | 属性 | 类型 | 默认值 | 说明 |
118
- | ----- | -------- | ------ | -------- |
119
- | `lat` | `number` | 0 | 经度(°) |
120
- | `lon` | `number` | 0 | 纬度(°) |
121
- | `alt` | `number` | 0 | 海拔(mm) |
122
-
123
- ### 3.2 方法说明
124
-
125
- | 方法 | 类型 | 说明 |
126
- | ------------- | -------------------------------------------- | ---------------------------------- |
127
- | `constructor` | `(options?: Partial<GeoPoint>) => GeoPoint` | 初始化地理坐标点,支持部分属性配置 |
128
- | `XYZToLLH` | `(p: Point, refPoint: GeoPoint) => GeoPoint` | 平面坐标转地理坐标(WGS84椭球体) |
129
- | `LLHToXYZ` | `(p: Point, refPoint: GeoPoint) => Point` | 地理坐标转平面坐标(WGS84椭球体) |
130
-
131
- ---
132
-
133
- ## 4. RelativeMap 相对坐标映射类
134
-
135
- 用于管理三维空间中的相对坐标变换关系,支持缩放、旋转和平移。
136
-
137
- ### 4.1 属性说明
138
-
139
- | 属性 | 类型 | 默认值 | 说明 |
140
- | ----------- | ---------- | ------ | ---------------------------- |
141
- | `scale` | `number` | 1 | 缩放比例 |
142
- | `yaw` | `number` | 0 | 旋转弧度 |
143
- | `x` | `number` | 0 | X轴平移量 |
144
- | `y` | `number` | 0 | Y轴平移量 |
145
- | `z` | `number` | 0 | Z轴平移量 |
146
- | `start` | `number` | 0 | 起始 |
147
- | `end` | `number` | -1 | 结束 |
148
- | `plane` | `string` | 'xy' | 坐标系平面类型('xy'或'xz') |
149
- | `refPoint?` | `GeoPoint` | - | 参考点坐标 |
150
-
151
- ### 4.2 方法说明
152
-
153
- | 方法 | 类型 | 说明 |
154
- | -------------------- | --------------------------------------------------- | ------------------------------------ |
155
- | `constructor` | `(options?: Partial<RelativeMap>) => RelativeMap` | 初始化相对映射关系,支持部分属性配置 |
156
- | `addRelativeMap` | `(r1: RelativeMap, r2: RelativeMap) => RelativeMap` | 合并两个坐标变换(先应用r1后应用r2) |
157
- | `inverseRelativeMap` | `(r: RelativeMap) => RelativeMap` | 计算坐标变换的逆变换 |
158
- | `toParse` | `(r?: string) => RelativeMap \| undefined` | 从JSON字符串解析为RelativeMap对象 |
159
- | `toStringify` | `(r?: RelativeMap) => string \| undefined` | 将RelativeMap对象序列化为JSON字符串 |
160
-
161
- ---
162
-
163
- ## 5. Point 点坐标类
164
-
165
- 用于三维空间中的坐标表示与转换,支持位置、角度和坐标系投影变换。
166
-
167
- ### 5.1 属性说明
168
-
169
- | 属性 | 类型 | 默认值 | 说明 |
170
- | ---------- | --------- | ------ | -------------------------- |
171
- | `x` | `number` | 0 | X轴坐标 |
172
- | `y` | `number` | 0 | Y轴坐标 |
173
- | `z` | `number` | 0 | Z轴坐标 |
174
- | `lat` | `number` | 0 | 纬度 |
175
- | `lon` | `number` | 0 | 经度 |
176
- | `alt` | `number` | 0 | 海拔 |
177
- | `yaw` | `number` | 0 | 偏航角 |
178
- | `pitch` | `number` | 0 | 俯仰角 |
179
- | `roll` | `number` | 0 | 翻滚角 |
180
- | `hasXYZ` | `boolean` | false | 是否包含XYZ坐标 |
181
- | `hasGeo` | `boolean` | false | 是否包含地理坐标 |
182
- | `hasAngle` | `boolean` | false | 是否包含角度信息 |
183
- | `plane` | `string` | 'xy' | 坐标平面类型('xy'或'xz') |
184
-
185
- ### 5.2 方法说明
186
-
187
- | 方法 | 类型 | 说明 |
188
- | ------------- | ------------------------------------------------------------------------------------------------ | ---------------------- |
189
- | `constructor` | `(options?: Partial<Point>) => Point` | 初始化点坐标 |
190
- | `dist` | `(p1: Point, p2: Point) => number` | 计算两点间三维距离 |
191
- | `distXZ` | `(p1: Point, p2: Point) => number` | 计算两点在XZ平面的距离 |
192
- | `distXY` | `(p1: Point, p2: Point) => number` | 计算两点在XY平面的距离 |
193
- | `toRadians` | `(degrees: number) => number` | 角度转弧度 |
194
- | `toDegrees` | `(radians: number) => number` | 弧度转角度 |
195
- | `angleXZ` | `(pa: Point, pb: Point, pc: Point) => number` | 计算三点在XZ平面的夹角 |
196
- | `toParse` | `(point?: string) => Point \| undefined` | 从字符串解析点坐标 |
197
- | `toStringify` | `(point?: Point) => string` | 将点坐标序列化为字符串 |
198
- | `projection` | `(r: RelativeMap, srcCoordinate?: Coordinate, dstCoordinate?: Coordinate) => Point \| undefined` | 坐标投影转换 |
199
- | `project` | `(r: RelativeMap) => Point \| undefined` | 基础坐标投影 |
200
- | `projectXZ` | `(r: RelativeMap) => Point` | XZ平面坐标投影 |
201
- | `projectXY` | `(r: RelativeMap) => Point` | XY平面坐标投影 |
202
-
203
- ---
204
-
205
- ## 6. Vector3 三维向量类
206
-
207
- 用于表示三维空间中的一个点或方向,提供序列化与反序列化方法。
208
-
209
- ### 6.1 属性说明
210
-
211
- | 属性 | 类型 | 默认值 | 说明 |
212
- | ---- | -------- | ------ | ---- |
213
- | `x` | `number` | 0 | X轴 |
214
- | `y` | `number` | 0 | Y轴 |
215
- | `z` | `number` | 0 | Z轴 |
216
-
217
- ### 6.2 方法说明
218
-
219
- | 方法 | 类型 | 说明 |
220
- | ------------- | ----------------------------------------- | --------------------------- |
221
- | `constructor` | `(options?: Partial<Vector3>) => Vector3` | 初始化三维向量 |
222
- | `toParse` | `(position?: string) => Vector3 \| void` | 从字符串解析为Vector3对象 |
223
- | `toStringify` | `(position?: Vector3) => string` | 将Vector3对象序列化为字符串 |
224
-
225
- ---
226
-
227
- ## 7. Position 球面位置类
228
-
229
- 用于表示球面坐标系中的姿态信息,包含偏航角、俯仰角和横滚角。
230
-
231
- ### 7.1 属性说明
232
-
233
- | 属性 | 类型 | 默认值 | 说明 |
234
- | ------- | -------- | ------ | ------ |
235
- | `yaw` | `number` | 0 | 偏航角 |
236
- | `pitch` | `number` | 0 | 俯仰角 |
237
- | `roll` | `number` | 0 | 横滚角 |
238
-
239
- ### 7.2 方法说明
240
-
241
- | 方法 | 类型 | 说明 |
242
- | ------------- | ------------------------------------------- | ---------------------------- |
243
- | `constructor` | `(options?: Partial<Position>) => Position` | 初始化球面位置 |
244
- | `toParse` | `(position?: string) => Position \| void` | 从字符串解析为Position对象 |
245
- | `toStringify` | `(position?: Position) => string` | 将Position对象序列化为字符串 |
246
-
247
- ---
248
-
249
- ## 8. DataHelper 数据助手类
250
-
251
- 提供数据处理与转换的辅助方法。
252
-
253
- ### 8.1 静态方法说明
254
-
255
- | 方法 | 类型 | 说明 |
256
- | -------------------- | ------------------------------------------------------------------------------------ | -------------------------------- |
257
- | `srcPointToDstPoint` | `(points: Point[], srcCoordinate: Coordinate, dstCoordinate: Coordinate) => Point[]` | 将源坐标系中的点转换到目标坐标系 |
258
-
259
- ---
260
-
261
- # 枚举类型
262
-
263
- ## 应用相关枚举
264
-
265
- ### AppObsType - 对象存储类型
266
-
267
- | 值 | 说明 |
268
- | -------- | -------- |
269
- | `huawei` | 华为云 |
270
- | `aliyun` | 阿里云 |
271
- | `hs` | 火山引擎 |
272
- | `amazon` | AWS S3 |
273
- | `minio` | MinIO |
274
-
275
- ### LocaleType - 多语言类型
276
-
277
- | 值 | 说明 |
278
- | ------- | -------- |
279
- | `en-US` | 英语 |
280
- | `zh-CN` | 简体中文 |
281
- | `ja-JP` | 日语 |
282
-
283
- ### CRSTypes - 地图坐标系类型
284
-
285
- | 值 | 说明 |
286
- | ---------- | ----------------------- |
287
- | `WGS84` | WGS84 坐标系 |
288
- | `GCJ02` | 火星坐标系(高德/腾讯) |
289
- | `BD09` | 百度坐标系 |
290
- | `BD09MC` | 百度墨卡托坐标系 |
291
- | `EPSG3857` | Web墨卡托投影 |
292
-
293
- ## 坐标相关枚举
294
-
295
- ### CoordinateModelType - 坐标系模型类型
296
-
297
- | 值 | 说明 |
298
- | ---------------- | ---------------------- |
299
- | `CADModel` | CAD图片模型 (5) |
300
- | `BIMModel` | BIM引擎模型 (6) |
301
- | `ForgeModel` | Forge引擎模型 (7) |
302
- | `ThreeDModel` | 3D模型 (8) |
303
- | `GeoModel` | 地图模型 (9) |
304
- | `SoonspaceModel` | SoonSpace引擎模型 (10) |
305
- | `ScaleModel` | 比例尺模型 (101) |
306
-
307
- ### CoordinateLevel - 坐标系空间层级
308
-
309
- | 值 | 说明 |
310
- | -------- | -------- |
311
- | `Global` | 地图 (0) |
312
-
313
- ### CoordinateType - 坐标系类型
314
-
315
- | 值 | 说明 |
316
- | ------- | ---- |
317
- | `Space` | 空间 |
318
- | `Model` | 模型 |
319
- | `Data` | 数据 |
320
-
321
- ### CoordinateStatus - 坐标系使用状态
322
-
323
- | 值 | 说明 |
324
- | ---------- | -------- |
325
- | `Used` | 当前使用 |
326
- | `Enabled` | 可使用 |
327
- | `Disabled` | 无法使用 |
328
-
329
- ## 请求相关枚举
330
-
331
- ### RequestMethod - HTTP请求方法
332
-
333
- | 值 | 说明 |
334
- | ------ | ---- |
335
- | `GET` | GET |
336
- | `POST` | POST |
337
-
338
- ### RequestContentType - 请求内容类型
339
-
340
- | 值 | 说明 |
341
- | ----------------- | ----------------------------------------------- |
342
- | `JSON` | application/json |
343
- | `FORM_URLENCODED` | application/x-www-form-urlencoded;charset=UTF-8 |
344
- | `FORM_DATA` | multipart/form-data;charset=UTF-8 |
345
- | `OCTET_STREAM` | application/octet-stream |
346
-
347
- ### RequestResultCode - 请求结果代码
348
-
349
- | 值 | 说明 |
350
- | ----- | ---- |
351
- | `200` | 成功 |
352
- | `-1` | 错误 |
353
- | `401` | 超时 |
354
-
355
- ## 错误相关枚举
356
-
357
- ### AppErrorCode - 应用错误码
358
-
359
- | 错误码 | 错误描述 |
360
- | ------ | ------------------------------ |
361
- | `9000` | GeoPoint 没有对应的平面信息 |
362
- | `9010` | Point 在 GIS 中未映射 |
363
- | `9011` | Point 缺少 XYZ 坐标信息 |
364
- | `9012` | Point 没有对应的平面信息 |
365
- | `9020` | RelativeMap 平面不匹配 |
366
- | `9021` | RelativeMap 没有对应的平面信息 |
367
- | `9022` | RelativeMap JSON 格式错误 |
368
- | `9030` | 请求的返回码错误 |
369
- | `9031` | 请求的返回结果错误 |
370
- | `9032` | 请求发生未知错误 |
371
- | `9040` | 解析数据失败 |
372
- | `9041` | 序列化数据失败 |
373
-
374
- ---
375
-
376
- # 类型定义
377
-
378
- ## AppSetting - 应用设置
379
-
380
- 定义应用程序的配置参数。
381
-
382
- | 属性 | 类型 | 说明 |
383
- | --------------- | ------------ | ---------------------------- |
384
- | `baseUrl` | `string` | 用于配置应用后端服务的根路径 |
385
- | `authorizeCode` | `string` | 用于API身份验证和授权的凭证 |
386
- | `locale` | `LocaleType` | 当前语言,默认 zh-CN |
387
-
388
- ## CoordinateModel - 坐标模型
389
-
390
- 定义坐标系的数据模型。
391
-
392
- | 属性 | 类型 | 说明 |
393
- | ------------------ | -------- | ---------------------------------------------------------------------------------------------------------------------------------- |
394
- | `id` | `number` | 唯一 ID |
395
- | `coordinateType` | `number` | 坐标系分类 0空间 1模型 |
396
- | `renderType` | `number` | 模型类型 |
397
- | `type` | `number` | 层级类型 0-global-全局坐标系/1-field-场布图/2-building-建筑/3-floor-楼层/4-room-房间/5-cad位图图纸/6-bim/7-forge/8-3DGS/9-地图模型 |
398
- | `projectId` | `number` | 项目 ID |
399
- | `parentId` | `number` | 父节点 ID |
400
- | `modelId` | `number` | 模型 ID |
401
- | `modelKey` | `string` | 模型键 |
402
- | `name` | `string` | 名称 |
403
- | `shortName` | `string` | 短名称 |
404
- | `no` | `string` | 编号 |
405
- | `groupUuid` | `string` | 组UUID,多楼层前端传入时需保持一致 |
406
- | `relativePosition` | `string` | 位置关系 |
407
- | `status` | `number` | 状态 0使用/1激活/2未使用 |
408
- | `thirdId` | `string` | 第三方 ID |
409
- | `uuid` | `string` | UUID |
410
- | `z` | `number` | z坐标 |
411
- | `meta` | `string` | 元数据(JSON字符串) |
412
- | `leafletPath` | `string` | leaflet路径(JSON字符串) |
413
- | `createBy` | `string` | 创建者 |
414
- | `createTime` | `number` | 创建时间 |
415
- | `updateBy` | `string` | 更新者 |
416
- | `updateTime` | `number` | 更新时间 |
417
-
418
- ## ProjectionModel - 投影模型
419
-
420
- 描述坐标投影转换的模型。
421
-
422
- | 属性 | 类型 | 说明 |
423
- | -------------- | -------- | -------------------------------- |
424
- | `mappingType` | `number` | 映射类型 |
425
- | `projectId` | `number` | 项目ID |
426
- | `srcCsId` | `number` | 源坐标系ID(被映射的模型/空间) |
427
- | `srcModelCsId` | `number` | 源模型坐标系ID(左侧视图模型) |
428
- | `srcModelId` | `number` | 源模型ID(非坐标系id) |
429
- | `srcMapType` | `number` | 源模型地图类型 |
430
- | `srcCsPointA` | `string` | 源坐标系点A(左侧视图点A) |
431
- | `srcCsPointB` | `string` | 源坐标系点B(左侧视图点B) |
432
- | `dstCsId` | `number` | 目标坐标系ID(映射目标-空间) |
433
- | `dstModelCsId` | `number` | 目标模型坐标系ID(右侧视图模型) |
434
- | `dstModelId` | `number` | 目标模型ID(非坐标系id) |
435
- | `dstMapType` | `number` | 目标模型地图类型 |
436
- | `dstPointA` | `string` | 目标坐标系点A(右侧视图点A) |
437
- | `dstPointB` | `string` | 目标坐标系点B(右侧视图点B) |
438
-
439
- ## MetaModel - 元数据模型
440
-
441
- | 属性 | 类型 | 说明 |
442
- | -------------- | -------- | -------------------- |
443
- | `tilesBaseUrl` | `string` | pdf瓦片基础URL |
444
- | `imageWidth` | `number` | 图片宽度 |
445
- | `imageHeight` | `number` | 图片高度 |
446
- | `path` | `string` | SoonSpace模型路径URL |
447
-
448
- ## ProjectModel - 项目详情
449
-
450
- 项目信息数据结构。
451
-
452
- | 属性 | 类型 | 说明 |
453
- | ------------------ | ---------- | -------------- |
454
- | `id` | `number` | 项目ID |
455
- | `no` | `string` | 项目编号 |
456
- | `name` | `string` | 项目名称 |
457
- | `shortName` | `string` | 项目简称 |
458
- | `status` | `number` | 项目状态 |
459
- | `companyId` | `number` | 公司ID |
460
- | `createByName` | `string` | 创建人姓名 |
461
- | `mapArea` | `number` | 地图区域 |
462
- | `mapType` | `string` | 地图类型 |
463
- | `CRSType` | `CRSTypes` | 地图坐标系标准 |
464
- | `sassProjectId` | `string` | SaaS项目ID |
465
- | `sassEnterpriseId` | `number` | SaaS企业ID |
466
- | `createBy` | `string` | 创建人ID |
467
- | `createTime` | `number` | 创建时间 |
468
- | `updateBy` | `string` | 更新人ID |
469
- | `updateTime` | `number` | 更新时间 |
470
-
471
- ## ViewModel - 视图模型
472
-
473
- 描述CAD文件、图片、BIM或对象的数据结构。
474
-
475
- | 属性 | 类型 | 说明 |
476
- | ---------------- | ----------------- | ---------------------- |
477
- | `id` | `number` | 唯一标识符 |
478
- | `no` | `string` | 模型编号/代码 |
479
- | `name` | `string` | 模型名称/描述 |
480
- | `projectId` | `number` | 所属项目ID |
481
- | `renderType` | `number` | 模型渲染类型 |
482
- | `rawType` | `string` | 模型原始文件类型 |
483
- | `modelKey` | `string` | 模型关键标识符 |
484
- | `rawUrl` | `string` | 原始模型文件URL |
485
- | `length` | `number` | 模型文件大小(字节) |
486
- | `bindCsIds` | `string` | 绑定坐标系id集合 |
487
- | `mappingRecords` | `MappingRecord[]` | 映射记录 |
488
- | `createBy` | `string` | 创建者ID |
489
- | `createTime` | `number` | 创建时间戳(毫秒) |
490
- | `updateBy` | `string` | 最后更新者ID |
491
- | `updateTime` | `number` | 最后更新时间戳(毫秒) |
492
-
493
- ### MappingRecord - 映射记录
494
-
495
- | 属性 | 类型 | 说明 |
496
- | ----------------- | -------- | ------------------ |
497
- | `dstCsGroupUuid` | `string` | 目标坐标系组的UUID |
498
- | `dstCsId` | `number` | 目标坐标系ID |
499
- | `dstCsName` | `string` | 目标坐标系名称 |
500
- | `dstCsShortName` | `string` | 目标坐标系简称 |
501
- | `dstParentCsName` | `string` | 目标父坐标系名称 |
502
- | `srcCsId` | `number` | 源坐标系ID |
503
-
504
- ## RequestConfig - 请求配置
505
-
506
- 定义发起请求时的相关配置参数。
507
-
508
- | 属性 | 类型 | 说明 |
509
- | --------- | ------------------------ | ------------------------------ |
510
- | `url` | `string` | 请求URL |
511
- | `method` | `string` | 请求方法(GET/POST等) |
512
- | `params` | `Record<string, any>` | URL参数(通常用于GET请求) |
513
- | `data` | `Record<string, any>` | 请求体数据(通常用于POST/PUT) |
514
- | `body` | `any` | 原始请求体内容 |
515
- | `mode` | `any` | 请求模式(如cors/no-cors等) |
516
- | `headers` | `Record<string, string>` | 请求头配置 |
517
-
518
- ## RequestOptions - 请求选项
519
-
520
- 细化的请求行为控制选项。
521
-
522
- | 属性 | 类型 | 默认值 | 说明 |
523
- | --------------------- | --------- | ------ | -------------------------- |
524
- | `isTransformResponse` | `boolean` | true | 是否需要对返回数据进行处理 |
525
- | `joinBaseUrl` | `boolean` | true | 是否加入基础URL |
526
- | `withAuthorize` | `boolean` | true | 是否携带授权码 |
527
-
528
- ## ResponseResult - 响应结果
529
-
530
- 定义API响应的数据结构。
531
-
532
- | 属性 | 类型 | 说明 |
533
- | ------ | -------- | -------- |
534
- | `code` | `number` | 状态码 |
535
- | `msg` | `string` | 消息提示 |
536
- | `data` | `any` | 返回数据 |
537
-
538
- ## MapProvider - 地图服务商
539
-
540
- 地图服务商配置信息。
541
-
542
- | 属性 | 类型 | 说明 |
543
- | ---------- | ------------ | ------------------------------------- |
544
- | `name` | `string` | 地图服务商名称 |
545
- | `patterns` | `string[]` | 匹配的关键词 |
546
- | `CRSTypes` | `CRSTypes[]` | [中国大陆区域标准,中国大陆区域外标准] |
547
-
548
- ---
549
-
550
- # 工具函数
551
-
552
- ## is - 类型判断
553
-
554
- 提供各种类型判断方法。
555
-
556
- | 方法 | 类型 | 说明 |
557
- | --------------- | --------------------------------------------------- | ------------------------------ |
558
- | `inBrowser` | `boolean` | 是否在浏览器环境 |
559
- | `is` | `(val: unknown, type: string) => boolean` | 判断值是否为指定类型 |
560
- | `isDef` | `<T>(val?: T) => val is T` | 判断值是否已定义 |
561
- | `isUnDef` | `<T>(val?: T) => val is T` | 判断值是否未定义 |
562
- | `isObject` | `(val: any) => val is Record<any, any>` | 判断是否为对象 |
563
- | `isNull` | `(val: unknown) => val is null` | 判断是否为 null |
564
- | `isDate` | `(val: unknown) => val is Date` | 判断是否为日期 |
565
- | `isString` | `(val: unknown) => val is string` | 判断是否为字符串 |
566
- | `isFunction` | `(val: unknown) => val is Function` | 判断是否为函数 |
567
- | `isBoolean` | `(val: unknown) => val is boolean` | 判断是否为布尔值 |
568
- | `isRegExp` | `(val: unknown) => val is RegExp` | 判断是否为正则表达式 |
569
- | `isArray` | `(val: any) => val is Array<any>` | 判断是否为数组 |
570
- | `isWindow` | `(val: any) => val is Window` | 判断是否为 Window 对象 |
571
- | `isElement` | `(val: unknown) => val is Element` | 判断是否为 DOM 元素 |
572
- | `isNumeric` | `(val: unknown) => boolean` | 判断是否为数值 |
573
- | `isSameValue` | `(newValue: unknown, oldValue: unknown) => boolean` | 判断两个值是否相同(JSON比较) |
574
- | `isNullOrUnDef` | `(val: unknown) => val is null \| undefined` | 判断是否为 null 或 undefined |
575
- | `isPromise` | `<T>(val: unknown) => val is Promise<T>` | 判断是否为 Promise |
576
-
577
- ## load - 资源加载
578
-
579
- 提供脚本、样式等资源加载方法。
580
-
581
- | 方法 | 类型 | 说明 |
582
- | ------------ | ----------------------------------------------------------------------------------- | ------------------------ |
583
- | `loadScript` | `(src: string, attributes?: Record<string, string \| boolean>) => Promise<boolean>` | 动态加载 JavaScript 脚本 |
584
- | `loadCss` | `(src: string) => Promise<boolean>` | 动态加载外部 CSS 文件 |
585
-
586
- ## lodash - 通用工具
587
-
588
- 基于 lodash 的通用工具函数。
589
-
590
- ## log - 日志工具
591
-
592
- 日志输出与调试工具。
593
-
594
- | 方法 | 类型 | 说明 |
595
- | ------- | ---------------------------- | ------------ |
596
- | `warn` | `(message: string) => void` | 输出警告日志 |
597
- | `error` | `(message: string) => never` | 抛出错误异常 |
598
-
599
- ## map - 地图工具
600
-
601
- 地图相关辅助方法。
602
-
603
- ## transform - 数据转换
604
-
605
- 数据格式转换工具。
606
-
607
- ## uuid - 唯一标识
608
-
609
- UUID 生成工具。
610
-
611
- | 方法 | 类型 | 说明 |
612
- | ---------------- | ----------------------------- | -------------------------------- |
613
- | `buildUUID` | `() => string` | 生成符合 RFC 4122 v4 标准的 UUID |
614
- | `buildShortUUID` | `(prefix?: string) => string` | 生成短 UUID(带前缀) |
615
-
616
- ## canvas - Canvas 元素
617
-
618
- Canvas 相关元素类型定义:
619
-
620
- | 类型 | 说明 |
621
- | --------------------- | -------------- |
622
- | `CanvasElement` | Canvas基础元素 |
623
- | `CanvasImageElement` | Canvas图片元素 |
624
- | `CanvasIssueElement` | Canvas问题元素 |
625
- | `CanvasMarkerElement` | Canvas标记元素 |
626
- | `CanvasPointElement` | Canvas点元素 |
627
- | `CanvasRadarElement` | Canvas雷达元素 |
628
- | `CanvasRegionElement` | Canvas区域元素 |
629
-
630
- ## error - 错误处理
631
-
632
- ### AppError - 应用错误类
633
-
634
- 用于定义和抛出应用级别的自定义错误。
635
-
636
- | 属性 | 类型 | 说明 |
637
- | ------ | -------- | -------- |
638
- | `code` | `number` | 错误码 |
639
- | `msg` | `string` | 错误消息 |
640
-
641
- ## request - HTTP 请求
642
-
643
- 封装网络请求相关方法。
644
-
645
- | 方法 | 类型 | 说明 |
646
- | --------- | ------------------------------------------------------------------------------ | -------------- |
647
- | `request` | `(config: RequestConfig, options?: RequestOptions) => Promise<ResponseResult>` | 发起 HTTP 请求 |
648
-
649
- ---
650
-
651
- # API 接口
652
-
653
- ## coordinate - 坐标相关接口
654
-
655
- 坐标系数据的获取与操作接口。
656
-
657
- ## common - 通用接口
658
-
659
- 通用业务接口。
660
-
661
- ---
662
-
663
- # 配置常量
664
-
665
- ## APP_SETTING - 应用默认配置
666
-
667
- ```typescript
668
- {
669
- baseUrl: 'https://vsleem.com/api',
670
- authorizeCode: '',
671
- }
672
- ```
673
-
674
- ## REQUEST_OPTIONS - 默认请求选项
675
-
676
- ```typescript
677
- {
678
- isTransformResponse: true,
679
- joinBaseUrl: true,
680
- withAuthorize: true,
681
- }
682
- ```
683
-
684
- ## REQUEST_CONFIG - 默认请求配置
685
-
686
- ```typescript
687
- {
688
- url: '',
689
- method: RequestMethod.GET,
690
- headers: {},
691
- }
692
- ```
693
-
694
- ## MAP_PROVIDERS - 地图服务商配置
695
-
696
- | 服务商 | 国内坐标系 | 国外坐标系 |
697
- | ----------------- | ---------- | ---------- |
698
- | 高德 (GAODE) | GCJ02 | WGS84 |
699
- | 百度 (BAIDU) | BD09 | WGS84 |
700
- | 腾讯 (TENCENT) | GCJ02 | WGS84 |
701
- | 天地图 (TIANDITU) | WGS84 | WGS84 |
702
- | 谷歌 (GOOGLE) | GCJ02 | WGS84 |
703
- | OpenStreetMap | WGS84 | WGS84 |
704
-
705
- ## MAP_TILE_LAYERS - 地图瓦片图层
706
-
707
- 天地图瓦片图层配置。