# DataManager **Repository Path**: jiahuanl/DataManager ## Basic Information - **Project Name**: DataManager - **Description**: 数据管理桌面wpf - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-21 - **Last Updated**: 2026-08-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GIS 数据转换标准规则管理工具 基于 WPF + SQLite 的 GIS 图层数据转换规则管理系统。 ## 核心设计理念 **字段是图层的一部分** —— 每个图层映射下挂属于自己的字段映射,过滤条件也是针对每个图层独立配置。 ``` 转换规则 (ConversionRule) ├─ 规则名称 / 坐标系 / 描述 │ └─ 图层映射列表 (LayerMappings) ├─ 源图层 → 目标图层 ├─ 过滤条件(SQL WHERE,仅对该图层生效) │ └─ 字段映射列表 (FieldMappings) ├─ 源字段 → 目标字段 ├─ 数据类型 └─ 默认值 ``` ## 功能特性 | 功能 | 说明 | |------|------| | ✅ 新建规则 | 创建全新的数据转换规则 | | ✅ 查看规则 | 左侧列表点击即可查看详情 | | ✅ 修改规则 | 编辑后点击"保存规则"即可更新 | | ✅ 删除规则 | 选中后点击"删除规则"并确认 | | ✅ 图层映射 | 源图层 → 目标图层,支持多个 | | ✅ 字段映射 | **从属于图层**,每个图层独立配置字段映射 | | ✅ 数据类型 | 每个字段可指定目标数据类型 | | ✅ 默认值 | 每个字段可指定默认值 | | ✅ 图层过滤条件 | **每个图层独立配置** SQL WHERE 过滤 | | ✅ XML 导出/导入 | 嵌套结构序列化,支持跨平台迁移 | | ✅ Excel 导出 | 多 Sheet 结构化导出(概览/图层/字段) | | ✅ SQLite 持久化 | 本地数据库,零配置开箱即用 | ## 使用流程 1. **新建规则** → 填写规则名称、选择坐标系 2. **添加图层映射** → 在中间栏点击"➕ 添加图层",填写源图层名和目标图层名 3. **选择图层** → 点击图层映射行,右侧自动展开该图层的过滤条件和字段映射 4. **配置过滤条件** → 输入 SQL WHERE 子句(如 `AREA > 1000 AND TYPE = '林地'`) 5. **添加字段映射** → 点击"➕ 添加字段",逐条配置源字段→目标字段 6. **保存规则** → 点击"💾 保存规则"持久化到 SQLite ## 坐标系支持 CGCS2000 / WGS84 / Xian80 / Beijing54 / UTM Zone 49N / UTM Zone 50N ## 技术栈 - **.NET 8 / WPF** — 桌面 UI 框架 - **SQLite** — 嵌入式数据库持久化 - **EPPlus 6** — Excel 文件生成 - **MVVM 模式** — ViewModel + RelayCommand + 值转换器 ## 构建与运行 ```bash cd GisDataConverter dotnet restore dotnet build -c Release dotnet run -c Release ``` ## 项目结构 ``` GisDataConverter/ ├── App.xaml / App.xaml.cs # 应用入口 ├── Converters/ │ └── BooleanToVisibilityConverter.cs # 可见性转换器 ├── Views/ │ ├── MainWindow.xaml # 主窗口 UI(三栏布局) │ └── MainWindow.xaml.cs # 主窗口代码后置 ├── ViewModels/ │ └── MainViewModel.cs # 核心 ViewModel(业务逻辑 + 命令) ├── Services/ │ ├── DatabaseService.cs # SQLite CRUD + 嵌套数据模型 │ ├── ExportService.cs # XML / Excel 导出 │ └── ImportService.cs # XML 导入 ├── GisDataConverter.csproj └── README.md ``` ## 数据库表结构 | 表名 | 说明 | 关键字段 | |------|------|----------| | ConversionRules | 规则主表 | RuleId(PK), RuleName(UK), CoordinateSystem, Description | | LayerMappings | 图层映射(含过滤条件) | Id(PK), RuleId(FK), SourceLayer, TargetLayer, FilterCondition | | FieldMappings | 字段映射(从属于图层) | Id(PK), LayerMappingId(FK), SourceField, TargetField, DataType, DefaultValue | > 外键级联删除:删除规则 → 自动删除所有图层映射 → 自动删除所有字段映射 ## XML 导出格式示例 ```xml 林地数据转换规则 CGCS2000 林地图层导入标准库 layer1 layer2 AREA > 1000 AND TYPE = '林地' a A VARCHAR(50) b B DOUBLE 0 ``` ## UI 布局说明 ``` ┌──────────────────────────────────────────────────────────────────┐ │ 🌍 GIS 数据转换标准规则管理工具 ➕新建 💾保存 🗑删除 📥导入... │ ├──────────┬───────────────────┬──────────────────────────────────┤ │ 📋 规则 │ ⚙ 规则基本信息 │ 📌 当前图层:layer1 → layer2 │ │ 列表 │ 规则名称 [____] │ ┌──────────────────────────────┐ │ │ │ 坐标系 [CGCS▾] │ │ 🔍 图层过滤条件 │ │ │ • 规则A │ 描述 [____] │ │ AREA>1000 AND TYPE='林地' │ │ │ • 规则B │ │ └──────────────────────────────┘ │ │ • 规则C │ 🗺 图层映射 │ ┌──────────────────────────────┐ │ │ │ ➕添加图层 │ │ 🔤 字段映射 │ │ │ │ ┌─────────────┐ │ │ 源字段 │ 目标字段 │ 类型 │ │ │ │ │layer1→layer2│ │ │ a │ A │ VARCHAR │ │ │ │ │layer3→layer4│ │ │ b │ B │ DOUBLE │ │ │ │ └─────────────┘ │ │ c │ C │ INT │ │ │ │ │ └──────────────────────────────┘ │ ├──────────┴───────────────────┴──────────────────────────────────┤ │ 就绪 │ SQLite 持久化 | XML/Excel 导出 | MVVM 架构 │ └──────────────────────────────────────────────────────────────────┘ ```