> 加载指定点云模型
API:
obvApi.createPntsTileset(pntsDocument: Document3dTile, options)
* pntsDocument:点云模型文件,可通过指定urn获取对应的模型文件。
* options:加载选项
示例:
// 创建实例需要传入的参数,部署环境serviceConfig 和 用户有效期getAccessToken
const applicationOptions = {
getAccessToken: this.getAccessToken,
refreshAccessToken: this.getAccessToken,
serviceConfig: { // 引擎内部的请求路径通过origin + apiContextPath拼接,同样会被代理到远程引擎服务的地址
origin: `${window.location.protocol}//${window.location.host}`, // host
apiContextPath: '/zt/obv/bimserver/viewing/v3' // path
}
}
// 返回token
getAccessToken(callBack) {
callBack(this.obvToken, 36000)
}
// 点云模型文件标识urn,文件轻量化完成后生成
let urn1 = 'urn:bimbox.file:1CdIsX5fxM0/1Dl798ReiB1?version=1';
let urn2 = 'urn:bimbox.file:1CdIsX5fxM0/1Dl798ReiB2?version=1';
let urnList = [];
urnList.push(urn1);
urnList.push(urn2);
// 实例化 Builder,用于模型加载
builder = new OBV.Api.ObvBuilder();
// 创建 Application 对象
const application = await builder.buildApplication(applicationOptions);
// 创建 viewer 容器, 创建API
obvApi = await builder.buildViewer3d(application, document.getElementById('viewer-one-div'));
window.obvApi = obvApi;
//分别创建每个模型的document 管理视图
urnMap = new Map();
for(let i = 0; i < urnList.length; i++) {
// 创建 document 管理视图,加载完成后可以调用接口
const document = await builder.loadDocument(application, urnList[i], 'las-lod');
urnMap.set(urnList[i], document);
}
options = {
applicationId: application.id
}
// 加载指定的点云模型
await obvApi.createPntsTileset(urnMap.get(urn1), options);
await obvApi.createPntsTileset(urnMap.get(urn2), options);
// 与非点云模型合并显示
let urn = 'urn:bimbox.file:1CdIsX5fxM0/1DweTTm30Tu?version=1';
const bimDocument = await builder.loadDocument(applicationOptions, urn, 'rvt-lod');
const viewer3dItems = bimDocument.get3dGeometryItems();
builder.load3dModels(obvApi, {
obvDocument: bimDocument,
viewer3dItem: viewer3dItems[0],
});
> 卸载指定点云模型
API:
obvApi.removePntsTileset(urn: string)
* urn: 卸载该urn对应的点云模型
示例:
this.obvApi.removePntsTileset('urn:bimbox.file:1CdIsX5fxM0/1Dl798ReiB1?version=1');
> 卸载全部点云模型
API:
obvApi.removeAllPntsTileset()
> 设置点云模型高度
API:
obvApi.setPntsHeight(height: number, urn?: string)
* height:点云模型的设定高度
* urn?: 可选参数,当输入urn时,将修改该urn对应点云模型的高度;当不输入时,修改所有点云模型的高度。
示例:
this.obvApi.setPntsHeight(20);
this.obvApi.setPntsHeight(10,'urn:bimbox.file:1CdIsX5fxM0/1Dl798ReiB1?version=1');
> 显示/隐藏点云模型
obvApi.setPntsVisible(isVisible: boolean, urn?: string)
* isVisible:设置true为显示模型,false为隐藏模型
* urn?: 可选参数,当输入urn时,将修改该urn对应点云模型的显隐状态;当不输入时,修改所有点云模型的显隐状态。
示例:
this.obvApi.setPntsVisible(false);
this.obvApi.setPntsVisible(false,'urn:bimbox.file:1CdIsX5fxM0/1Dl798ReiB1?version=1');
> 显示/隐藏点云模型
API:
obvApi.setPntsPointSize(size: number,urn?: string)
* size:点的大小,默认为1.0,最小值为1.0。
示例:
this.obvApi.setPntsPointSize(0.3);
this.obvApi.setPntsPointSize(0.3,'urn:bimbox.file:1CdIsX5fxM0/1Dl798ReiB1?version=1');
> 设置点云模型透明度
API:
obvApi.setPntsOpacity(opacity: number,urn?: string)
* opacity:透明度数值,取值范围为 0.0-1.0,0.0为完全透明,1.0为完全不透明。
示例:
this.obvApi.setPntsOpacity(0.3);
this.obvApi.setPntsOpacity(0.3,'urn:bimbox.file:1CdIsX5fxM0/1Dl798ReiB1?version=1');