@vsleem-realsee-viewer/projection-plugin 2.1.2 → 2.1.4

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/README.internal.md +322 -3
  2. package/package.json +3 -3
@@ -6,6 +6,18 @@
6
6
 
7
7
  依赖@vsleem-realsee-viewer/shared(共享类)
8
8
 
9
+ ## 目录
10
+
11
+ - [1. Projection映射组件](#1-projection映射组件)
12
+ - [2. 子组件说明](#2-子组件说明)
13
+ - [3. 枚举类型](#3-枚举类型)
14
+ - [4. 类型定义](#4-类型定义)
15
+ - [5. 配置常量](#5-配置常量)
16
+ - [6. 工具函数](#6-工具函数)
17
+ - [7. API接口](#7-api接口)
18
+ - [8. 导出说明](#8-导出说明)
19
+ - [9. 示例](#9-示例)
20
+
9
21
  ### 1.1.1 坐标系枚举
10
22
 
11
23
  - **空间坐标系** (参考`CoordinateLevel`枚举):
@@ -116,18 +128,325 @@ enum CoordinateModelType {
116
128
  }
117
129
  ```
118
130
 
119
- # 2. 示例
131
+ # 9. 示例
120
132
 
121
133
  通过以下方式来注册组件
122
134
 
123
- ## 2.1 安装
135
+ ## 9.1 安装
124
136
 
125
137
  `npm install @vsleem-realsee-viewer/projection-plugin @vsleem-realsee-viewer/shared`
126
138
 
127
139
  `pnpm add @vsleem-realsee-viewer/projection-plugin @vsleem-realsee-viewer/shared`
128
140
 
129
- ## 2.2 例子
141
+ ## 9.2 例子
130
142
 
131
143
  `vsleem-realsee-demo仓库下的views/projection`
132
144
 
133
145
  仓库地址:https://gitee.com/yangleistudio/vsleem-realsee-demo
146
+
147
+ ---
148
+
149
+ # 2. 子组件说明
150
+
151
+ ## 2.1 Projection 主组件
152
+
153
+ 映射组件的主入口,提供配置注入和事件转发功能。
154
+
155
+ ### Props
156
+
157
+ 继承所有 [ProjectionProps](#12-projectionprops-参数说明) 属性。
158
+
159
+ ### Events
160
+
161
+ | 事件名称 | 参数类型 | 说明 |
162
+ | ------------------ | ----------------------------------- | ----------------------- |
163
+ | `bindingSubmit` | `(formData: Coordinate[]) => void` | 模型绑定完成后触发 |
164
+ | `projectionSubmit` | `(result: ProjectionModel) => void` | 模型/空间映射完成后触发 |
165
+
166
+ ### Slots
167
+
168
+ | 插槽名称 | 参数类型 | 说明 |
169
+ | ---------------- | ----------- | --------------- |
170
+ | `leftBimViewer` | `SlotProps` | 左侧BIM视图插槽 |
171
+ | `rightBimViewer` | `SlotProps` | 右侧BIM视图插槽 |
172
+
173
+ ## 2.2 ModelPicker 模型选择器
174
+
175
+ 用于选择模型坐标系的级联选择器组件。
176
+
177
+ ### Props
178
+
179
+ | 属性 | 类型 | 默认值 | 说明 |
180
+ | -------------------- | -------------- | ------ | ---------------- |
181
+ | `defaultValue` | `number` | - | 默认选中项ID |
182
+ | `coordinateTree` | `Coordinate` | - | 坐标系树 |
183
+ | `activedCoordinate` | `Coordinate` | - | 被激活的坐标系 |
184
+ | `includeModelType` | `number[]` | - | 包含的模型类型 |
185
+ | `excludedCoordinate` | `Coordinate[]` | `[]` | 排除的坐标系列表 |
186
+ | `showShortName` | `boolean` | `true` | 是否显示缩写名 |
187
+
188
+ ### Events
189
+
190
+ | 事件名称 | 参数类型 | 说明 |
191
+ | -------- | --------------------------- | -------------- |
192
+ | `change` | `(value: number[]) => void` | 选择变化时触发 |
193
+
194
+ ## 2.3 SpacePicker 空间选择器
195
+
196
+ 用于选择空间坐标系的级联选择器组件。
197
+
198
+ ### Props
199
+
200
+ | 属性 | 类型 | 默认值 | 说明 |
201
+ | -------------------- | -------------- | ------ | ---------------- |
202
+ | `defaultValue` | `number` | - | 默认选中项ID |
203
+ | `coordinateTree` | `Coordinate` | - | 坐标系树 |
204
+ | `excludedCoordinate` | `Coordinate[]` | `[]` | 排除的坐标系列表 |
205
+ | `showShortName` | `boolean` | `true` | 是否显示缩写名 |
206
+
207
+ ### Events
208
+
209
+ | 事件名称 | 参数类型 | 说明 |
210
+ | -------- | --------------------------- | -------------- |
211
+ | `change` | `(value: number[]) => void` | 选择变化时触发 |
212
+
213
+ ## 2.4 其他内部组件
214
+
215
+ | 组件名称 | 说明 |
216
+ | ------------------ | ---------------------------- |
217
+ | `ProjectionViewer` | 映射视图容器,包含双视图布局 |
218
+ | `SpaceBindViewer` | 空间绑定视图 |
219
+ | `SpaceMapViewer` | 空间地图视图 |
220
+ | `BimControl` | BIM模型控制组件 |
221
+ | `CadControl` | CAD图纸控制组件 |
222
+ | `GeoControl` | 地理控制组件 |
223
+ | `ScaleControl` | 比例尺控制组件 |
224
+ | `TitleControl` | 标题控制组件 |
225
+ | `ConfigProvider` | 配置提供者组件 |
226
+ | `FlatModelPicker` | 扁平模型选择器 |
227
+ | `FlatSpacePicker` | 扁平空间选择器 |
228
+ | `GeoModal` | 地理信息弹窗 |
229
+ | `HeightModal` | 高度设置弹窗 |
230
+
231
+ ---
232
+
233
+ # 3. 枚举类型
234
+
235
+ ## 3.1 MappingType 映射类型
236
+
237
+ | 值 | 说明 |
238
+ | -------------- | ------------------------------------------------------ |
239
+ | `SpaceMapping` | 空间映射 (0) |
240
+ | `ModelMapping` | 模型映射 (1) |
241
+ | `ScaleMapping` | 比例尺映射 (2) |
242
+ | `FixedMapping` | 固定映射 (3) - 如空间首次绑定模型并且模型是BIM直接映射 |
243
+
244
+ ## 3.2 PointActionType 点位操作类型
245
+
246
+ | 值 | 说明 |
247
+ | -------- | -------- |
248
+ | `Point1` | 第一个点 |
249
+ | `Point2` | 第二个点 |
250
+
251
+ ---
252
+
253
+ # 4. 类型定义
254
+
255
+ ## 4.1 AppSetting 应用设置
256
+
257
+ ```typescript
258
+ type AppSetting = AppConfig & {
259
+ theme?: ThemeConfig; // 主题配置
260
+ flattenPicker?: boolean; // 选项扁平化
261
+ showTitleHead?: boolean; // 是否显示标题头
262
+ };
263
+ ```
264
+
265
+ ## 4.2 ProjectionProps 投影组件参数
266
+
267
+ ```typescript
268
+ type ProjectionProps = {
269
+ appSetting: AppSetting; // 应用程序配置
270
+ mapSetting?: MapSetting; // 地图配置
271
+ projectId: number; // 项目唯一标识符
272
+ bindModelId?: number; // 绑定的模型标识符
273
+ bindCoordinateId?: number; // 绑定的目标坐标系标识符
274
+ srcCoordinateId?: number; // 映射源坐标系标识符
275
+ dstCoordinateId?: number; // 映射目标坐标系标识符
276
+ srcModelType?: number[]; // 映射指定源坐标系的模型类型
277
+ dstModelType?: number[]; // 映射指定目标坐标系的模型类型
278
+ };
279
+ ```
280
+
281
+ ## 4.3 MapSetting 地图配置
282
+
283
+ ```typescript
284
+ type MapSetting = {
285
+ options?: MapOptions; // 地图选项
286
+ tileLayers: TileLayer[]; // 瓦片图层列表
287
+ keywordSearchFn?: (keyword: string) => Promise<GeoPoint | undefined>; // 地理编码查询
288
+ };
289
+ ```
290
+
291
+ ## 4.4 TileLayer 瓦片图层
292
+
293
+ ```typescript
294
+ type TileLayer = {
295
+ url: string; // 瓦片url
296
+ options?: TileLayerOptions; // 瓦片选项
297
+ };
298
+ ```
299
+
300
+ ## 4.5 ControlProps 控制组件传参
301
+
302
+ ```typescript
303
+ type ControlProps = {
304
+ mapSetting?: MapSetting; // 地图配置
305
+ currentProject?: ProjectModel; // 项目详情
306
+ currentModel?: Coordinate; // 当前模型
307
+ points?: Point[]; // bim模型坐标点
308
+ connected?: boolean; // 是否连接
309
+ };
310
+ ```
311
+
312
+ ## 4.6 SlotProps 插槽状态
313
+
314
+ ```typescript
315
+ interface SlotProps {
316
+ currentModel?: Coordinate; // 当前模型坐标系
317
+ points: Point[]; // 点坐标数组
318
+ setPoint1: (position: Vector3) => void; // 设置第一个点坐标
319
+ setPoint2: (position: Vector3) => void; // 设置第二个点坐标
320
+ }
321
+ ```
322
+
323
+ ---
324
+
325
+ # 5. 配置常量
326
+
327
+ ## 5.1 MAP_OPTIONS 地图选项
328
+
329
+ ```typescript
330
+ {
331
+ center: [31.3016935, 120.5810725], // 地图初始化时经纬度
332
+ zoom: 17, // 地图初始化时的缩放等级
333
+ attributionControl: true, // 是否将版权控件添加到地图中
334
+ zoomControl: false, // 是否将缩放控件添加到地图中
335
+ }
336
+ ```
337
+
338
+ ## 5.2 TILE_LAYERS 瓦片图层配置
339
+
340
+ 默认天地图瓦片图层配置,包含:
341
+
342
+ - 矢量底图图层
343
+ - 矢量标注图层
344
+
345
+ ## 5.3 GEO_CODER_URL 地理编码地址
346
+
347
+ 天地图地理编码查询服务地址。
348
+
349
+ ## 5.4 MAP_SETTING 地图设置
350
+
351
+ 组合了地图选项、瓦片图层和地理编码查询函数的完整配置。
352
+
353
+ ---
354
+
355
+ # 6. 工具函数
356
+
357
+ ## 6.1 useResizeObserver 尺寸观察
358
+
359
+ 用于监听元素尺寸变化的 Vue 组合式函数。
360
+
361
+ | 参数 | 类型 | 说明 |
362
+ | ---------- | -------------------------------------------- | -------- |
363
+ | `target` | `MaybeRef<HTMLElement \| null \| undefined>` | 目标元素 |
364
+ | `callback` | `(entries: ResizeObserverEntry[]) => void` | 回调函数 |
365
+ | `options` | `UseResizeObserverOptions` | 选项 |
366
+
367
+ **返回值**: `{ width: Ref<number>, height: Ref<number>, stop: () => void }`
368
+
369
+ ## 6.2 withInstall 安装包装器
370
+
371
+ 用于为 Vue 组件添加 install 方法的包装函数,支持组件全局注册。
372
+
373
+ | 参数 | 类型 | 说明 |
374
+ | --------- | ---- | -------- |
375
+ | `options` | `T` | 组件选项 |
376
+
377
+ **返回值**: `WithInstall<T>`
378
+
379
+ ## 6.3 camelize 驼峰转换
380
+
381
+ 将短横线命名转换为驼峰命名。
382
+
383
+ | 参数 | 类型 | 说明 |
384
+ | ----- | -------- | ---------------- |
385
+ | `str` | `string` | 短横线命名字符串 |
386
+
387
+ **返回值**: `string` - 驼峰命名字符串
388
+
389
+ ---
390
+
391
+ # 7. API接口
392
+
393
+ ## 7.1 getModelDetail 获取模型详情
394
+
395
+ 获取模型详细信息。
396
+
397
+ | 参数 | 类型 | 说明 |
398
+ | --------- | --------------------- | -------- |
399
+ | `params` | `Record<string, any>` | 请求参数 |
400
+ | `options` | `RequestOptions` | 请求选项 |
401
+
402
+ **返回值**: `Promise<ViewModel>`
403
+
404
+ ## 7.2 getGeoPoint 地理编码查询
405
+
406
+ 根据关键词查询地理坐标。
407
+
408
+ | 参数 | 类型 | 说明 |
409
+ | --------- | -------- | ---------- |
410
+ | `keyWord` | `string` | 查询关键词 |
411
+
412
+ **返回值**: `Promise<GeoPoint \| undefined>`
413
+
414
+ ---
415
+
416
+ # 8. 导出说明
417
+
418
+ ```js
419
+ import 'leaflet/dist/leaflet.css';
420
+ import { ModelPicker, Projection as ProjectionPlugin, SpacePicker } from '@vsleem-realsee-viewer/projection-plugin';
421
+
422
+ /** 枚举导出 */
423
+ export { MappingType } from '@vsleem-realsee-viewer/projection-plugin';
424
+
425
+ /** 组件导出 */
426
+ export {
427
+ ModelPicker, // 模型选择器
428
+ ProjectionPlugin, // 映射组件
429
+ SpacePicker, // 空间选择器
430
+ } from '@vsleem-realsee-viewer/projection-plugin';
431
+
432
+ /** 类型导出 */
433
+ export type {
434
+ AppSetting, // 应用程序配置
435
+ MapOptions, // 地图选项
436
+ MapSetting, // 地图配置参数
437
+ ProjectionProps, // 投影组件参数
438
+ SlotProps, // 插槽状态
439
+ ThemeConfig, // 主题配置
440
+ TileLayer, // 瓦片图层
441
+ TileLayerOptions, // 瓦片图层选项
442
+ } from '@vsleem-realsee-viewer/projection-plugin';
443
+
444
+ /** 配置常量导出 */
445
+ export {
446
+ GEO_CODER_URL, // 地理编码地址
447
+ MAP_OPTIONS, // 地图选项
448
+ TILE_LAYERS, // 瓦片图层配置
449
+ } from '@vsleem-realsee-viewer/projection-plugin';
450
+ ```
451
+
452
+ ---
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vsleem-realsee-viewer/projection-plugin",
3
- "version": "2.1.2",
3
+ "version": "2.1.4",
4
4
  "description": "Projection plugin for VSLeem RealSee Viewer",
5
5
  "main": "./dist/index.umd.js",
6
6
  "module": "./dist/index.mjs",
@@ -13,11 +13,11 @@
13
13
  "dist"
14
14
  ],
15
15
  "dependencies": {
16
- "@vsleem-realsee-viewer/shared": "2.1.2"
16
+ "@vsleem-realsee-viewer/shared": "2.1.4"
17
17
  },
18
18
  "peerDependencies": {
19
19
  "vue": "^3.0.0",
20
- "@vsleem-realsee-viewer/shared": "2.1.2"
20
+ "@vsleem-realsee-viewer/shared": "2.1.4"
21
21
  },
22
22
  "peerDependenciesMeta": {
23
23
  "vue": {