我正在使用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的中心。
我想知道的是,是否有一种简单的方法可以应用具有特定中心点的圆形布局。
(我想避免实现我正在评估的解决方案......即在中心点周围建立一个边界框,看看会发生什么,(边界框大小随着节点数的增长而增加)点))
答案 0 :(得分:0)
在文档中包含的Wine和cheese示例中,他们使用边界框强制围绕选定节点(http://js.cytoscape.org/demos/cde4db55e581d10405f5/)的同心布局。
虽然您表示您希望避免此解决方案,但它似乎是一个简单的解决方案。该示例中的实现相当优雅。