Aptli

示意图

示意图是交互式关系图,用于展示资产如何彼此连接 — 而不仅仅是它们在地图上的位置。可用于建模电路、光纤熔接路径、管道填充、污水处理流程或任何在地理视图中难以看清的逻辑关系。示意图受版本控制,可直接与地图要素关联。

什么是示意图?

示意图 vs. 地图要素:

  • 地图要素 展示事物的位置(空间关系、地理位置)
  • 示意图 展示事物如何连接(逻辑关系、依赖关系)

使用场景:

公用事业网络

  • 建模电路(电杆 → 变压器 → 服务点)
  • 展示管道中的电缆路径
  • 可视化网络分段的容量流

流程图

  • 污水处理厂阶段
  • 制造流程依赖关系
  • 供应链路线规划

组织层级

  • 设备维护依赖关系
  • 资产所有权链
  • 服务交付路径

物理连接

  • 光纤熔接图
  • 管道网络拓扑
  • 暖通空调管道连接

示意图编辑器界面

示意图编辑器以弹出窗口形式从地图页面工具栏显示。它提供功能齐全的图表编辑器,兼具自动布局算法与手动定位功能。

主要组件

图表画布(中心)

  • 交互式节点与边的可视化
  • 手动拖拽节点调整位置
  • 点击元素进行选择与编辑
  • 拖放区域用于从地图添加要素

工具栏(底部)

  • 添加节点 - 创建图表节点(自定义或关联地图要素)
  • 添加边 - 在节点间创建连接
  • 布局选择器 - 选择自动布局算法
  • 自动布局 - 应用所选布局并清除所有手动位置
  • 刷新 - 从数据重新初始化图表

元素编辑器(底部面板)

  • 编辑所选节点或边属性
  • 用于高级 JSON 操作的代码编辑器
  • 常用属性的可视化表单
  • 删除需确认(可通过版本撤销)

元数据面板(顶部)

  • 示意图名称(可内联编辑)
  • 自定义属性(键值对)
  • 版本管理集成

创建示意图

