我想知道是否有办法在Vis中注入预定义布局。
当我拖放每个节点时,我设法保存了我的节点的所有坐标(X:Y),然后将每个节点保存到具有指定ID的数据库中。
我正在努力的是在用vis初始化地图时将此数据集指定为vis(这是布局初始化的文档:http://visjs.org/docs/network/layout.html#)
我想将一个数组与我的id节点和位置X Y放在一起,以便在用户更改其布局时保存它。
看来这是不可能的,但也许有一种隐藏的方式?
提前致谢
答案 0 :(得分:0)
您可以使用getSeed()
方法将布局配置保存在种子中,而不是保存位置和ID。然后,当您再次启动网络时,可以将此种子加载到layout.randomSeed
以具有相同的配置。
getSeed()
的文档说:
如果您喜欢网络的布局并希望下次以相同的方式启动,请使用此方法请求种子并将其放在
layout.randomSeed
选项中。
答案 1 :(得分:0)
这很有可能:
设置初始布局,只需为每个节点添加坐标(并禁用物理,以便它们不会离开它们的位置):
nodes = [{id:1, label:'some', x:100, y:0 }, ... ];
options = { physics: false, ... };
要获取当前坐标,请使用network.getPositions()
dragEnd
event和on
method(在事件处理程序中使用network.getPositions()
)您可以在VisGraphPlugin repo(它是TiddlyWiki Classic的插件)中选择我的实施,只需查看dragEnd
和saveDataAndOptions
,后者可能会引起关注。< / p>