Tidak Ada Deskripsi

WQQ d6f7152eea 增加河流和流域分区的矢量瓦片,优化点击要素弹框的功能 2 hari lalu
.github 8d9b556310 项目初始 4 bulan lalu
.vscode 8d9b556310 项目初始 4 bulan lalu
META-INF 8e26d2e1bf 1.上传模型预览及加载进场景2.加载自定义服务3.坐标拾取功能4.底图初始状态加载 4 bulan lalu
RuoYi-Vue3 d6f7152eea 增加河流和流域分区的矢量瓦片,优化点击要素弹框的功能 2 hari lalu
bin 8d9b556310 项目初始 4 bulan lalu
doc 8d9b556310 项目初始 4 bulan lalu
ruoyi-admin b402e791a7 加载矢量瓦片,添加点击查询功能 3 hari lalu
ruoyi-common b402e791a7 加载矢量瓦片,添加点击查询功能 3 hari lalu
ruoyi-framework b402e791a7 加载矢量瓦片,添加点击查询功能 3 hari lalu
ruoyi-generator b402e791a7 加载矢量瓦片,添加点击查询功能 3 hari lalu
ruoyi-quartz b402e791a7 加载矢量瓦片,添加点击查询功能 3 hari lalu
ruoyi-system b402e791a7 加载矢量瓦片,添加点击查询功能 3 hari lalu
.gitignore b74a49c255 取消跟踪 1 bulan lalu
LICENSE 8d9b556310 项目初始 4 bulan lalu
README.md f4e0b06e5c 添加水下地形,增加角度测量工具 5 hari lalu
pom.xml b402e791a7 加载矢量瓦片,添加点击查询功能 3 hari lalu
ry.bat 8d9b556310 项目初始 4 bulan lalu
ry.sh 8d9b556310 项目初始 4 bulan lalu

README.md

logo

省水利三维模型资源汇聚平台

基于 RuoYi-Vue + SuperMap iClient3D + Cesium 的水利三维 GIS 可视化平台

项目简介 | 技术栈 | 项目启动 | 功能模块 | 功能使用说明 | 项目结构


项目简介

省水利三维模型资源汇聚平台 是一个面向水利行业的二三维一体化 GIS 可视化管理系统。平台基于 RuoYi-Vue 前后端分离框架(v3.9.1)构建,深度融合 SuperMap iClient3D for WebGL 和 Cesium 三维地球引擎,实现水利工程模型资源的汇聚、管理、展示与分析。

平台提供水利工程模型的上传、分类管理、三维场景展示、空间分析、自定义服务接入等功能,旨在为水利信息化建设提供三维可视化基础支撑。


技术栈

后端技术

技术 说明 版本
Spring Boot 应用框架 2.5.15
Spring Security 安全认证框架 5.7.14
MyBatis ORM 框架 -
Druid 数据库连接池 1.2.27
Redis 分布式缓存 -
JWT 令牌认证 0.9.1
Swagger API 文档 3.0.0
Fastjson JSON 处理 2.0.60
PageHelper 分页插件 1.4.7
Oshi 系统监控 6.9.1
Apache POI Excel 处理 4.1.2
Druid 数据库连接池/监控 -

前端技术

技术 说明 版本
Vue 3 前端框架 3.5.16
Element Plus UI 组件库 2.10.7
Vite 构建工具 6.3.5
Pinia 状态管理 3.0.2
Vue Router 路由管理 4.5.1
Axios HTTP 请求库 1.9.0
ECharts 数据可视化 5.6.0
Cesium 三维地球引擎 1.140.0
SuperMap iClient3D 三维 GIS 组件库 1.2.2
Three.js 3D 渲染引擎 0.182.0

数据库

  • 达梦数据库(DM8):主数据库
  • Redis:缓存与会话管理

项目启动

环境要求

  • JDK:1.8+
  • Maven:3.6+
  • Node.js:20+
  • Redis:5.0+
  • 达梦数据库(DM8)
  • IDE:推荐使用 IntelliJ IDEA + VS Code

1. 数据库初始化

创建达梦数据库实例(如 WATERSHED),执行初始化 SQL 脚本:

# 按顺序执行以下脚本
sql/ry_20250522.sql        # RuoYi 系统核心表(用户、角色、菜单等)
sql/quartz.sql             # 定时任务 quartz 表
sql/watershed_model.sql    # 水利工程模型表
sql/watershed_facility.sql # 水利设施表
sql/watershed_equipment.sql # 机电设备表
sql/create_service_table.sql # 自定义服务表
sql/cesium_map_config.sql  # Cesium 地图配置表
sql/cesium_geojson.sql     # GeoJSON 数据表
sql/watershed_menu.sql     # 流域管理菜单权限配置

