使用 Vis.js 网络预定义布局
Predefine Layout using Vis.js network
我想知道是否有办法在 Vis 中注入预定义布局
当我拖放每个节点时,我设法保存了我节点的所有坐标 (X:Y),然后使用每个节点的指定 ID 将其保存到数据库中。
我遇到的问题是在使用 vis 初始化地图时将此数据集指定为 vis(这里是布局初始化文档:http://visjs.org/docs/network/layout.html#)
我想放置一个包含我的 ID 节点和位置 X Y 的数组,以便在用户更改布局时保存它。
看来不可能,但也许有隐藏的方法?
提前致谢
您可以简单地使用 getSeed()
方法将您的布局配置保存在种子中,而不是保存位置和 ID。然后,当您再次启动网络时,您可以将此种子加载到 layout.randomSeed
以具有相同的配置。
getSeed()
的文档说:
If you like the layout of your network and would like it to start in the same way next time, ask for the seed using this method and put it in the layout.randomSeed
option.
这是很有可能的:
要设置初始布局,只需为每个节点添加坐标(并禁用物理,这样它们就不会离开它们的位置):
nodes = [{id:1, label:'some', x:100, y:0 }, ... ];
options = { physics: false, ... };
获取当前坐标,使用network.getPositions()
- 要在布局更改时保存这些内容,您可能需要使用
dragEnd
event and the on
method(在事件处理程序中使用 network.getPositions()
)
你可以在 VisGraphPlugin repo 中选择我的实现(它是 TiddlyWiki Classic 的一个插件),只需寻找 dragEnd
和 saveDataAndOptions
,后者可能是你感兴趣的。
我想知道是否有办法在 Vis 中注入预定义布局
当我拖放每个节点时,我设法保存了我节点的所有坐标 (X:Y),然后使用每个节点的指定 ID 将其保存到数据库中。
我遇到的问题是在使用 vis 初始化地图时将此数据集指定为 vis(这里是布局初始化文档:http://visjs.org/docs/network/layout.html#)
我想放置一个包含我的 ID 节点和位置 X Y 的数组,以便在用户更改布局时保存它。
看来不可能,但也许有隐藏的方法?
提前致谢
您可以简单地使用 getSeed()
方法将您的布局配置保存在种子中,而不是保存位置和 ID。然后,当您再次启动网络时,您可以将此种子加载到 layout.randomSeed
以具有相同的配置。
getSeed()
的文档说:
If you like the layout of your network and would like it to start in the same way next time, ask for the seed using this method and put it in the
layout.randomSeed
option.
这是很有可能的:
要设置初始布局,只需为每个节点添加坐标(并禁用物理,这样它们就不会离开它们的位置):
nodes = [{id:1, label:'some', x:100, y:0 }, ... ]; options = { physics: false, ... };
获取当前坐标,使用
network.getPositions()
- 要在布局更改时保存这些内容,您可能需要使用
dragEnd
event and theon
method(在事件处理程序中使用network.getPositions()
)
你可以在 VisGraphPlugin repo 中选择我的实现(它是 TiddlyWiki Classic 的一个插件),只需寻找 dragEnd
和 saveDataAndOptions
,后者可能是你感兴趣的。