Skip to content

MapmostSDK/digital-twin-stadium

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

简介

本项目是基于 Mapmost SDK for WebGL 实现的一个数字孪生智慧场馆案例,旨在助力场馆智能监控与安全管理。

Static Badge Static Badge Static Badge Static Badge

案例效果

☞ 在线预览

☞ 在线体验

案例功能

1、综合态势

  • 场馆区域分布:可展示场馆内各个区域的功能划分。
  • 人员热力:实时展示场馆内人员密集程度。

2、智慧安防

  • 摄像头分布:可全面监控重点设备,接入监控数据,随时调取查看监控画面。
  • 显示器分布:可实时捕捉设备运行状态,沉浸式查看显示屏画面。
  • 巡逻人员分布:可实时监控人员位置并查看人员信息,全面掌控员工工作状态。

3、应急管理

  • 消防路线:可智能识别预警火灾风险,可视化展示火灾区域。根据火灾报警区域,可快速规划场馆内紧急疏散的最佳路径。
  • 游客管理:可快速响应安全事件,确保现场的安全。

项目运行

运行前请确保已经安装以下环境

  • node.js

    安装

    • 以 VS Code 为例,打开工程文件夹,点击 终端(Terminal) -> 新建终端(New Terminal),并在终端中输入“npm install”命令后回车即可。
    npm install
    

    修改授权码

    运行前请确保已经免费获取 SDK 授权码

    • ☞ 点击免费申请
    • src\components\Map.vue文件中找到如下代码,将userId替换为您获取的授权码。
      // 地图初始化
      let map = new mapmost.Map({
        container: 'map-container',
        style: {
          version: 8,
          sources: {},
          layers: [
            {
              id: 'land',
              type: 'background',
              paint: {
                'background-color': 'rgba(36, 36, 36, 1)',
              },
            },
          ],
        },
        doubleClickZoom: false,
        center: [113.31932929156369, 23.140535151102924],
        zoom: 17.30282437614864,
        pitch: 45.991018037067875,
        userId: '***', // 请输入您获取的授权码
        env3D: {
          exposure: 2,
        },
      });

    运行

    用于启动并运行应用程序,以便开发人员在本地进行开发和测试。

    • 运行命令:
    npm run dev
    

    替换模型

    如果你想要替换成自己的模型看一下效果,可以修改 Map.vue 中关于模型加载的方法:

    // 设置模型资源
    let models_obj = [
      "SM_QXout_1", "SM_AotiOut_Botton", "SM_AotiOut_M1", "SM_AotiOut_M2", "SM_AotiOut_M3", "SM_AotiOut_M4", "SM_AotiOut_Top"   // 替换为你模型的名称
    ].map(item => ({
      type: 'glb', // 替换为你模型的格式,支持glb/gltf/fbx/obj
      url: './assets/models/' + item + '.mm', // 模型文件路径,代码中以mm为后缀的模型文件是基于glb模型的Mapmost加密文件,需与decryptWasm参数配套使用
      decryptWasm:'https://delivery.mapmost.com/cdn/b3dm_codec/0.0.2-alpha/sdk_b3dm_codec_wasm_bg_opt.wasm',  // Mapmost加密模型的配置参数,非Mapmost加密模型加载无需设置该参数
      // mtl:'<your mtl url>' // 如果模型是obj格式的,需要增加该参数,将值替换为你模型材质的文件路径
      // dracoUrl:'https://delivery.mapmost.com/cdn/sdk/lib/draco/' // 如果模型是glb/gltf格式的,又经过几何压缩的,需要添加该参数进行解压
      // ktx2ParseUrl:'https://delivery.mapmost.com/cdn/sdk/lib/basis/' // 如果模型是glb/gltf格式的,又经过ktx2纹理压缩的,需要添加该参数进行解压
    }));
    
    // 模型图层参数
    let options = {
      id: 'model_id1',    // 模型id
      models: models_obj, // 上述定义的模型资源
      outline: true,      // 是否允许轮廓高亮
      type: 'model',      // 图层类型
      funcRender: function (gl, matrix) {
        if (modelLayer) {
          modelLayer.renderMarker(gl, matrix);
        }
      },
      center: [113.31936068187213, 23.140535719438375, 8], // 如果你的模型有中心点坐标,则替换,如果没有,可以不变
      callback: function (group, layer) {
        // 其余代码省略
      },
    };

    打包

    用于构建和打包你的应用程序,使其准备好在生产环境中部署。

    • 运行命令:
    npm run build
    

    工程列表

    digital-twin-stadium/
    │
    ├── public/                     # 公共文件,不会被Webpack处理
    │   ├── assets                  # 静态资源,如模型、图片等
    │   └── libs                    # 引用文件
    │
    ├── src/                        # 源代码目录
    │   ├── api/                    # 地图场景控制
    │   │   ├── MapApi.js           # 地图场景设置
    │   │   └── SceneApi.js         # 场景环境设置
    │   │
    │   ├── assets/                 # 静态资源,如图片等
    │   │   └── images/
    │   │
    │   ├── components/             # 公共组件
    │   │   └── Map.vue
    │   │
    │   ├── layout/                 # 页面文件
    │   │   ├── LyBottom.vue
    │   │   ├── LyLeft.vue
    │   │   ├── LyLeftBottom.vue
    │   │   └── LyTop.vue
    │   │
    │   ├── App.vue                 # 主组件
    │   ├── main.js                 # 入口文件,用于创建Vue实例
    │   └── style.css               # 样式文件
    │
    ├── .gitignore                  # Git忽略文件配置
    ├── .npmrc                      # npm安装包源配置
    ├── index.html                  # 主页HTML模板
    ├── package.json                # 项目依赖和配置信息
    ├── package-lock.json           # 依赖锁定文件
    ├── README.md                   # 项目说明文档
    └── vite.config.js              # Vue项目自定义配置

核心依赖

Mapmost SDK for WebGL

核心能力

Mapmost SDK for WebGL 提供数据、服务、可视化、分析等7大类能力,该案例主要涉及以下功能:

  • 模型加载
  • 视角切换
  • 三维标签
  • 模型高亮
  • 火焰效果
  • 三维视频
  • 三维特效圆
  • 三维特效线
  • 三维热力图
  • 模型浮现动画
  • 实时视频接入

更多参考

Mapmost官网

About

a digital twin stadium case based on Mapmost SDK for WebGL

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages