antvis/G6

带有 Combo 的图中,传入具有坐标的图数据,但是最终渲染结果依然是自动布局的。 #5093

kevinzhao2233 posted onGitHub

问题描述

comboCombined 布局,外部为 radial,内部为 grid,每次生成的图布局都不确定。于是准备传入具有位置(x 和 y)的图数据,但是最终的结果并不会受 x 和 y 的影响。

重现链接

https://codesandbox.io/s/nostalgic-mclaren-m7mwy2

重现步骤

在 codesandbox 中查看即可

预期行为

根据这个 data,预期生成的图类似下面这样布局: 1

但是生成的是下面这样的,也就是说完全忽略了 data 中所有 node 和 combo 的位置信息。 Snipaste_2023-10-27_18-01-23

平台

  • 操作系统: [macOS, Windows, Linux, React Native ...]
  • 网页浏览器: [Google Chrome, Safari, Firefox]
  • G6 版本: [4.5.1 ... ]

屏幕截图或视频(可选)

No response

补充说明(可选)

对了,codesandbox 中会生成两个画布,不知道是为什么


hi @kevinzhao2233, welcome!

posted by github-actions[bot] over 1 year ago

Hi @kevinzhao2233, Please star this repo if you find it useful! Thanks :star:! 你好 @kevinzhao2233。如果该仓库对你有用,可以 star 一下,感谢你的 :star:!

posted by github-actions[bot] over 1 year ago

目前用下面的方法实现了固定节点和 Combo 的需求

// 前提:需要更改位置的节点不能处于 collapse 的 Combo 中,如果有,则需要先展开对应的 Combo
// 更新了某个节点的位置
const node1 = graph.findById('node1');
graph.updateItem(node1, {
  x: 100,
  y: 100,
});
const comboId = node1.getModel().comboId;

// 更新 node1 所属的 combo 及其所有祖先 combo 的大小和位置
graph.updateCombo(comboId);

这些代码在初始布局完成之后执行即可,如果需要更改位置的节点过多,则将 updateItem 操作写在一个循环里面。

posted by kevinzhao2233 over 1 year ago

Fund this Issue

$0.00
Funded

Pull requests