默认管理员账号:admin / admin123

如果使用 MySQL,请使用 ry_20250522.sql(该脚本为 MySQL 语法),其它 SQL 脚本为达梦语法。请根据实际数据库类型选择对应的初始化脚本。

2. 修改配置文件

后端配置 ruoyi-admin/src/main/resources/

application-druid.yml — 配置数据库连接:

spring:
  datasource:
    druid:
      master:
        url: jdbc:dm://192.168.0.145:30236?charSet=utf8
        username: YOUR_DB_USERNAME
        password: YOUR_DB_PASSWORD

application.yml — 配置 Redis 和文件上传路径:

spring:
  redis:
    host: YOUR_REDIS_HOST
    port: 6379
    password: YOUR_REDIS_PASSWORD
    database: 14

ruoyi:
  profile: uploads/models  # 模型文件上传路径

3. 启动后端服务

cd ruoyi-admin
mvn spring-boot:run
  • 后端默认端口:8448
  • 访问地址:http://localhost:8448
  • Swagger 接口文档:http://localhost:8448/swagger-ui.html
  • Druid 监控页面:http://localhost:8448/druid(账号:ruoyi / 密码:123456)

4. 启动前端服务

cd RuoYi-Vue3

# 首次启动需安装依赖
npm install

# 启动开发服务器
npm run dev
  • 前端默认端口:80
  • 访问地址:http://localhost
  • 开发环境 API 代理:/dev-apihttp://localhost:8448

5. 访问系统

  1. 浏览器打开 http://localhost
  2. 默认登录账号:admin / admin123(需输入验证码)
  3. 登录后将进入 水利三维模型平台首页(3D 场景),可通过导航栏切换到 模型管理后台管理

前端构建部署

cd RuoYi-Vue3

# 生产环境构建
npm run build:prod

# 预发布环境构建
npm run build:stage

构建产物在 RuoYi-Vue3/dist/ 目录,部署到 Nginx 即可。


功能模块

一、系统基础管理(RuoYi)

基于 RuoYi-Vue 框架内置权限管理系统,提供完整的用户、角色、权限管理能力:

1. 用户管理

用户是系统操作者,支持用户的增删改查、状态管理、角色分配。

  • 使用方式:进入「后台管理 → 系统管理 → 用户管理」,可添加/编辑/删除用户,分配角色和部门

2. 部门管理

配置系统组织机构(公司、部门、小组),树结构展现,支持数据权限。

  • 使用方式:进入「后台管理 → 系统管理 → 部门管理」,可新增/编辑/删除部门节点

3. 岗位管理

配置系统用户所属担任职务。

  • 使用方式:进入「后台管理 → 系统管理 → 岗位管理」,管理岗位编码、名称、排序

4. 菜单管理

配置系统菜单、操作权限、按钮权限标识等,支持外链和内链。

  • 使用方式:进入「后台管理 → 系统管理 → 菜单管理」,可配置树形菜单结构及权限标识

5. 角色管理

角色菜单权限分配、设置角色按机构进行数据范围权限划分。

  • 使用方式:进入「后台管理 → 系统管理 → 角色管理」,分配菜单权限和数据权限

6. 字典管理

对系统中经常使用的一些较为固定的数据进行维护。

  • 使用方式:进入「后台管理 → 系统管理 → 字典管理」,管理字典类型和字典数据

7. 参数管理

对系统动态配置常用参数。

  • 使用方式:进入「后台管理 → 系统管理 → 参数管理」,添加/编辑系统参数配置

8. 通知公告

系统通知公告信息发布维护。

  • 使用方式:进入「后台管理 → 系统管理 → 通知公告」,发布和管理公告

9. 操作日志

系统正常操作日志记录和查询;系统异常信息日志记录和查询。

  • 使用方式:进入「后台管理 → 系统监控 → 操作日志」,查看操作记录

10. 登录日志

系统登录日志记录查询包含登录异常。

  • 使用方式:进入「后台管理 → 系统监控 → 登录日志」,查看登录记录

11. 在线用户

当前系统中活跃用户状态监控,支持强制下线。

  • 使用方式:进入「后台管理 → 系统监控 → 在线用户」,查看并管理在线用户

12. 定时任务

在线(添加、修改、删除)任务调度包含执行结果日志。

  • 使用方式:进入「后台管理 → 系统监控 → 定时任务」,管理 Cron 任务

13. 代码生成

前后端代码的生成(Java、HTML、Vue、SQL),支持 CRUD 下载。

  • 使用方式:进入「后台管理 → 系统工具 → 代码生成」,导入数据库表,一键生成前后端代码

14. 系统接口(Swagger)

根据业务代码自动生成相关的 API 接口文档。

  • 使用方式:进入「后台管理 → 系统工具 → 系统接口」,或直接访问 /swagger-ui.html

15. 服务监控

监视当前系统 CPU、内存、磁盘、堆栈等相关信息。

  • 使用方式:进入「后台管理 → 系统监控 → 服务监控」,查看服务器运行状态

16. 缓存监控

对系统的缓存信息查询,命令统计等。

  • 使用方式:进入「后台管理 → 系统监控 → 缓存监控」,查看 Redis 缓存状态

17. 在线构建器

拖动表单元素生成相应的 HTML 代码。

  • 使用方式:进入「后台管理 → 系统工具 → 表单构建」,拖拽组件生成表单

18. 连接池监视(Druid)

监视当前系统数据库连接池状态,可进行分析 SQL 找出系统性能瓶颈。

  • 使用方式:访问 /druid,输入账号密码查看 SQL 监控

二、水利三维模型平台(核心业务)

1. 首页 — 三维 GIS 场景

三维地球主界面,集成 SuperMap Cesium 3D 引擎,提供丰富的地图交互能力。

页面布局

  • 顶部导航栏:首页 / 模型管理 / 后台管理 切换入口
  • 左侧侧边栏:数据服务、三维分析、地形分析、裁剪分析、图层、场景、绘制、特效等工具菜单
  • 主区域:Cesium 三维地球场景

使用方式

  • 鼠标中键拖拽旋转视角,左键拖拽平移,滚轮缩放
  • 点击左侧菜单展开功能面板
  • 支持切换多种在线底图(BingMap、天地图、OSM、SuperMap 等)

2. 数据服务

加载各类 GIS 数据服务到三维场景中。

公共服务(预配置): | 服务名称 | 类型 | 说明 | |---------|------|------| | CBD | S3M 场景 | SuperMap 在线三维城市数据 | | 倾斜摄影模型 | S3M | 倾斜摄影三维模型 | | 白模 | S3M | 城市建筑白模(线框模式) | | BIM 建筑 | S3M | BIM 建筑模型展示 | | 珠峰地形影像 | 影像+地形 | 珠穆朗玛峰区域地形与影像 | | 点云 | S3M 点云 | 三维点云数据 | | 京津地区 MVT | MVT 矢量瓦片 | 矢量地图服务 |

在线底图

  • BingMap、天地图(影像/矢量/地形)、OSM、SuperMap 暗色/亮色底图
  • STK 地形、天地图地形

自定义服务

  • 支持添加场景、S3M、影像、地形、矢量瓦片五种类型的自定义服务
  • 双击服务名称加载到场景,已加载的服务可卸载

使用方式

  • 点击侧边栏「数据服务」展开菜单
  • 单击公共服务缩略图加载/卸载数据
  • 点击「自定义服务 +」按钮添加自定义 GIS 服务 URL

3. 模型管理

水利工程模型的上传、分类、查看与管理。

模型分类体系: | 一级分类 | 二级分类 | 示例 | |---------|---------|------| | 水利工程实体 | 水库工程、水闸工程、泵站工程、灌区工程、堤防与护岸工程 | | | 水系水利设施 | 河流、湖泊与水库水面、渠道与输水管道、河口与海岸带 | | | 地理环境要素 | 地形地貌、行政区划、重要地物 | | | 自然生态景观 | 湖泊湿地、森林公园、地质公园、海岸带景观 | | | 模型集与项目 | 待分类模型、XX 市防洪排涝工程 | |

使用方式

模型查看

  1. 进入「模型管理」页面
  2. 左侧菜单选择模型分类
  3. 右侧表格展示该类模型列表
  4. 双击模型名称在 3D 场景中加载展示

模型上传

  1. 在模型管理页面点击「上传模型」按钮
  2. 选择模型文件(支持 S3M、GLB、GLTF、OSGB 等格式)
  3. 填写模型名称、类型、格式等信息
  4. 上传完成后在对应分类中查看

模型预览

  • 点击模型列表中的「预览」按钮,在新对话框中查看 3D 模型
  • 支持环境光、主光源强度调节
  • 支持鼠标拖拽旋转/缩放查看模型细节

4. 自定义服务管理

管理用户自定义的 GIS 服务,持久化保存服务配置。

