重建预览

本文介绍如何发起重建及预览任务,如何通过轮询获取相应的任务状态。

前置条件

在开始对主场景进行重建预览前,需要建立必要的关联关系,否则无法重建成功,即【获取及提交数据】。

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);   // 查询预览任务状态
}