Skip to content

2025chris2/Cloud-Point-APP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

视山安 — 3D 点云数据全栈处理平台

项目描述

一个基于 Spring Boot 3 + Vue 3 的 3D 点云数据处理工作站,支持 LAS/LAZ/PLY/PCD/XYZ 五种主流格式的上传、WebGL 可视化、9 种点云算法处理及 AI 交互,可应用于测绘、三维重建等领域。

技术栈

Spring Boot 3.2、Vue 3 + TypeScript、Pinia、Element Plus、Potree + Three.js、WebSocket、MySQL + JPA、JWT、Webpack

系统架构

┌─ 前端 (Vue 3, Port 8086) ─────────────────────────────────────────────┐
│  三栏工作台布局                                                          │
│  ┌─ 左栏 ─────────┐  ┌─ 中央视口 ────────────┐  ┌─ 右栏 ────────────┐  │
│  │ 分片上传        │  │ Potree WebGL 渲染     │  │ 场景树            │  │
│  │ 算法启动器      │  │ 导航 / 测量 / 标注    │  │ 属性面板          │  │
│  │ 导出 / 截图     │  │ Three.js 后处理       │  │ 任务日志 / AI 对话 │  │
│  └────────────────┘  └──────────────────────┘  └───────────────────┘  │
│  状态管理: Pinia (user / settings / view / project / task 五 Store)     │
│  服务层: 统一 HTTP 拦截器(JWT自动注入 + 401自动登出) + 分片上传(SparkMD5) │
└──────────────────────────────┬─────────────────────────────────────────┘
                               │ REST + WebSocket (双通道)
┌─ 后端 (Spring Boot 3, Port 8081) ──────────────────────────────────────┐
│  安全层: JWT 无状态认证 + BCrypt 密码加密 + 端点级限流 + CORS            │
│  控制层: Auth / Project / Dataset / Task / Potree / AI / 兼容层          │
│  服务层:                                                                │
│  ┌─ TaskService (核心编排器) ───────────────────────────────────────┐   │
│  │  线程池(core=2, max=4) → 异步执行:                               │   │
│  │  · Potree 转换 → 调用 PotreeConverter.exe → 八叉树预览            │   │
│  │  · Java 算法   → 9种纯Java算法 → 输出新Dataset                    │   │
│  │  · LAS 压缩    → 调用 laszip64.exe → LAS→LAZ                     │   │
│  │  · 导出/拷贝   → DatasetExportService                             │   │
│  │  进度推送 → WebSocket 广播 + 数据库持久化 + HTTP 轮询              │   │
│  └──────────────────────────────────────────────────────────────────┘   │
│  算法层: PointCloudIO(PLY/PCD/XYZ/LAS/LAZ读写) + 9种算法                │
│  存储层: JPA(Hibernate ddl-auto=update) → MySQL                        │
│  文件存储: 本地磁盘 data/files/ data/potree/ data/tasks/                 │
│  外部集成: DeepSeek Chat API / 163邮箱验证码                              │
└──────────────────────────────────────────────────────────────────────┘

个人贡献与成果

  • 全栈架构设计:独立完成前后端分离架构设计,前端 Vue 3 + Webpack 开发服务器代理到后端,REST API + WebSocket 双通道通信;设计三栏工作台布局(操作 - 视口 - 信息),搭建完整人机交互界面。

  • 异步任务调度引擎:设计 TaskService 核心编排器,基于线程池(2 核心 / 4 最大)统一管理 Potree 转换、算法执行、LAZ 压缩、导出拷贝等重操作;任务状态持久化至 MySQL,通过 WebSocket 实时广播进度;采用「WebSocket 广播 + 单任务 WebSocket + HTTP 轮询」三重保障机制,确保前端实时感知任务状态。

  • 纯 Java 点云算法:自研 PointCloudIO 模块,实现 PLY/PCD/XYZ/LAS/LAZ 五种格式完整读写链路,手动解析 LAS/LAZ 二进制 header(小端序);零第三方算法库依赖,实现 9 种点云处理算法:

    • 滤波类:统计滤波、体素下采样、半径滤波

    • 分割类:区域生长、欧式聚类、平面检测

    • 配准类:ICP 配准、特征配准、全局配准 配准算法可输出 4×4 齐次变换矩阵。

  • 大文件分片上传:前端基于 SparkMD5 计算文件 hash 校验值,采用 5MB 分片 + 3 并发并行传输;后端通过 init → chunks → complete 三段式完成文件合并;支持 LAS/LAZ/PLY/PCD/XYZ 格式自动识别,上传完成后可自动触发 Potree 预览生成。

  • 3D 可视化集成:封装 Potree 1.8 + Three.js WebGL 渲染管线,实现点云加载、导航(orbit/pan/zoom)、测量、标注、截图、EDL 增强、点预算控制功能;通过 Pinia View Store 同步视口状态至 URL 查询参数。

  • AI 自然语言交互:集成 DeepSeek Chat API,搭建点云处理自然语言对话入口;支持系统提示词定制。

  • 安全与工程化:实现 JWT 无状态认证、BCrypt 密码加密、端点级 IP / 账号双层限流、邮箱验证码注册、CORS 跨域配置、全局异常处理切面,保障系统安全性与稳定性。

About

一个云点云处理器

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors