在两个节点之间聚集多个边

时间:2018-04-03 09:25:02

标签: vis.js vis.js-network

我使用vis.js进行网络可视化。 我的想法是开发一个像Google Maps Zoom这样的解决方案,它可以在未缩放时聚集边缘和节点。

我希望将节点与在相同的两个节点之间聚集多个边缘分开。 像群集节点一样,当群集边缘被缩放或单击时,我想要显示所有不同的边缘以及更多信息。

我还没有在vis.js文档中找到有关群集,问题和问题的答案。这个功能可用吗?

1 个答案:

答案 0 :(得分:0)

据我所知,术语"聚类"仅适用于vis.js中的节点。词汇。但是,你可以做的是隐藏边缘。

您必须设置一个on click处理程序,您可以抓住所选边缘,获取其fromto个节点(如果有,则需要决定该怎么做)但是,不止一个选定的边缘,找到连接它们的边缘和hide除了一个之外的所有边缘。

network.on('click',function(eventParams){

    var edges = eventParams.edges;
    if(edges.length == 0)
        return;

    var edge = edges[0],
        fromID = edge.from,
        toID = edge.to;

    // get the nodes by ids, find all edges connecting them, hide all but the selected one
});

要进一步推进切换,你必须检查隐藏的任何连接边是否显示全部,如果隐藏了至少一个,或者隐藏除了一个以外的所有连接边。