我正在使用 vis.js 4.16.1 来绘制网络图。目前我有两个网络图。一张供用户绘制的网络图。用户完成后,我想将网络图的所有内容准确复制到第二个网络图。然而,我无法设定与第一个相同的观点。这是第一个网络的选项:
options = {
locale: 'en',
physics: {
"enabled": false,
},
edges: {
smooth: {
type: 'continuous'
}
},
interaction: {
navigationButtons: true,
selectConnectedEdges: false
}
};
我已禁用物理以允许用户自己组织节点。
这是第二个网络的选项:
var options = {
locale: 'en',
physics: {
"enabled": false
},
edges: {
smooth: {
type: 'continuous'
}
},
interaction: {
dragNodes: false,
dragView:true
}
};
当我使用 fit 函数 ( http://www.cse.unsw.edu.au/~mike/myrlibrary/visNetwork/doc/network/ )
var fitOption = {
nodes: nodes.getIds() //nodes is type of vis.DataSet contains all the nodes
}
secondNetwork.fit(fitOption);
没有任何改变。
当我使用 moveTo
函数时:
var centerOptions = {
position: {
x: firstNetwork.getViewPosition().x,
y: firstNetwork.getViewPosition().y},
}
}
secondNetwork.moveTo(centerOptions);
不过,我无法将 Canvas 移动到第一个网络聚焦的位置。 Canvas 根本没有动。 有人可以给我一些建议吗?预先感谢,
最佳答案
谢谢 Reiner,我已经找出了 fit() 和 moveTo() 函数在我的上下文中不起作用的原因,我需要设置选项:
physics: {
"enabled": true
}
否则无法正常工作。所做的是在调用我的 fit() 函数之前,将启用更改为 true,调用 fit() 函数,然后将启用设置为 false。
关于javascript - vis.js 网络拟合函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38810722/