vis-network中文文档 - Cluster(集群配置项)

976 阅读2分钟

原文

提供给集群方法的配置对象(options)可以包含以下属性:

名称
joinCondition(
    nodeOptions: Object
)
or
joinCondition(
    parentNodeOptions: Object,
    childNodeOptions: Object
)
Function除集群方法外的所有方法均可选。
clusterbyConnection 是唯一一个将2个 nodeOptions 对象作为参数传递给 joinCondition 回调的集群方法。
集群模块将循环遍历选定在集群中的所有节点,并用它们的数据(包含节点配置项)作为参数调用这个函数。 如果此函数返回 true,则此节点将被添加到集群中。
你可以访问所有的节点配置项(包括默认配置项)以及可能已经添加到节点的任何自定义字段,以确定是否将其包含在集群中。 例子:
var nodes = [
    {id: 4, label: 'Node 4'},
    {id: 5, label: 'Node 5'},
    {id: 6, label: 'Node 6', cid:1},
    {id: 7, label: 'Node 7', cid:1} ]
var options = {
    joinCondition:  function(nodeOptions) {
            return nodeOptions.cid === 1;
} }
network.clustering.cluster(options);
clusterbyConnection 将传递2个 nodeOptions 对象作为 joinCondition 回调的参数。
processProperties(
    clusterOptions: Object,
    childNodesOptions: Array,
    childEdgesOptions: Array
)
Function可选的。 在创建新的集群节点之前,将使用您提供的属性(clusterNodeProperties)调用这个(可选的)函数,包含所有节点和所有包含的边。 您可以使用它根据集群包含的项更新集群的属性。 该函数应该返回创建集群节点的属性。 在下面的例子中,我们确保在形成集群时保存‘’mass‘’和''value'':
var options = {
    processProperties: function (clusterOptions, childNodes, childEdges) {
    var totalMass = 0;
    var totalValue = 0;
    for (var i = 0; i < childNodes.length; i++) {
        totalMass += childNodes[i].mass;
        totalValue = childNodes[i].value ? totalValue + childNodes[i].value : totalValue;
    }
    clusterOptions.mass = totalMass;
     if (totalValue > 0) {
        clusterOptions.value = totalValue;
    }
    return clusterOptions;
    },
}
clusterNodePropertiesObject可选的。 这是一个包含''集群节点''配置项的对象。 允许节点模块中描述的所有配置项。 这允许您自定义集群节点的样式。 这也是提供给 processProperties 函数的样式对象。如果undefined,将使用默认节点配置项。
在默认情况下只允许将2个或以上的节点进行集群。 要允许对单个节点进行集群,可以使用 allowSingleNodeCluster: true 属性。
clusterNodeProperties: { allowSingleNodeCluster: true }
clusterEdgePropertiesObject可选的。 这是一个包含连接到''集群节点''的边的配置项对象。 允许边模块中描述的所有配置项。 使用这个,你可以自定义连接到集群的边。 如果没有提供,则使用被替换边缘的选项。 如果未定义,将使用默认边缘选项。