版本管理
Aptli 的版本管理系统让您可在离线状态下编辑地图和示意图 — 无论是在地铁隧道、偏远站点还是连接不佳的区域 — 并在准备就绪时提交变更。系统会在两名用户编辑同一区域时检测冲突,为每次提交保留永久的版本历史记录,并在外勤编辑上线前为管理员提供审核队列。本页介绍如何使用版本控制及解决冲突。
版本控制界面
版本控制功能直接显示在地图工具栏中 — 在桌面端,它们位于模式选择器和数据传输按钮旁的图标第一行;而在移动端,它们构成底部导航栏的第一行。附图展示的是桌面端布局;若查看地图工具栏,您还会注意到控制项旁边的数据传输按钮(用于导入/导出)。

主要控制功能:
- 撤销 - 还原当前会话中的最后一次更改
- 重做 - 重新应用已撤销的更改
- 重新同步 - 从服务器重新加载数据,丢弃未提交的本地更改
- 提交 - 将所有未提交的更改推送到服务器
未提交更改徽章:
- SelectedFeatures 按钮上的橙色徽章显示未提交更改的数量
- 在创建/编辑/删除要素时实时更新
- 帮助在提交前追踪待处理工作
版本控制如何运作
(服务器导入:自动数据推送等后台任务会自行创建并提交版本。终端用户无需手动加载 — 任务完成后,导入的要素将自动出现在地图中。)
版本/提交流程
1. 草稿创建 → 变更存在于浏览器存储中
↓ 要素带有 _uncommitted 标记
2. 离线编辑 → 修改属性、几何体、关联关系
↓ 所有更改均在本地追踪
3. 提交 → 将更改推送至服务器
↓ 服务器创建版本记录
4. 冲突检查 → 服务器检测空间/ID 冲突
↓ 可选查看他人草稿
5. 合并或回滚 → 接受更改或撤销
↓
6. 版本压缩 → 历史状态永久保存
变更成为永久记录
三种变更追踪系统
Aptli 根据工作流需求采用不同模式:
1. 版本化模型(地图要素、图层、示意图):
- 变更存储于浏览器存储中直至提交
_uncommitted标记追踪草稿状态- 通过空间分析检测冲突
- 永久版本历史(永不删除)
2. 实时模型(任务分配、报告、交易):
- 变更即时保存至服务器
- 不支持离线起草(执行需确认)
- 无版本历史(操作数据)
3. 任务(混合模式):
- 规划阶段采用版本化(离线设计)
- 执行阶段采用实时处理(任务分配绕过版本)
- 详情参见工作履行指南
使用版本控制
提交 - 将更改推送至服务器
何时提交:
- 工作会话结束时(保存进度)
- 切换项目前(保留更改)
- 重大编辑后(创建检查点)
- 完全离线前(同步最新内容)
提交的内容:
- 所有带
_uncommitted标记的要素 - 图层修改
- 示意图变更
- 属性更新、几何编辑、新增要素
- 关联至这些记录的任何文件(照片、文档)
*注意:*服务器端导入任务(如每晚的 GeoJSON 导入)也会自动创建版本;这些版本会显示在 Admin → Versions 页面上,其要素在任务完成后立即对用户可见,与常规提交相同。
工作流:
1. 进行更改(绘制、编辑、导入要素)
2. 监控未提交徽章数量
3. 准备就绪时点击提交
4. 检查冲突(如有)
5. 解决冲突或接受提交

