测量插件 用于在如视 VR 空间中测量距离和面积,帮助用户直观了解空间尺寸。
目前提供两个测量插件:
| 对比项 | MeasurePlugin (新版) | PanoMeasurePlugin (经典版) |
|---|
| 服务端数据 | 不依赖 | 支持加载 /open/v3/ruler/search 接口数据 |
| 数据格式 | { points: Vector3[] }[] | MeasurePluginServerData (polyline JSON) |
| 数据持久化 | 需自行实现 | 支持 load() / toJson() 序列化 |
| 功能 | MeasurePlugin (新版) | PanoMeasurePlugin (经典版) |
|---|
| 测距 | ✅ | ✅ |
| 测面积 | ✅ (需配合 Util 计算) | ✅ (内置计算和显示) |
| 多边形自动闭合 | ✅ | ✅ |
| 直角三角形辅助线 | ✅ | ❌ |
| 端点拖拽重定位 | ✅ (长按拖拽) | ❌ |
| 放大镜 | ✅ (内置 PointSelector) | ✅ (可配置参数) |
| 内置 UI 控制器 | ❌ | ✅ (支持 PC/移动端) |
| 引导提示 | ❌ | ✅ (GuideController) |
| 快捷键支持 | ✅ | ✅ |
| 单位切换 | ✅ (setUnit) | ✅ (changeConfigs) |
| 精度设置 | ✅ (setPrecision) | 固定 2 位小数 |
| 对比项 | MeasurePlugin (新版) | PanoMeasurePlugin (经典版) |
|---|
| 工作模式 | 单一模式 | Watch / Edit / Mixed / View 四种模式 |
| PC 端默认 | 直接开始测量 | Watch 模式 (观看已有数据) |
| 移动端支持 | 通用 | Mixed 模式 (专门优化) |
| 模式切换 | 无需切换 | changeMode() / edit() / save() |
| 对比项 | MeasurePlugin (新版) | PanoMeasurePlugin (经典版) |
|---|
| 核心事件 | measureEnd (返回结束原因 + 点坐标) | 多种细粒度事件 |
| 编辑事件 | undo | editedPolylineChange, editedDashedLineChange, revoke, complete 等 |
| 状态事件 | ❌ | enable, disable, modeChange, measureTypeChange |
| 选点事件 | ❌ (通过 measureEnd 获取) | pointsChange, anchorChange, getStartPoint, getEndPoint |
| 交互事件 | ❌ | selectedChange, wantsDragLine, readyComplete |
MeasurePlugin (新版) - 精简 API:
// 核心方法
measure() // 开始测量
endMeasure() // 结束测量
undo() // 撤销上一步
cancel() // 取消本次测量
clear() // 清空所有测量
dispose() // 销毁插件
// 配置方法
setUnit(unit) // 切换单位
setPrecision(n) // 设置精度
setLengthEnable(b) // 显示/隐藏长度标签
load(data) // 加载数据
PanoMeasurePlugin (经典版) - 完整 API:
// 生命周期
enable({ mode }) // 启用插件
disable() // 禁用插件
dispose() // 销毁插件
// 模式控制
changeMode(mode) // 切换模式 (Watch/Edit/Mixed/View)
edit(measureType) // 进入编辑模式
save({ mode }) // 保存编辑
// 数据操作
load(data) // 加载数据
toJson() // 导出数据
clear() // 清空数据
// 编辑操作
revoke() // 撤销
changeMeasureType() // 切换测量类型 (line/area)
removePolyline() // 删除折线
removeArea() // 删除面积
// 交互控制
highlightLine() // 高亮线段
clearHighlightLines() // 清除高亮
setCustomText() // 设置线段文本
changeConfigs() // 更改配置
| 场景 | 推荐插件 |
|---|
| 快速集成标准测量功能 | PanoMeasurePlugin |
| 需要加载/保存服务端测量数据 | PanoMeasurePlugin |
| 需要内置 UI 和引导提示 | PanoMeasurePlugin |
| 移动端专门优化体验 | PanoMeasurePlugin |
| 需要精细控制编辑流程和状态 | PanoMeasurePlugin |
| 自定义测量 UI | MeasurePlugin |
| 需要获取测量点坐标进行自定义计算 | MeasurePlugin |
| 需要监听测量结束事件 | MeasurePlugin |
| 需要动态调整精度 | MeasurePlugin |
| 端点拖拽重定位功能 | MeasurePlugin |
| 直角三角形辅助线 | MeasurePlugin |
| 轻量级集成,最小化依赖 | MeasurePlugin |