VR全景编辑器v1.0版本上线,为企业提供沉浸式全景可视化服务。

news2024/9/20 20:34:30

随着物联网技术的迅速发展,可视化技术在物联网中起到越来越重要的作用,当康科技经过不懈努力,研发了自己的一款基于物联网VR全景可视化的编辑器,为企业助力可视化服务。

部分源代码::

// 基础图标图库
export const COMMOM_ICON = [
  {
    id: 1,
    url: require('@/assets/vrEditor/icon/icon01.png'),
    name: '图标1',
  },
  {
    id: 2,
    url: require('@/assets/vrEditor/icon/icon02.png'),
    name: '图标2',
  },
  {
    id: 3,
    url: require('@/assets/vrEditor/icon/icon03.png'),
    name: '图标3',
  },
  {
    id: 4,
    url: require('@/assets/vrEditor/icon/icon04.png'),
    name: '图标1',
  },
  {
    id: 5,
    url: require('@/assets/vrEditor/icon/icon05.png'),
    name: '图标1',
  },
  {
    id: 6,
    url: require('@/assets/vrEditor/icon/icon06.png'),
    name: '图标1',
  }
];

// 绑定的图标类型分类
export const ICOM_TYPE = {
  icon: {type: 1, name: '图标绑定'},
  text: {type: 2, name: '文字绑定'},
  sence: {type: 3, name: '场景绑定'},
  position: {type: 4, name: '位置绑定'},
  media: {type: 5, name: '媒体绑定'},
  website: {type: 6, name: '网址绑定'},
  html: {type: 7, name: '富文本绑定'},
};

// 热点图标类型
export const hotTypes = [
  { id: 1, label: '水泵', url: require('@/assets/icon/icon01.png') },
  { id: 2, label: '阀门', url: require('@/assets/icon/icon02.png') },
  { id: 3, label: '水箱', url: require('@/assets/icon/icon03.png') },
  { id: 4, label: '烟感', url: require('@/assets/icon/icon04.png') },
  { id: 5, label: '水浸', url: require('@/assets/icon/icon05.png') },
  { id: 6, label: '摄像头', url: require('@/assets/icon/icon06.png') },
];
<template>
  <div class="edit-sence_wrapper">
    <el-dialog
      v-model="dialogVisible"
      :title="`${sence.id ? '编辑' : '新增'}场景`"
      :width="'350px'"
      :top="'10px'"
      :modal="false"
      :close-on-click-modal="false"
      :custom-class="'edit-sence_dialog'"
      :before-close="close"
    >
      <el-form :model="form">
        <!--基础图标绑定-->
        <el-form-item label="场景ID">
          <el-input v-model="form.id" placeholder="输入名称" clearable readonly/>
        </el-form-item>
        <el-form-item label="场景名称">
          <el-input v-model="form.name" placeholder="输入名称" clearable/>
        </el-form-item>
        <el-form-item label="场景名称">
          <fileUpload
            @handleSuccess="handleSuccess"
            :fileUrl="form.panorama"
          />
        </el-form-item>
      </el-form>
      <template #footer>
        <span class="dialog-footer">
          <el-button @click="close">取消</el-button>
          <el-button type="primary" @click="save">保存</el-button>
        </span>
      </template>
    </el-dialog>
  </div>
</template>

<script setup>
import { res } from '../data/res.js';
// import store from '../../../store/index.js';
import { hotTypes } from '../utils/data.js';
import { reactive, ref, computed, defineEmits, defineProps, onMounted } from 'vue';
import { useStore } from 'vuex';
import { ElMessage } from 'element-plus';
import fileUpload from './fileUpload.vue';
const dialogVisible = ref(true);
const deviveData = ref(res);
const props = defineProps({
  sence: {} // 当前场景
});

let stores = useStore();
const iconType = computed(() => {
  return stores.state.vrViewer.type;
});

const types = ref(hotTypes);
const emits = defineEmits([
  'success',
  'close',
  'save'
]);

const form = ref({
  id: `sceneId-${new Date().getTime().toString()}`,
  sceneId: `sceneId-${new Date().getTime().toString()}`,
  name: ``,
  type: 'equirectangular',
  showControls: true, // 显示控制器
  autoLoad: true, // 自动加载
  // autoRotate: 2, // 自动旋转场景
  compass: true, // 指南针
  sceneFadeDuration: 2000,
  panorama: '', // 全景照片url
});

// 页面加载初始化渲染
onMounted(() => {
  // 编辑回显
  if (props.sence.id) {
    form.value = {...props.sence };
  }
});

const close = () => emits('close');

const save = () => {
  // if (!form.value.name) {
  //   // 其他类型报错
  //   ElMessage({
  //     showClose: true,
  //     message: '输入名称',
  //     type: 'error'
  //   });
  //   return;
  // }

  // if (!form.value.devices.length) {
  //   // 其他类型报错
  //   ElMessage({
  //     showClose: true,
  //     message: '选择设备',
  //     type: 'error'
  //   });
  //   return;
  // }


  emits('save', form.value, props.sence.id ? true : false);
  close();
};