请求提交与管理员审核
对于非管理员用户,"提交"按钮的初始功能是请求审核而非即时发布。当您选择请求提交时,该版本会被标记为 submittedForReview 并保存至服务器;在管理员批准前,不会对其他用户可见。管理员打开新版 Admin → Versions 页面(参见管理指南)查看待处理版本队列;可选择提交版本(使其生效)或删除版本。此工作流确保外勤编辑在应用至共享数据集前经过审核。
文件附件
您附加到记录的任何文件(照片、文档等)都会作为当前版本的一部分在本地暂存。版本提交时,这些文件会自动上传并包含在提交过程中;若您撤销或丢弃更改,暂存的文件将被移除。有关文件暂存的技术细节,请参阅开发文档。
结果:
- 更改对所有用户可见
- 服务器上创建版本记录
- 移除
_uncommitted标记 - 徽章计数重置为 0
撤销 - 还原上次更改
功能说明:
- 逆向遍历变更历史
- 作用于未提交的本地更改
- 维护重做堆栈(撤销后可重做)
限制:
- 仅影响当前会话的更改
- 无法撤销已提交的更改(请改用重新同步)
- 页面重新加载时历史记录将被清除
使用场景:
- "哎呀,删错了要素"
- "需要尝试不同方案"
- "不小心移动了要素"
重做 - 重新应用已撤销的更改
功能说明:
- 逐步前进遍历变更历史
- 仅在撤销操作后可用
- 执行新变更时清空
工作流:
1. 撤销删除更改
2. 重做恢复该更改
3. 根据需要继续撤销/重做
4. 执行新更改 → 清空重做堆栈
冲突解决
当两名用户同时编辑同一要素/版本时,地图顶部将显示冲突警告。
点击查看冲突详情可打开比较视图,您可在其中接受或拒绝单个修改。历史记录面板会突出显示每个修改的来源版本。
离线队列查看器
离线工作时,更改会暂存在本地队列中;离线队列查看器可显示待处理操作、同步状态,并支持手动重试。
(网络指示器截图:离线和在线)
重新同步 - 从服务器重新加载
使用场景:
- 丢弃所有未提交的更改
- 从服务器重新加载最新内容(他人工作)
- "全部撤销"核选项
- 修复损坏的本地状态
⚠️ 警告:
- 所有未提交的更改将丢失
- 无法撤销
- 执行前会确认
安全替代方案:
- 先提交以保留工作成果
- 随后重新同步以获取最新内容
并行工作流:直接操作与暂存
Aptli 支持两种要素处理工作流:
直接操作(简单编辑)
最适合:
- 移动单个要素
- 快速更新属性
- 删除要素
- 简单几何调整
操作流程:
1. 在地图或表格中选择要素
2. 直接编辑(拖拽、属性表单)
3. 自动追踪变更
4. 准备就绪时提交
优势:
- 快速,无需中间步骤
- 熟悉的模式(就地编辑)
- 最小化用户界面开销
绘图暂存(复杂操作)
最佳适用场景:
- 导入外部数据(GeoJSON、ESRI 文件)
- 复杂几何编辑(重塑多边形)
- 批量操作(创建大量要素)
- 提交前审核
操作流程:
1. 将要素加载至绘图(导入,点击"加载至绘图"按钮)
2. 在绘图模式下编辑(重塑、拆分、合并)
3. 选择目标图层
4. 提交至要素(追踪为未提交)
5. 准备就绪后提交
优势:
- 用于审查的暂存区
- 高级几何工具
- 将导入与实际要素分离
- 绘图层级撤销(提交前)
颜色标识:
- 蓝色 - 您选中的要素已加载至绘图
- 橙色 - 其他用户的冲突(只读)
- 默认 - 导入要素及手动绘制的要素
冲突解决
冲突如何产生
空间冲突:
- 两名用户在同一位置添加要素
- 基础设施布局重叠
- 相互竞争的网络设计
ID 冲突:
- 多名用户编辑同一要素
- 不同的属性变更
- 几何修改
查看冲突
加载冲突按钮(DrawToolbar):
- 获取其他用户未提交的更改
- 在绘图中以橙色要素显示
- 只读 - 无法提交他人草稿
- 协助提交前的协调
工作流:
1. 在 DrawToolbar 中点击"加载冲突"
2. 橙色要素出现(他人草稿)
3. 检查空间重叠情况
4. 如有必要调整您的要素
5. 提交您的更改(冲突已标记)
解决冲突
方案 1:团队协作
- 查看编辑人员(冲突显示用户邮箱)
- 通过聊天/电话讨论
- 决定谁先提交
方案 2:顺序提交
- 一名用户提交
- 另一名用户重新同步
- 第二名用户调整并提交
方案 3:手动合并
- 加载冲突以查看两个版本
- 手动创建合并后的要素
- 双方用户重新同步并接受合并
未提交更改追踪
您已创建、编辑或导入但尚未提交的要素被追踪为未提交状态。SelectedFeatures 按钮上的橙色徽章显示当前会话中未提交更改的数量。
徽章实时更新:
- 从绘图暂存区提交要素时递增
- 提交时重置为零
- 重新同步时重置为零(丢弃所有未提交更改)
将徽章计数作为定期提交的提醒。数量过高意味着若浏览器在提交前关闭,可能会丢失大量工作。
最佳实践
何时提交
推荐时机:
- 每次工作会话结束时
- 完成逻辑工作单元后
- 切换项目前
- 徽章数量感觉"过高"时
- 离线前(作为检查点保存)
避免:
- 提交不完整的工作(会混淆团队)
- 从不提交(存在数据丢失风险)
- 频繁提交(会产生版本干扰)
离线编辑策略
1. 离线前同步:
1. 重新同步以获取最新数据
2. 进行离线更改
3. 恢复在线后提交
2. 检查冲突:
1. 在重大编辑前加载冲突
2. 与可见用户协调
3. 优先提交不重叠的工作
3. 定期检查点:
1. 每 30-60 分钟提交一次
2. 创建恢复点
3. 与团队共享进度
版本历史回顾
查看修改记录:
- 版本记录显示用户、时间戳、操作
- 压缩版本仍可还原
- 审计轨迹确保合规性
回滚流程:
1. 识别问题版本
2. 重新同步至问题提交之前
3. 正确重做更改
4. 提交新版本
加载至绘图功能
目的
支持超越简单拖放的复杂几何图形操作:
- 重塑多边形边界
- 将线段分割为多段
- 合并相邻区域
- 高级几何操作
使用方法
从 SelectedFeatures 表:
1. 在表中选择行(复选框)
2. 点击"加载至绘图"按钮(铅笔图标)
3. 要素出现在绘图中(蓝色)
4. 使用绘图工具编辑
5. 选择目标图层
6. 点击提交按钮
7. 要素获得 _uncommitted 标记
8. 准备就绪时提交
样式设置:
- 用户选定:蓝色(#3b82f6)
- 冲突项:橙色(#f97316,只读)
- 导入项:默认绘图颜色
高级操作
重塑多边形:
- 将多边形加载至绘图
- 点击顶点进行移动
- 添加/移除点位
- 提交回要素
分割要素:
- 将线/多边形加载至绘图
- 使用绘图工具创建分割
- 提交为独立要素
合并区域:
- 将多个多边形加载至绘图
- 删除它们之间的边界
- 创建单个合并的多边形
- 提交结果
故障排除
"更改未保存"
检查:
- 未提交徽章数量是否在增加?
- 提交按钮是否可用?
- 浏览器控制台是否有错误?
解决方案:
- 验证网络连接
- 检查浏览器存储空间是否已满
- 提交以保存更改
"重新加载后丢失了更改"
原因:
- 未提交的更改存储于浏览器存储
- 重新同步清除了本地更改
- 浏览器存储被清空
预防措施:
- 关闭浏览器前提交
- 定期设置提交检查点
- 不要依赖浏览器缓存
"冲突无法解决"
步骤:
- 加载冲突以查看另一版本
- 联系其他用户
- 一名用户重新同步
- 修改并再次提交
- 第二名用户重新同步并继续
"撤销/重做功能失效"
限制:
- 仅支持会话内更改
- 页面重新加载后清除
- 无法撤销已提交的更改
解决方法:
- 重新同步至问题提交之前的版本
- 正确重做更改
- 提交新版本