Я работаю над приложением, которое извлекает данные из базы данных, и я хотел бы показать их в виде графика.
Я управлял событием "tap" на узле, показывая их соседей (узлы и соединения)).
Проблема в том, что каждый раз, когда я хочу показать соседей, весь граф перерисовывается, и если некоторые узлы были перемещены ранее, они теряют свою прежнюю позицию.
IsЕсть ли способ добавить только соседей, не влияя на положение узла, уже присутствующего в макете?
Важно : ограничение состоит в том, что все узлы должны быть «подвижными»: числоколичество узлов в графе может легко увеличиться, и я хотел бы иметь возможность перемещать / организовывать их без потери результата при добавлении новых (щелкая по узлу)
Я использую кола-макет в моем проекте.
Вот как мне удалось добавить соседей:
function addNeighbour(node, link) {
cy.startBatch();
addNode(link.otherNode.type, link.otherNode.name, link.otherNode.properties);
cy.add([
{
group: 'edges',
data:
{
id: node + ":" + link.type + ":" + link.otherNode.type + ":" + link.otherNode.name,
source: source,
target: target,
type: link.type,
properties: linkproperties
}
}
]);
refreshLayout()
cy.endBatch();
}
}
var layoutOpts = {
name: 'cola',
refresh: 2,
edgeLength: 200,
fit: false
}
function refreshLayout() {
layout.stop();
layout = cy.elements().makeLayout(layoutOpts);
layout.run();
}
Заранее спасибо