const handleSuccess = (url) => {
  form.value.panorama = url;
};

const success = () => {
  emits('success');
};
</script>
<style lang="scss">
  .edit-sence_dialog {
    .el-dialog__body {
      padding: 10px 20px;
      .el-select {
        width: 245px;
      }
    }
  }
</style>
<style lang="scss" scoped>
  .icon-types {
    width: 36px;
    height: 35px;
    margin: 2px;
    border: 1px solid #ccc;
    user-select: none;
    &.active {
      border: 2px solid blue;
    }
  }
</style>

演示视频如下:

水泵房vr全景可视化

1、vr可视化数据绑定流程

2、与传统组态软件相比,VR全景可视化优势有哪些?

    1、通过全景相机现场取景,真实还原现场场景真实面貌

    2、沉浸式用户体验,实时查看现场各个位置设备分布

    3、用户自定义绑定设备数据点位,实时监控设备数据变化

    4、一键巡检功能,模拟人视角去巡检设备数据

3、当康VR全景编辑器功能界面

3.1、自定义新增、修改、删除场景全景视角

3.2、自定义新增、修改、删除数据标记点位,当绑定场景设备数据,切换数据标记场景视角

3.3、自定义新增、修改、删除文字标记,修改文字标记内容,绑定文字标记设备数据

3.4、自定义新增场景切换标记,点击切换标记切换场景不通视角

3.5、自定义新增、修改、删除地理位置图标,点击可在地图上显示对应绑定位置

3.6、自定义新增、修改、删除多媒体标记,点击可以查看现场设备视频实时监控,播放视频,音频媒体

3.7、自定义绑定超文本链接地址,绑定跳转网址。

3.8、自定义绑定富文本内容,动态绑定文本标记

4、一键巡检功能,模拟人视角巡检设备点位数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/691077.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

几千万记录,数据库表结构如何平滑变更?

回答知识星球水友“逆光下的微笑”提问。 问题域&#xff1a;数据量大、并发量高场景&#xff0c;如何在流量低峰期&#xff0c;平滑实施表结构变更&#xff1f; 画外音&#xff0c;一般来说&#xff0c;是指增加表的属性&#xff0c;因为&#xff1a;&#xff08;1&#xff09…

手把手教你,本地RabbitMQ服务搭建(windows)

本地RabbitMQ服务搭建&#xff08;windows&#xff09; 前言一、Erlang 环境准备1. 下载安装包2. 安装 二、RabbitMQ服务器安装1. 下载安装包2. 安装RabbitMQ server3. 启动RabbitMQ4. 启动状态检测5. 管理插件启用 三、登录管理界面 前言 前面已经对RabbitMQ介绍了很多内容&a…

Excel怎样对比两列数据的异同

很多用户在使用Excel的时候会碰到一种情况就是将两列数据进行对比&#xff0c;如果数据少则很好用肉眼去对比吗&#xff0c;但是数据一多则就麻烦咯&#xff0c;那么下面小编就来教教大家如何快速对比两列数据的异同。 一&#xff1a;适用于对比不同文字的异同&#xff1b; 首先…

提升测试开发工程师工作效率的法宝:ELK日志平台

目录 前言&#xff1a; 1.什么是ELK 2.如何构建ELK通道 3.使用ELK的思考 前言&#xff1a; ELK日志平台是一个非常有用的工具&#xff0c;可以大大提高测试开发工程师的工作效率。ELK是指Elasticsearch、Logstash和Kibana&#xff0c;这三个开源工具的结合构成了一个功能强…

利用阿里云物联网平台(IoT)实现WEB数据可视化

一年前在阿里物联网平台测试过一个项目&#xff0c;后来就搁置了&#xff0c;昨天有事需要用&#xff0c;发现出错了。 调整完后写一下使用思路&#xff0c;以便未来之需。 阿里云物联网&#xff08;IoT&#xff09;主页&#xff1a;https://iot.aliyun.com/ 阿里云物联网&…

JavaScript中数组高阶函数的使用

一.数组高阶函数---forEach 它可以用来遍历数组中的每个元素&#xff0c;并对每个元素执行指定的操作。forEach函数接受一个回调函数作为参数&#xff0c;该回调函数在遍历数组的每个元素时被调用。 forEach函数的基本语法 array.forEach(callback(currentValue, index, arr…

java操作influxdb时,出现HTTP status code: 401; Message: unauthorized access

使用java操作influxdb出现HTTP status code: 401; Message: unauthorized access 在这里插入图片描述之前创建客户端是这样的 然后关闭客户端连接 后来我尝试吧influxDB null去掉&#xff0c;每次都创建新的连接 然后就行了哦&#xff0c;咱也不知道为啥&#xff0c;反正就…

Web概述

1.1 程序开发架构 1.1.1C/S体系结构介绍 C/S是Client/Server的缩写&#xff0c;即客户端&#xff0f;服务器结构。在这种结构中&#xff0c;服务器 通常采用高性能的机或工作站&#xff0c;并采用大型数据库系统&#xff08;如Oracle或SQLServer)客户端 则需要安装专用的客户…

