Skip to content

基础 Viewer 示例

本示例演示如何以最小成本创建 Viewer3D,并完成模型加载、加载状态监听与错误处理。

完整示例代码

html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>NIVIOBIM Viewer 最小示例</title>
</head>
<body>
  <div id="viewer" style="position:fixed;inset:0"></div>
  <div id="log" style="position:fixed;left:16px;top:16px;z-index:10;background:#111;color:#fff;padding:8px 10px;border-radius:8px;font-size:12px;">
    初始化中...
  </div>

  <script type="module">
    import * as GraphicsEngine from './core/Viewer3D@v2.2.0-rc1.module.js';

    const logEl = document.getElementById('log');
    const container = document.getElementById('viewer');

    const config = new GraphicsEngine.Config('地质博物馆建筑', container);
    config.setStaticPath('../public/models/');
    config.currentLoadType = GraphicsEngine.Config.LoadType.Local;

    const viewer3D = GraphicsEngine.Viewer3D.Initializer(
      config,
      (progress) => {
        if (progress.loadType === 'STREAM') {
          logEl.textContent = progress.status === 'close'
            ? '模型加载完成'
            : `流式加载 ${progress.loaded}/${progress.total}`;
        } else {
          logEl.textContent = `状态:${progress.status || 'loading'}`;
        }
      },
      (error) => {
        logEl.textContent = '加载失败';
        console.error(error);
      }
    );

    window.viewer3D = viewer3D;
  </script>
</body>
</html>

关键步骤说明

1. 创建配置对象

javascript
const config = new GraphicsEngine.Config('model-name', container);
config.setStaticPath('../public/models/');
config.currentLoadType = GraphicsEngine.Config.LoadType.Local;

2. 初始化 Viewer3D

javascript
const viewer3D = GraphicsEngine.Viewer3D.Initializer(config, onProgress, onError);

3. 处理加载状态与错误

javascript
function onProgress(progress) {
  console.log(progress);
}

function onError(error) {
  console.error(error);
}

相关 API

逆维悦动 智建未来