测量
PanoMeasurePlugin
功能说明
用于在空间中测量或展示标尺数据。
效果展示
快速开始
声明配置
pc
import type { const PanoMeasurePlugin: (five: Five, parameters: PanoMeasureParameterType) => MeasureController
PanoMeasurePlugin } from '@realsee/dnalogel'
const const pcConfig: PanoMeasureParameterType
pcConfig: type Parameters<T extends (...args: any) => any> = T extends (...args: infer P) => any ? P : never
Obtain the parameters of a function type in a tuple
Parameters<typeof const PanoMeasurePlugin: (five: Five, parameters: PanoMeasureParameterType) => MeasureController
PanoMeasurePlugin>[1] = {
PanoMeasureParameterType.useGuideController?: boolean | GuideControllerParams | undefined
useGuideController: true,
PanoMeasureParameterType.useUIController?: boolean | UIControllerParams | undefined
useUIController: {
UIControllerParams.useNewUI?: boolean | undefined
useNewUI: true,
UIControllerParams.showExit?: boolean | undefined
showExit: true,
},
PanoMeasureParameterType.editParams?: EditParameter | undefined
editParams: {
EditParameter.pointSelectorMode?: PointSelectorMode | undefined
pointSelectorMode: 'cursor',
EditParameter.allowMeasureType?: MeasureType[] | undefined
allowMeasureType: ['line', 'area'],
EditParameter.autoEndConfig?: autoEndConfig | undefined
autoEndConfig: { autoEndConfig.line?: number | null | undefined
line: null },
},
PanoMeasureParameterType.openParams?: OpenParameter | undefined
openParams: {
OpenParameter.isMobile?: boolean | undefined
isMobile: false,
},
PanoMeasureParameterType.magnifierParams?: MagnifierParameter | undefined
magnifierParams: {
MagnifierParameter.height?: number | undefined
height: 120,
MagnifierParameter.scale?: number | undefined
scale: 2,
MagnifierParameter.width?: number | undefined
width: 120,
dragEnabled?: boolean | undefined
允许拖动放大镜
dragEnabled: false,
autoFixPCPosition?: boolean | undefined
renderWithPoint 时,是否应该自动更新放大镜的位置
autoFixPCPosition: true,
},
PanoMeasureParameterType.pointSelectorConfig?: Partial<Config> | undefined
pointSelectorConfig: {
actionIfNoIntersection?: ActionIfNoIntersection | undefined
actionIfNoIntersection: 'disable',
},
}
移动设备
import type { const PanoMeasurePlugin: (five: Five, parameters: PanoMeasureParameterType) => MeasureController
PanoMeasurePlugin } from '@realsee/dnalogel'
const const mobileConfig: PanoMeasureParameterType
mobileConfig: type Parameters<T extends (...args: any) => any> = T extends (...args: infer P) => any ? P : never
Obtain the parameters of a function type in a tuple
Parameters<typeof const PanoMeasurePlugin: (five: Five, parameters: PanoMeasureParameterType) => MeasureController
PanoMeasurePlugin>[1] = {
PanoMeasureParameterType.useGuideController?: boolean | GuideControllerParams | undefined
useGuideController: true,
PanoMeasureParameterType.useUIController?: boolean | UIControllerParams | undefined
useUIController: {
UIControllerParams.useNewUI?: boolean | undefined
useNewUI: true,
},
PanoMeasureParameterType.editParams?: EditParameter | undefined
editParams: {
EditParameter.allowMeasureType?: MeasureType[] | undefined
allowMeasureType: ['line', 'area'],
EditParameter.pointSelectorMode?: PointSelectorMode | undefined
pointSelectorMode: 'fixed',
EditParameter.autoEndConfig?: autoEndConfig | undefined
autoEndConfig: {
autoEndConfig.line?: number | null | undefined
line: 2,
},
},
PanoMeasureParameterType.openParams?: OpenParameter | undefined
openParams: {
OpenParameter.isMobile?: boolean | undefined
isMobile: true,
},
PanoMeasureParameterType.magnifierParams?: MagnifierParameter | undefined
magnifierParams: {
MagnifierParameter.height?: number | undefined
height: 120,
MagnifierParameter.scale?: number | undefined
scale: 2,
MagnifierParameter.width?: number | undefined
width: 120,
dragEnabled?: boolean | undefined
允许拖动放大镜
dragEnabled: false,
autoFixPCPosition?: boolean | undefined
renderWithPoint 时,是否应该自动更新放大镜的位置
autoFixPCPosition: false,
},
}
初始化
通过 five plugins 方式初始化
import { const PanoMeasurePlugin: (five: Five, parameters: PanoMeasureParameterType) => MeasureController
PanoMeasurePlugin } from '@realsee/dnalogel'
import { class Five
如视 VR Web展示器
Five } from '@realsee/five'
// 加载five插件
const const five: Five
five = new new Five(initArgs?: FiveInitArgs | undefined): Five
如视 VR Web展示器
Five({
FiveInitArgs.plugins?: (((five: Five) => void) | [Plugin: ((five: Five) => any) | ((five: Five, parameters: any) => any), instanceName: string | null] | [Plugin: ((five: Five) => any) | ((five: Five, parameters: any) => any), instanceName: string | null, parameters: any] | [Plugin: (five: Five) => any, instanceName: string | null])[] | undefined
插件定义
plugins: [
[const PanoMeasurePlugin: (five: Five, parameters: PanoMeasureParameterType) => MeasureController
PanoMeasurePlugin, 'panoMeasurePlugin', const pcConfig: PanoMeasureParameterType
pcConfig] // 根据实际情况选择 pcConfig 或 mobileConfig
]
})
const const panoMeasurePlugin: MeasureController
panoMeasurePlugin = const five: Five
five.Five.plugins: {
[key: string]: any;
}
插件暴露的方法
plugins.__type[string]: any
panoMeasurePlugin as type ReturnType<T extends (...args: any) => any> = T extends (...args: any) => infer R ? R : any
Obtain the return type of a function type
ReturnType<typeof const PanoMeasurePlugin: (five: Five, parameters: PanoMeasureParameterType) => MeasureController
PanoMeasurePlugin>
也可以自己初始化
import { const PanoMeasurePlugin: (five: Five, parameters: PanoMeasureParameterType) => MeasureController
PanoMeasurePlugin } from '@realsee/dnalogel'
// five 为 Five 实例;根据实际情况选择 pcConfig 或 mobileConfig
const const panoMeasurePlugin: MeasureController
panoMeasurePlugin = function PanoMeasurePlugin(five: Five, parameters: PanoMeasureParameterType): MeasureController
PanoMeasurePlugin(const five: Five
five, const pcConfig: PanoMeasureParameterType
pcConfig)
数据展示
获取数据
您可以参考 开放 API 了解如何获取标尺数据。对应接口为:/open/v3/ruler/search
加载数据并展示
const panoMeasurePlugin: MeasureController
panoMeasurePlugin.MeasureController.load(data: MeasurePluginData | MeasurePluginServerData): void
加载数据
load(const serverData: MeasurePluginServerData
serverData)
const panoMeasurePlugin: MeasureController
panoMeasurePlugin.MeasureController.enable(config?: {
mode: Mode;
} | undefined): void
插件功能入口
enable({ mode: Mode
mode: 'View' })
关闭数据展示
const panoMeasurePlugin: MeasureController
panoMeasurePlugin.MeasureController.disable: () => void
关闭插件功能
disable()
测量
开启测量功能
const panoMeasurePlugin: MeasureController
panoMeasurePlugin.MeasureController.enable(config?: {
mode: Mode;
} | undefined): void
插件功能入口
enable() // pc
const panoMeasurePlugin: MeasureController
panoMeasurePlugin.MeasureController.enable(config?: {
mode: Mode;
} | undefined): void
插件功能入口
enable({ mode: Mode
mode: 'Edit' }) // mobile
关闭测量功能
const panoMeasurePlugin: MeasureController
panoMeasurePlugin.MeasureController.disable: () => void
关闭插件功能
disable()