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