带有自定义中心坐标的圆形布局

时间:2015-11-12 14:17:42

标签: cytoscape.js

我正在使用jVectorMap生成的世界地图上使用cytoscape.js构建动态图。 从json数据的LAT / LON格式的坐标开始,我可以在生成的地图上用point.x / point.y转换它们:

var nodePoint = theMap.latLngToPoint(node.data.lat, node.data.lon)

然后我可以在图表中添加新节点:

cy.add({
        group: "nodes",
        position: { x: nodePoint.x, y: nodePoint.y },
        style: {
        'background-color': node.color
        },   
        data: {
            id: node.id,
            name: node.label,
            customData: node.data,
        }
    })

这部分有效,但是当json返回多个具有相同坐标的节点时,我想用这些点共享LAT / LON信息。

我能够识别这些节点并对它们应用专用布局,但生成的布局位于图形的屏幕/ div的中心。

我想知道的是,是否有一种简单的方法可以应用具有特定中心点的圆形布局。

(我想避免实现我正在评估的解决方案......即在中心点周围建立一个边界框,看看会发生什么,(边界框大小随着节点数的增长而增加)点))

1 个答案:

答案 0 :(得分:0)

在文档中包含的Wine和cheese示例中,他们使用边界框强制围绕选定节点(http://js.cytoscape.org/demos/cde4db55e581d10405f5/)的同心布局。

虽然您表示您希望避免此解决方案,但它似乎是一个简单的解决方案。该示例中的实现相当优雅。