使用方式

  • 在数据服务菜单中点击「自定义服务 +」按钮
  • 输入服务名称、类型(场景/S3M/影像/地形/矢量瓦片)和 URL
  • 支持配置是否需要 Token 认证
  • 保存后服务出现在自定义服务列表中,双击加载到场景

5. 三维分析工具

提供丰富的三维空间分析能力:

分析类型 功能 使用方式
量算 测量距离、面积、高度 点击「三维分析 → 量算」,在地图上点选测量
阴影分析 模拟建筑物阴影覆盖范围 点击「三维分析 → 阴影分析」,设置时间参数
天际线分析 分析场景天际线轮廓 点击「三维分析 → 天际线分析」
通视分析 分析两点间可视性 点击「三维分析 → 通视分析」,设置观察点和目标点
剖面分析 分析地形剖面 点击「三维分析 → 剖面分析」,绘制剖面线
可视域分析 分析观察点的可视范围 点击「三维分析 → 可视域分析」,设置观察点参数
开敞度分析 分析空间开敞程度 点击「三维分析 → 开敞度分析」
三维空间查询 三维场景空间查询 点击「三维分析 → 三维空间查询」
拾取坐标 拾取场景中任意点坐标 点击「三维分析 → 拾取坐标」,点击地图获取经纬度

6. 地形分析

功能 说明 使用方式
地形操作 地形开挖、填方等操作 点击「地形分析 → 地形操作」,绘制区域
淹没分析 模拟水位上升淹没范围 点击「地形分析 → 淹没分析」,设置水位高度
坡度坡向分析 分析地形坡度和坡向 点击「地形分析 → 坡度坡向分析」
等值线分析 生成地形等高线 点击「地形分析 → 等值线分析」

7. 裁剪分析

功能 说明 使用方式
Box 裁剪 长方体裁剪三维模型 点击「裁剪分析 → Box 裁剪」,调整裁剪盒
平面裁剪 平面裁剪三维模型 点击「裁剪分析 → 平面裁剪」,调整裁切面
Cross 裁剪 交叉裁剪 点击「裁剪分析 → Cross 裁剪」
多边形裁剪 多边形区域裁剪 点击「裁剪分析 → 多边形裁剪」,绘制多边形

8. 图层管理

功能 说明
S3M 图层属性设置 查看和修改 S3M 图层属性
S3M 图层风格设置 调整 S3M 图层显示风格(颜色、透明度等)
S3M 图层操作 S3M 图层的显示/隐藏、移除等操作
图层管理 统一管理所有已加载图层
影像图层属性设置 影像图层的属性设置
倾斜摄影模型操作 倾斜摄影模型的交互操作
MVT 矢量瓦片 矢量瓦片图层风格设置
PBR PBR 材质渲染

9. 场景

功能 说明 使用方式
分屏 左右分屏对比显示 点击「场景 → 分屏」
卷帘 上下卷帘对比 点击「场景 → 卷帘」,拖动卷帘线
场景属性设置 设置场景背景色、雾效等 点击「场景 → 场景属性设置」
灯光 添加点光源、聚光灯 点击「场景 → 灯光」,设置灯光位置和参数
沿线飞行 沿指定路径飞行浏览 点击「场景 → 沿线飞行」,绘制飞行路径
视频投放 将视频投射到三维模型表面 点击「场景 → 视频投放」
体元栅格 带时序的体元栅格数据渲染 点击「场景 → 带时序的体元栅格」
鹰眼 鹰眼概览图 点击「场景 → 鹰眼」,显示小窗口概览

10. 绘制

功能 说明 使用方式
绘制线面 在场景中绘制线和面 点击「绘制 → 绘制线面」,点击地图绘制
绘制体 绘制立方体、球体等几何体 点击「绘制 → 绘制体」
添加点符号 在场景中添加带图标标记 点击「绘制 → 添加点符号」,选择符号类型

11. 特效

功能 说明
扫描线 添加扫描线特效
粒子 粒子系统特效(火焰、烟雾、雨水、喷泉等)

支持多种粒子预设:化学火焰、基础火焰、小型火焰、干粉、建筑火焰、暗火、森林火焰、水柱、油气火焰、流淌火、烟熏火、烟雾、爆炸起火、环状火焰、雨水、雾状水等。

12. 台风路径

加载和查看台风路径数据,在三维场景中动态展示台风轨迹。

使用方式

  • 点击侧边栏「台风」菜单
  • 点击台风名称(如「竹节草」)在场景中加载台风路径
  • 可从「首页 → 台风路径」页面查看台风数据表格
  • 支持上传新的台风路径数据(JSON 格式)

