示意图
示意图是交互式关系图,用于展示资产如何彼此连接 — 而不仅仅是它们在地图上的位置。可用于建模电路、光纤熔接路径、管道填充、污水处理流程或任何在地理视图中难以看清的逻辑关系。示意图受版本控制,可直接与地图要素关联。
什么是示意图?
示意图 vs. 地图要素:
- 地图要素 展示事物的位置(空间关系、地理位置)
- 示意图 展示事物如何连接(逻辑关系、依赖关系)
使用场景:
公用事业网络
- 建模电路(电杆 → 变压器 → 服务点)
- 展示管道中的电缆路径
- 可视化网络分段的容量流
流程图
- 污水处理厂阶段
- 制造流程依赖关系
- 供应链路线规划
组织层级
- 设备维护依赖关系
- 资产所有权链
- 服务交付路径
物理连接
- 光纤熔接图
- 管道网络拓扑
- 暖通空调管道连接
示意图编辑器界面
示意图编辑器以弹出窗口形式从地图页面工具栏显示。它提供功能齐全的图表编辑器,兼具自动布局算法与手动定位功能。
主要组件
图表画布(中心)
- 交互式节点与边的可视化
- 手动拖拽节点调整位置
- 点击元素进行选择与编辑
- 拖放区域用于从地图添加要素
工具栏(底部)
- 添加节点 - 创建图表节点(自定义或关联地图要素)
- 添加边 - 在节点间创建连接
- 布局选择器 - 选择自动布局算法
- 自动布局 - 应用所选布局并清除所有手动位置
- 刷新 - 从数据重新初始化图表
元素编辑器(底部面板)
- 编辑所选节点或边属性
- 用于高级 JSON 操作的代码编辑器
- 常用属性的可视化表单
- 删除需确认(可通过版本撤销)
元数据面板(顶部)
- 示意图名称(可内联编辑)
- 自定义属性(键值对)
- 版本管理集成
创建示意图
步骤 1:创建示意图
- 打开地图页面(https://demo.aptli.io/map)
- 点击 地图工具栏 → 示意图 按钮
- 示意图编辑器在弹出窗口中打开
- 显示空白图表画布
步骤 2:添加节点
选项 A:自定义节点(不关联地图)
- 点击 添加节点 按钮
- 选择 自定义 模式(默认)
- 输入节点名称(例如"变压器 A")
- 选择几何类型:Point、LineString 或 Polygon
- 点击 确认
选项 B:从现有地图要素
- 点击 添加节点 按钮
- 切换至 从要素 模式
- 从下拉菜单选择要素(显示所有地图要素)
- 点击 确认(节点通过 featureId 与要素关联)
选项 C:从地图拖拽
- 在地图界面中找到要素卡
- 将要素卡拖拽至示意图编辑器
- 释放至画布(虚线边框区域内)
- 自动创建节点并检测几何类型
步骤 3:添加连接(边)
- 点击 添加边 按钮
- 从下拉菜单选择 源 节点
- 从下拉菜单选择 目标 节点
- 可选:输入边标签(例如"供电"、"容量:100A")
- 点击 确认
多重边:
- 同一对节点可有多条边(无上限)
- 适用于双向流动或不同关系类型
- 示例:节点 A → 节点 B(供应),节点 B → 节点 A(回流)
步骤 4:安排布局
自动布局(从下拉菜单):
- 网格 2×2、3×3、4×4、5×5 - 固定网格排列
- 圆形 - 节点呈圆形排列
- 广度优先 - 层级树状布局(有向图)
- 同心圆 - 基于连通性的环状布局
- 随机 - 节点随机散布
手动定位:
- 选择布局预设或跳过
- 将单个节点拖拽至目标位置
- 手动位置保存于版本数据中
- 手动位置优先于布局算法
重置布局:
- 点击 自动布局 按钮 → 清除所有手动位置
- 从下拉菜单重新应用所选布局算法
步骤 5:编辑元素
选择元素:
- 点击画布上的任意节点或边
- 元素编辑器面板在底部显示
编辑节点属性:
- 名称 - 显示标签(内联编辑或代码编辑器)
- 几何类型 - Point、LineString 或 Polygon
- 要素链接 - 连接至地图要素的 featureId
- 自定义属性 - 添加任何键值数据
编辑边属性:
- 标签 - 连接描述
- 源 - 起始节点(通过代码编辑器修改)
- 目标 - 结束节点(通过代码编辑器修改)
代码编辑器(高级):
- 在元素编辑器中点击 显示代码
- JSON 表示法显示在文本区域中
- 直接编辑(完整元素结构)
- 点击 格式化 JSON 进行美化打印
- 点击 应用更改(通过 Zod schema 验证)
- 若结构无效,将显示验证错误
删除元素:
- 选择元素
- 在元素编辑器中点击 删除 按钮
- 出现确认删除对话框
- 元素被移除(变更记录于版本历史中)
布局配置
每张示意图会将其首选布局算法保存至数据库。当您重新打开示意图时,会自动应用已保存的布局。
持久化布局:
- 下拉选择按示意图单独存储
- 默认:网格 3×3
- 更改在不同会话中持续生效
手动 vs. 自动:
- 若任何节点有手动位置 → 使用"preset"布局(保留位置)
- 若无手动位置 → 应用下拉菜单中的算法
- 点击 自动布局 清除位置并重新应用算法
切换布局:
- 更改下拉菜单选项
- 布局立即应用
- 所有手动位置被清除
- 新布局提交至版本历史
版本管理
示意图采用与地图要素相同的版本/提交系统。
自动提交:
- 每次变更创建版本条目
- 添加/删除节点 → 提交
- 添加/删除边 → 提交
- 编辑元素属性 → 提交
- 更改布局 → 提交
版本历史:
- 通过版本管理器访问(地图工具栏)
- 查看图表随时间的所有变更
- 回滚至先前状态
- 合并协作者的离线编辑
- 从工具栏执行提交 → 请求提交;非管理员将草稿发送至管理员队列待审批(参见 Admin → Versions)
离线编辑:
- 离线创建/编辑示意图
- 更改存储于浏览器本地存储
- 联网后同步
- 支持并发编辑的冲突检测
高级功能
拖放集成
示意图与 Aptli 的拖放系统集成:
从地图到示意图:
- 从图层面板拖拽要素卡
- 拖拽所选要素列表项
- 放入示意图编辑器画布
- 自动创建带 featureId 链接的节点
几何类型检测:
- Point 要素 → 点图标
- LineString 要素 → 线图标
- Polygon 要素 → 多边形图标
- 图标有助于快速识别节点类型
实时代码编辑
代码编辑器为高级用户提供直接的 JSON 操作功能。
验证:
- 所有编辑在应用前均经过验证
id为必填(必须是非空字符串)geometryType必须为Point、LineString或Polygon(若存在)- 位置坐标必须为数值
- 边需要
source和target - 节点不可包含
source或target
使用场景:
- 批量属性变更(复制粘贴 JSON)
- 无需界面操作添加关系(手动 source/target)
- 调试数据结构问题
- 将元素复制到另一张示意图
多重关系
与许多绘图工具不同,Aptli 支持在同一节点间创建无限数量的边:
示例 - 双向流:
变压器 A → 服务点 B(电源供应,240V)
服务点 B → 变压器 A(遥测数据)
变压器 A → 服务点 B(故障通知)
无重复保护:
- 刻意的设计选择
- 部分关系确实存在重复
- 由用户负责管理边数量
- 代码编辑器显示所有边供审查
自定义属性
节点和边均支持自定义属性:
示意图级属性:
- 在元数据面板(编辑器顶部)中编辑
- 以 JSON 形式存储键值对
- 用于图表级元数据
- 示例:"voltage: 240V"、"network_segment: north"
元素级属性:
- 通过代码编辑器(data 对象)编辑
- 可添加标准结构之外的任何字段
- 额外属性与元素一同保留并存储
- 示例:capacity、status、install_date
与地图要素的集成
要素关联(featureId):
- 节点可通过 ID 引用地图要素
- 双向:点击示意图节点 → 突出显示地图要素
- 适用于匹配实际基础设施的网络图
独立节点:
- 自定义节点无需地图要素
- 适用于抽象概念(阶段、流程、逻辑分组)
- 可在同一图中混合使用关联节点与独立节点
同步注意事项:
- 若关联要素被删除,示意图不会自动更新
- 孤立的 featureId 显示为缺失(需手动处理)
- 未来增强:删除要素时自动清理
最佳实践
何时使用示意图
典型应用场景:
- 地图上难以呈现的网络拓扑(高密度区域)
- 与地理不匹配的逻辑流(服务交付路径)
- 跨大距离的设备依赖关系
- 有明确顺序的多阶段流程
- 独立于位置的关系建模
不适用场景:
- 简单空间邻近性(请改用地图缓冲区工具)
- 一次性可视化(导出 GeoJSON 并使用外部工具)
- 频繁变化的连接(维护成本高)
- 面向公众的图表(示意图属于内部工具)
命名规范
示意图名称:
- 具体明确:"北区光纤熔接"而非"光纤 1 号"
- 标注日期/版本:如"2025 年第四季度网络规划"
- 使用位置标识:如"市中心变压器 A 回路"
节点名称:
- 关联时匹配地图要素名称(自动填充)
- 自定义节点使用清晰标识符:"阶段 3:过滤"
- 避免通用名称:"节点 1"、"点 A"
边标签:
- 描述关系:"供电"、"汇报给"、"依赖于"
- 包含容量:"100A"、"10 Gbps"、"500 GPM"
- 同类型示意图使用一致术语
版本管理技巧
提交频率:
- 每次变更自动提交(无需手动提交)
- 活跃图表的版本历史可能变长
- 使用版本压缩减少存储(未来功能)
版本描述:
- 当前未在用户界面中捕获(所有提交均自动生成)
- 使用示意图属性记录主要里程碑
- 示例属性:"last_audit: 2025-02-14, auditor: jdoe"
回滚安全:
- 先在非生产环境测试回滚
- 验证回滚后所有关联要素仍存在
- 重大回滚前与团队沟通
性能考量
大型图表:
- 超过 100 个节点可能导致渲染变慢
- 考虑拆分为多张示意图
- 使用布局算法(比手动定位更快)
复杂边:
- 同一节点间的多条边可能重叠
- 手动定位有助于分离重叠的边
- 未来增强:边路由/捆绑
移动端使用:
- 示意图编辑器针对桌面端优化
- 移动视图可正常使用,但受限于屏幕尺寸
- 建议至少使用平板进行编辑
键盘快捷键
注:键盘快捷键尚未实现。未来将进行增强。
计划功能:
Delete键删除所选元素Ctrl+Z/Cmd+Z撤销(通过版本回滚)- 方向键微调所选节点
Ctrl+C/Ctrl+V复制粘贴节点
导出与共享
当前:
- 示意图存储于数据库(不可导出为文件)
- 通过用户权限共享(所有拥有地图访问权限的用户均可查看示意图)
- 版本历史提供审计追踪
未来增强:
- 导出为 PNG/SVG 图像
- 导出为 GraphML/Cypher 供外部工具使用
- 导出为 JSON 用于备份/迁移
- 生成 URL 以共享特定示意图视图
故障排除
节点无法连接到要素
**问题:**从地图要素添加节点后链接失效
**解决方案:**确认节点是否具有 featureId 属性(查看代码编辑器)
**问题:**地图上已删除要素,但节点仍引用该要素
**解决方案:**手动删除节点或清除 featureId 属性
布局不断重置
**问题:**手动定位未保存 **解决方案:**确保定位后未点击 自动布局
**问题:**重新打开示意图时布局发生变化 **解决方案:**检查布局下拉菜单 — 手动位置已保存,但若清除位置,算法偏好将重新应用
编辑后看不到更改
**问题:**编辑代码后,图表未更新 **解决方案:**检查代码编辑器中的验证错误,点击 刷新 按钮重新初始化
图表性能缓慢
**问题:**拖动节点或添加元素时出现卡顿 **解决方案:**减少节点数量(拆分为多张示意图),简化边数量,避免在大图上使用自动布局