# openmap **Repository Path**: yinchuanqi/openmap ## Basic Information - **Project Name**: openmap - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-05 - **Last Updated**: 2026-06-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GIS Web 工作台 基于 Spring Boot 3 + Vue 3 构建的 GIS 地理信息服务管理平台,支持 WMS、WMTS、MVT 三种 OGC 标准地图服务的一键发布与在线预览。 ## 功能特性 ### 📊 仪表盘 数据概览与统计,展示文件源、数据库源、数据集和服务数量。 ![仪表盘](screenshots/dashboard.png) ### 📁 文件源管理 上传 Shapefile、GeoJSON 等空间数据文件,自动解析坐标系和要素类型。 ![文件源](screenshots/file-source.png) ### 🗄️ 数据库源管理 连接 PostgreSQL/PostGIS 空间数据库,自动发现空间表和几何字段。 ![数据库源](screenshots/db-source.png) ### 📋 数据集管理 基于文件源或数据库源创建数据集,统一管理空间数据的元信息。 ![数据集](screenshots/dataset.png) ### 🗺️ 地图服务发布 一键发布 WMS / WMTS / MVT 三种标准地图服务,支持服务启停、重新发布和在线预览。 ![服务管理](screenshots/service.png) ### 🌐 服务预览 基于 MapLibre GL JS 的在线地图预览,支持天地图底图叠加、图层透明度控制、数据定位。 ![MVT 服务预览](screenshots/service-preview-mvt.png) ## 技术架构 ``` ┌─────────────────────────────────────────────────┐ │ 前端 (gis-web) │ │ Vue 3 + Ant Design Vue + MapLibre GL JS │ │ Vite 8 · Axios · Vue Router │ └────────────────────┬────────────────────────────┘ │ HTTP / REST API ┌────────────────────▼────────────────────────────┐ │ 后端 (gis-server) │ │ Spring Boot 3.2 · MyBatis-Plus · GeoTools 34 │ │ │ │ ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │ │ │ WMS │ │ WMTS │ │ MVT │ │ │ │ GetMap │ │ 瓦片渲染 │ │ 矢量瓦片编码 │ │ │ └────┬─────┘ └────┬─────┘ └───────┬──────────┘ │ │ └──────┬─────┘ │ │ │ StreamingRenderer protobuf-java │ │ StyleGenerator 直接编码 │ │ │ │ │ ┌───────────▼──────────────────────────────┐ │ │ │ DataSourceResolver │ │ │ │ Shapefile / GeoJSON / PostGIS │ │ │ └──────────────────────────────────────────┘ │ │ │ │ ┌───────────┐ ┌──────────────┐ ┌────────────┐ │ │ │LayerRegist│ │TileCacheMgr │ │GeomUtils │ │ │ │ 图层注册 │ │ 瓦片缓存 │ │ 坐标变换 │ │ │ └───────────┘ └──────────────┘ └────────────┘ │ └────────────────────┬────────────────────────────┘ │ JDBC ┌────────────────────▼────────────────────────────┐ │ PostgreSQL / PostGIS │ │ 用户数据 · 数据集 · 服务元数据 │ └─────────────────────────────────────────────────┘ ``` ### 核心技术栈 | 层级 | 技术 | 说明 | |------|------|------| | 前端框架 | Vue 3 + Composition API | 响应式 UI | | UI 组件 | Ant Design Vue 4.x | 企业级组件库 | | 地图引擎 | MapLibre GL JS | 支持 Raster / Vector 瓦片渲染 | | 后端框架 | Spring Boot 3.2 | REST API 服务 | | GIS 引擎 | GeoTools 34.4 | 空间数据处理、WMS/WMTS 渲染 | | MVT 编码 | protobuf-java 3.25 | 自研矢量瓦片编码器,避免 JTS 版本冲突 | | ORM | MyBatis-Plus 3.5 | 数据库访问 | | 数据库 | PostgreSQL + PostGIS | 空间数据存储 | | 底图 | 天地图 WMTS | 影像 + 注记 | ## 项目结构 ``` gis/ ├── gis-server/ # 后端服务 │ ├── src/main/java/com/gis/server/ │ │ ├── controller/ # REST 控制器 │ │ ├── service/ # 业务逻辑层 │ │ ├── ogc/ # OGC 服务核心 │ │ │ ├── wms/ # WMS 服务 (GetMap, GetCapabilities) │ │ │ ├── wmts/ # WMTS 服务 (瓦片渲染) │ │ │ ├── mvt/ # MVT 服务 (矢量瓦片) │ │ │ ├── datasource/ # 数据源解析 (Shapefile/GeoJSON/PostGIS) │ │ │ ├── cache/ # 瓦片文件缓存 │ │ │ ├── registry/ # 图层注册中心 │ │ │ ├── style/ # SLD 样式生成 │ │ │ └── util/ # 坐标变换工具 │ │ ├── entity/ # 数据实体 │ │ ├── dto/ # 数据传输对象 │ │ ├── mapper/ # MyBatis Mapper │ │ └── config/ # 配置类 │ └── src/main/resources/ │ ├── application.yml # 应用配置 │ └── db/schema.sql # 数据库建表脚本 │ ├── gis-web/ # 前端应用 │ ├── src/ │ │ ├── views/ # 页面组件 │ │ │ ├── dashboard/ # 仪表盘 │ │ │ ├── datasource/ # 数据源管理 │ │ │ ├── dataset/ # 数据集管理 │ │ │ └── service/ # 服务管理 + 预览 │ │ ├── api/ # API 请求封装 │ │ ├── layouts/ # 布局组件 │ │ └── router/ # 路由配置 │ └── vite.config.js # Vite 配置 (含 API 代理) │ └── screenshots/ # 界面截图 ``` ## 快速开始 ### 环境要求 - Java 17+ - Node.js 18+ - PostgreSQL 14+ (需安装 PostGIS 扩展) - Maven 3.8+ ### 1. 初始化数据库 ```sql CREATE DATABASE gis_workbench; \c gis_workbench; CREATE EXTENSION IF NOT EXISTS postgis; ``` 执行建表脚本 `gis-server/src/main/resources/db/schema.sql`。 ### 2. 启动后端 ```bash cd gis-server # 修改 src/main/resources/application.yml 中的数据库连接信息 mvn package -DskipTests java -jar target/gis-server-1.0.0.jar ``` 后端默认运行在 `http://localhost:8080`。 ### 3. 启动前端 ```bash cd gis-web npm install npm run dev ``` 前端默认运行在 `http://localhost:5174`,API 请求自动代理到后端 8080 端口。 ## 支持的 OGC 服务 | 服务类型 | 标准协议 | 接口地址 | 说明 | |---------|---------|---------|------| | WMS | OGC WMS 1.3.0 | `/api/ogc/wms?REQUEST=GetMap&LAYERS=ds_201&...` | 动态渲染地图图片 | | WMTS | OGC WMTS 1.0.0 | `/api/ogc/wmts/ds_201/{z}/{x}/{y}.png` | 预渲染瓦片地图 | | MVT | Mapbox Vector Tile | `/api/ogc/mvt/ds_201/{z}/{x}/{y}.pbf` | 矢量瓦片(前端渲染) | ## License MIT