13. 模型预览器

独立的 3D 模型预览查看工具,支持 GLB/GLTF 等格式模型的详细查看。

使用方法

  • 在模型管理页面点击「预览」按钮
  • 支持光照调节(环境光、主光源、辅助光的强度与角度)
  • 鼠标拖拽旋转、滚轮缩放
  • 支持 Three.js 和 Cesium 两种渲染模式

14. 水利设施管理

管理水利设施的基本信息、位置、负责人等。

使用方式

  • 进入「后台管理 → 流域管理 → 水利设施」
  • 可新增、编辑、删除水利设施
  • 支持经度/纬度坐标标注,可在三维场景中定位显示
  • 关联三维模型路径,支持设施三维展示

15. 机电设备管理

管理泵站、闸门等机电设备的详细参数和维护信息。

使用方式

  • 进入「后台管理 → 流域管理 → 机电设备」
  • 管理设备编号、名称、型号、额定参数等
  • 支持维护周期管理,记录安装日期和保养计划
  • 设备状态管理(正常运行/维护中/故障/待机)

项目结构

PlatformModel
├── ruoyi-admin              # 后台管理模块(启动入口)
│   └── src/main/
│       ├── java/com/ruoyi/web/
│       │   └── controller/
│       │       └── watershed/     # 水利业务 Controller
│       │           ├── WatershedModelController.java
│       │           └── WatershedServiceController.java
│       └── resources/
│           ├── application.yml           # 主配置
│           ├── application-druid.yml     # 数据源配置
│           └── sql/                      # SQL 初始化脚本
├── ruoyi-common              # 公共模块(工具类、通用组件)
├── ruoyi-framework           # 核心框架(安全、配置、权限)
├── ruoyi-system              # 系统模块(业务实体、Service、Mapper)
├── ruoyi-quartz              # 定时任务模块
├── ruoyi-generator           # 代码生成模块
├── RuoYi-Vue3                # 前端项目
│   ├── src/
│   │   ├── api/              # API 接口封装
│   │   │   ├── watershed/    # 水利业务 API
│   │   │   ├── system/       # 系统管理 API
│   │   │   ├── monitor/      # 系统监控 API
│   │   │   └── cesium/       # Cesium 地图配置 API
│   │   ├── views/            # 页面组件
│   │   │   ├── front/        # 前台页面(三维平台首页、模型管理)
│   │   │   │   ├── HydrologicalPlatform.vue  # 三维平台首页
│   │   │   │   ├── ModelManagement.vue        # 模型管理页面
│   │   │   │   ├── PageHeader.vue             # 顶部导航栏
│   │   │   │   └── content/                   # 内容组件
│   │   │   │       ├── ShuiliGongcheng.vue    # 水利工程模型列表
│   │   │   │       ├── ShuiliSheshi.vue       # 水利设施
│   │   │   │       ├── JidianShebei.vue       # 机电设备
│   │   │   │       ├── TyphoonPath.vue        # 台风路径
│   │   │   │       └── ModelPreview.vue       # 模型预览
│   │   │   ├── system/       # 系统管理页面
│   │   │   ├── monitor/      # 系统监控页面
│   │   │   ├── tool/         # 系统工具页面
│   │   │   └── login.vue     # 登录页面
│   │   ├── supermap-cesium-module/  # SuperMap Cesium 三维模块
│   │   │   ├── config/       # 配置文件
│   │   │   │   ├── views_config.js     # 三维分析组件配置
│   │   │   │   └── server_config.js    # 服务数据配置
│   │   │   ├── components/   # 三维分析功能组件
│   │   │   │   ├── analysis_3d/        # 三维分析
│   │   │   │   ├── clip/              # 裁剪分析
│   │   │   │   ├── draw/              # 绘制
│   │   │   │   ├── fly/               # 飞行
│   │   │   │   └── layer/             # 图层
│   │   │   └── views/layout/          # 三维场景布局
│   │   ├── router/index.js   # 路由配置
│   │   ├── store/            # 状态管理
│   │   └── main.js           # 入口文件
│   ├── public/
│   │   ├── Cesium/           # Cesium 引擎库
│   │   ├── img/              # 图片资源
│   │   └── data/             # 三维模型数据
│   ├── index.html
│   ├── vite.config.js
│   └── package.json
└── pom.xml                   # Maven 父项目配置

默认账号

角色 账号 密码
超级管理员 admin admin123
普通用户 ry admin123

相关链接