步骤 1:创建示意图

  1. 打开地图页面(https://demo.aptli.io/map
  2. 点击 地图工具栏示意图 按钮
  3. 示意图编辑器在弹出窗口中打开
  4. 显示空白图表画布

步骤 2:添加节点

选项 A:自定义节点(不关联地图)

  1. 点击 添加节点 按钮
  2. 选择 自定义 模式(默认)
  3. 输入节点名称(例如"变压器 A")
  4. 选择几何类型:Point、LineString 或 Polygon
  5. 点击 确认

选项 B:从现有地图要素

  1. 点击 添加节点 按钮
  2. 切换至 从要素 模式
  3. 从下拉菜单选择要素(显示所有地图要素)
  4. 点击 确认(节点通过 featureId 与要素关联)

选项 C:从地图拖拽

  1. 在地图界面中找到要素卡
  2. 将要素卡拖拽至示意图编辑器
  3. 释放至画布(虚线边框区域内)
  4. 自动创建节点并检测几何类型

步骤 3:添加连接(边)

  1. 点击 添加边 按钮
  2. 从下拉菜单选择 节点
  3. 从下拉菜单选择 目标 节点
  4. 可选:输入边标签(例如"供电"、"容量:100A")
  5. 点击 确认

多重边:

  • 同一对节点可有多条边(无上限)
  • 适用于双向流动或不同关系类型
  • 示例:节点 A → 节点 B(供应),节点 B → 节点 A(回流)

步骤 4:安排布局

自动布局(从下拉菜单):

  • 网格 2×2、3×3、4×4、5×5 - 固定网格排列
  • 圆形 - 节点呈圆形排列
  • 广度优先 - 层级树状布局(有向图)
  • 同心圆 - 基于连通性的环状布局
  • 随机 - 节点随机散布

手动定位:

  1. 选择布局预设或跳过
  2. 将单个节点拖拽至目标位置
  3. 手动位置保存于版本数据中
  4. 手动位置优先于布局算法

重置布局:

  • 点击 自动布局 按钮 → 清除所有手动位置
  • 从下拉菜单重新应用所选布局算法

步骤 5:编辑元素

选择元素:

  • 点击画布上的任意节点或边
  • 元素编辑器面板在底部显示

编辑节点属性:

  • 名称 - 显示标签(内联编辑或代码编辑器)
  • 几何类型 - Point、LineString 或 Polygon
  • 要素链接 - 连接至地图要素的 featureId
  • 自定义属性 - 添加任何键值数据

编辑边属性:

  • 标签 - 连接描述
  • - 起始节点(通过代码编辑器修改)
  • 目标 - 结束节点(通过代码编辑器修改)

代码编辑器(高级):

  1. 在元素编辑器中点击 显示代码
  2. JSON 表示法显示在文本区域中
  3. 直接编辑(完整元素结构)
  4. 点击 格式化 JSON 进行美化打印
  5. 点击 应用更改(通过 Zod schema 验证)
  6. 若结构无效,将显示验证错误

删除元素:

  1. 选择元素
  2. 在元素编辑器中点击 删除 按钮
  3. 出现确认删除对话框
  4. 元素被移除(变更记录于版本历史中)

布局配置

每张示意图会将其首选布局算法保存至数据库。当您重新打开示意图时,会自动应用已保存的布局。

持久化布局:

  • 下拉选择按示意图单独存储
  • 默认:网格 3×3
  • 更改在不同会话中持续生效

手动 vs. 自动:

  • 若任何节点有手动位置 → 使用"preset"布局(保留位置)
  • 若无手动位置 → 应用下拉菜单中的算法
  • 点击 自动布局 清除位置并重新应用算法

切换布局:

  1. 更改下拉菜单选项
  2. 布局立即应用
  3. 所有手动位置被清除
  4. 新布局提交至版本历史

版本管理

示意图采用与地图要素相同的版本/提交系统。

自动提交:

  • 每次变更创建版本条目
  • 添加/删除节点 → 提交
  • 添加/删除边 → 提交
  • 编辑元素属性 → 提交
  • 更改布局 → 提交

版本历史:

  • 通过版本管理器访问(地图工具栏)
  • 查看图表随时间的所有变更
  • 回滚至先前状态
  • 合并协作者的离线编辑
  • 从工具栏执行提交 → 请求提交;非管理员将草稿发送至管理员队列待审批(参见 Admin → Versions)

离线编辑:

  • 离线创建/编辑示意图
  • 更改存储于浏览器本地存储
  • 联网后同步
  • 支持并发编辑的冲突检测

高级功能

拖放集成

示意图与 Aptli 的拖放系统集成:

从地图到示意图:

  • 从图层面板拖拽要素卡
  • 拖拽所选要素列表项
  • 放入示意图编辑器画布
  • 自动创建带 featureId 链接的节点

几何类型检测:

  • Point 要素 → 点图标
  • LineString 要素 → 线图标
  • Polygon 要素 → 多边形图标
  • 图标有助于快速识别节点类型

实时代码编辑

代码编辑器为高级用户提供直接的 JSON 操作功能。

验证:

  • 所有编辑在应用前均经过验证
  • id 为必填(必须是非空字符串)
  • geometryType 必须为 PointLineStringPolygon(若存在)
  • 位置坐标必须为数值
  • 边需要 sourcetarget
  • 节点不可包含 sourcetarget

使用场景:

  • 批量属性变更(复制粘贴 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 属性

布局不断重置

**问题:**手动定位未保存 **解决方案:**确保定位后未点击 自动布局

**问题:**重新打开示意图时布局发生变化 **解决方案:**检查布局下拉菜单 — 手动位置已保存,但若清除位置,算法偏好将重新应用

编辑后看不到更改

**问题:**编辑代码后,图表未更新 **解决方案:**检查代码编辑器中的验证错误,点击 刷新 按钮重新初始化

图表性能缓慢

**问题:**拖动节点或添加元素时出现卡顿 **解决方案:**减少节点数量(拆分为多张示意图),简化边数量,避免在大图上使用自动布局

相关文档