在cytoscape.js中的节点上方添加额外信息

在cytoscape.js中的节点上方添加额外信息,cytoscape.js,cytoscape-web,Cytoscape.js,Cytoscape Web,使用cytoscape.js绘制图形。我需要在右上角的节点上方添加圆。绘制完图后,是否有API可以用来获取节点的位置 此外,我使用的代码如下: 要素:{ 节点:[{ 数据:{ id:'1', 姓名:“A” } } ] } var pos = cy.nodes("#1").position(); “#1”是数据属性中节点的ID。但是,我们无法将节点/圆添加到该确切位置。如果您希望获得以下内容: 然后,此代码将圆添加到一个知道其id的节点: 函数addCircle(nodeId,circleTe

使用cytoscape.js绘制图形。我需要在右上角的节点上方添加圆。绘制完图后,是否有API可以用来获取节点的位置

此外,我使用的代码如下: 要素:{ 节点:[{ 数据:{ id:'1', 姓名:“A” } } ] }

var pos = cy.nodes("#1").position();

“#1”是数据属性中节点的ID。但是,我们无法将节点/圆添加到该确切位置。

如果您希望获得以下内容:

然后,此代码将圆添加到一个知道其id的节点:

函数addCircle(nodeId,circleText){
var parentNode=cy.$(“#”+nodeId);
if(parentNode.data('isCircle')| | parentNode.data('circleId'))
返回;
parentNode.lock();
var px=parentNode.position('x')+10;
var py=parentNode.position('y')-10;
var circleId=(cy.nodes().size()+1.toString();
parentNode.data('circleId',circleId);
赛义德({
组:'节点',
数据:{weight:75,id:circleId,name:circleText,isCircle:true},
位置:{x:px,y:py},
锁定:对
}).css({
“背景色”:“黄色”,
'形状':'椭圆',
“背景不透明度”:0.5
}).unselectify();
}
// ...
addCircle('1','Bubble A');
但是,当布局稳定下来时,必须在节点位置已知后调用

锁定是为了防止节点和它的圆分开

JSFIDLE演示:

一旦实现了,使用复合节点将节点和它的圆保持在一起可能会更好


免责声明:我是cytoscape.js新手,使用风险自负

您可以提供您的尝试吗?使用cy.add()作为示例,在传递给它的位置添加节点。因此函数
addRandomNode
接收绝对坐标,您想在该绝对位置创建一个圆吗?您认为由
cy.nodes(“#1”).position('x')
cy.nodes('x')
计算的位置不正确吗?我想在节点上方创建一个圆(即Id=1)。获取变量中的位置值并将其传递给函数,但正如您所看到的,没有输出显示在div内任何位置添加的节点。使用该位置值,我如何在节点上创建圆?@smitachougale欢迎使用堆栈溢出:)我们也可以在边上创建圆吗?@smitachougale在我的回答中,圆可以定位在任何位置。它只显示在节点上方。你可以用边和边把它定位在边缘的中间。它应该适用于直边。对于曲线边缘,可能有更好的方法。打开新的SO问题,了解并观察如何使用此cy.add()方法在曲线边上绘制圆?@smitachougale我不知道如何从外部接近它。就我个人而言,我会尝试直接把它插入到曲线坐标已知的地方。做这件事需要像在学校一样学习