深入浅出设计模式 - 代理模式

博主介绍&#xff1a; ✌博主从事应用安全和大数据领域&#xff0c;有8年研发经验&#xff0c;5年面试官经验&#xff0c;Java技术专家✌ Java知识图谱点击链接&#xff1a;体系化学习Java&#xff08;Java面试专题&#xff09; &#x1f495;&#x1f495; 感兴趣的同学可以收…

qt中c++获取图片qml实时显示的方式1——继承QQuickPaintedItem

通过c opencv获取rtsp视频流&#xff0c;或者视频源&#xff0c;在qml上进行实时视频显示。 一、在QML中通过QQuickPaintedItem动态加载图片 在QML中&#xff0c;可以使用QQuickPaintedItem来创建自定义的可绘制项。通过继承QQuickPaintedItem类&#xff0c;我们可以在QML中动…

这些面试攻略给你2023测试面试带来最强力的支持

在boss和拉钩上投了有几十份简历&#xff0c;其中70%未读状态&#xff0c;30%已读&#xff0c;已读的一半回复要求发送附件简历&#xff0c;然后这周接到面试的有七、八家公司&#xff0c;所以&#xff0c;当前这个大环境真的难 这半个月来&#xff0c;每天安排三到四场面试&a…

自学黑客(网络安全),一般人我劝你还是算了吧(自学网络安全学习路线--第八章 恶意软件概念及防范)【建议收藏】

文章目录 一、自学网络安全学习的误区和陷阱二、学习网络安全的一些前期准备三、自学网络安全学习路线一、恶意软件分类1、分类依据2、获取远程控制权类3、维持远程控制权类4、完成特定业务逻辑类 二、恶意软件运行症状1、查看网络连接2、查看系统进程3、查看隐藏文件 三、恶意…

PACS/RIS医学影像管理系统源码 提供先进图像处理和算法

PACS&#xff08;医学影像存档与通信系统&#xff09;主要应用于医学影像的存储、传输和显示。它可以使医生突破胶片的局限&#xff0c;对病人的影像进行全方位的处理和观察&#xff0c;以便得出更准确的诊断。同时&#xff0c;PACS可以节省大量的胶片&#xff0c;降低成本。医…

定积分与几何应用

定积分与几何应用 何谓定积分&#xff1f; ∫ a b f ( x ) d x \int_a^bf(x)dx ∫ab​f(x)dx需满足 a a a、 b b b有限&#xff08;不是无穷&#xff09;且 f ( x ) f(x) f(x)有界 定积分的计算主要依靠NL公式即牛顿莱布尼茨公式 定积分是否存在于原函数是否存在无关 定积分计…

骑士周游问题及优化

文章和代码已经归档至【Github仓库&#xff1a;https://github.com/timerring/java-tutorial 】或者公众号【AIShareLab】回复 java 也可获取。 文章目录 骑士周游问题算法优化意义经典算法面试题-骑士周游问题马踏棋盘算法介绍 骑士周游问题的解决步骤和思路分析 骑士周游问题…

什么是哈希表

哈希表 目录 哈希表哈希函数哈希碰撞拉链法线性探测法常见的三种哈希结构总结 首先什么是 哈希表&#xff0c;哈希表&#xff08;英文名字为Hash table&#xff0c;国内也有一些算法书籍翻译为散列表&#xff0c;大家看到这两个名称知道都是指hash table就可以了&#xff09;。…

Unity3D:Hierarchy 窗口

推荐&#xff1a;将 NSDT场景编辑器 加入你的3D工具链 3D工具集&#xff1a; NSDT简石数字孪生 Hierarchy 窗口 打开 Unity 新项目时的默认 Hierarchy 窗口视图 Hierarchy 窗口显示场景中的每个游戏对象&#xff0c;如模型、摄像机或预制件。 可以使用 Hierarchy 窗口对场景中…

Nginx | 苹果电脑Mac安装和验证Nginx服务过程记录

common wx&#xff1a;CodingTechWork&#xff0c;一起学习进步。 引言 本文主要总结如何在Mac电脑上进行Nginx服务的安装&#xff0c;重点讲解使用brew命令进行安装和验证的过程及问题记录。 安装步骤 安装过程记录 查看nginx信息 首先使用命令brew info nginx进行本机ng…

网络规划工具

对于各种规模的企业和组织来说&#xff0c;应对安全威胁和可靠的网络性能至关重要。战略性地投资有效的网络监控解决方案可以节省时间和成本&#xff0c;减少停机时间并提高员工的生产力&#xff0c;还可以让管理员专注于重要的事情。重要的是要了解&#xff0c;随着业务的增长…

JAVA大作业——网络在线对战游戏——坦克大战

目录 大作业要求 实机演示 主机环回地址布置连接演示 多人联机对战演示 WASD控制坦克移动和按J键发射炮弹攻击 攻击到敌人后会爆炸并且消灭敌人 按下C键设置IP主机连接 大作业要求 简单的小游戏 要求1&#xff1a;能够实现例如贪吃蛇、坦克大战、俄罗斯方块等小游戏&#x…