本文介绍如何发起重建及预览任务,如何通过轮询获取相应的任务状态。
前置条件
在开始对主场景进行重建预览前,需要建立必要的关联关系,否则无法重建成功,即【获取及提交数据】。
1、重建及状态查询
通过【模型重建】接口来针对指定主场景发起模型重建任务,再调用【查询场景重建任务状态】接口获取主场景的重建任务完成状态。
前端示例代码:
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
const service = async (url, params) => {
const result = await axios.post(url, params);
if(res.Success){
return res;
}else {
//...
}
};
const getSceneBuildTaskStatus = saync (SceneId) => {
const result = await service('/GetSceneBuildTaskStatus', {sceneId});
if (result.Success) {
const { Status, ErrorCode, ErrorMsg, SceneId } = result;
switch (Status) {
case "init":
case "processing":
getSceneBuildTaskStatus(SceneId);
break;
case "failed":
console.log(`重建失败,错误码${ErrorCode},错误消息${ErrorMsg}`);
break;
case "canceled":
console.log(`重建取消`);
break;
case "succeed":
console.log(`重建成功`);
}
}else{
//...
}
);
const result = service("/LabelBuild", { SceneId: 6794 })
if (result.Success) {
//模型重建请求发送成功,开始轮询重建任务状态
getSceneBuildTaskStatus(SceneId);
}
2、预览及状态查询
通过【预览】接口来针对指定主场景发起预览任务,再调用【查询预览任务状态】接口获取主场景的预览任务完成状态,每次有效的预览链接有效性为12小时,超时后,需要再次执行预览。
前端示例代码:
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
const connData = {
// code
}
const service = async (url, params) => {
const result = await axios.post(url, params);
if(res.Success && res.Message === 'success'){
return res;
}else {
//...
}
};
const getTempPreview = saync (SceneId,PreviewUrl) => {
const result = await service('/TempPreviewStatus', {sceneId});
if (res.Success) {
const { Status } = res;
switch (Status) {
case "processing":
getTempPreview(SceneId);
break;
case "failed":
console.log(`获取预览链接失败`);
break;
case "succeed":
console.log(`获取预览链接成功${PreviewUrl}`);
break;
}
}
}else{
//...
}
);
const result = service("/TempPreview", { SceneId: 6794 })
if (result.Success) { // 预览请求发送成功,开始轮询预览任务状态
const { PreviewUrl, SceneId } = result;
getTempPreview(SceneId, PreviewUrl); // 查询预览任务状态
}
文档内容是否对您有帮助?