Как установить начальную позицию узлов вcytoscape.js с помощью cy.load?

Я пытаюсь установить начальную позицию своих узлов вручную, но загружаю их из структуры JSON. Если я поместил позицию в структуру «узлов», она работает, однако я пытаюсь добавить отдельную структуру под названием «позиции», которая, по моему мнению, должна работать? Ниже приведен пример структуры.

var graphdata = { nodes: [ { data: { id: 'j', name: 'Jerry', width: 20, height: 20 ,     shape: 'rectangle' }},
                       { data: { id: 't', name: 'Tom', width: 20 , height: 20, shape: 'circle' } },
                       { data: { id: 'm', name: 'Mary', width: 20 , height: 20, shape: 'circle' } } ,
                       { data: { id: 'b', name: 'Bob', width: 20 , height: 20, shape: 'circle' } } ],

              edges: [
                      { data: { source: 'j', target: 't', faveColor: '#6FB1FC', strength: 90 } },
                      { data: { source: 't', target: 'm', faveColor: '#6FB1FC', strength: 90 } },
                      { data: { source: 'm', target: 'b', faveColor: '#6FB1FC', strength: 90 } } ],

             positions: [ { j: { x:100,y:100 } }, 
                          { t: { x:100,y:200 } } ]

Позже я вызываю cy.load(graphdata).

Узлы и ребра отображаются нормально, но на положение, похоже, это никак не влияет.

Я также загрузил предустановленный макет.

Спасибо.


person user1768233    schedule 13.10.2013    source источник


Ответы (2)


Это Cytoscape Web или Cytoscape.js?

В Cytoscape.js,

person maxkfranz    schedule 15.10.2013
comment
его Cytoscape.js. Я могу указать позицию в каждом рабочем элементе, но я не могу сделать то, что хочу в моем примере выше. - person user1768233; 19.10.2013
comment
Вы должны указать позицию в каждом элементе или использовать предустановленный макет. - person maxkfranz; 06.11.2013
comment
Мне пришлось установить свойство макета, чтобы имя свойства было «предустановленным»: layout: {name: 'preset'}, - person Brian; 21.06.2015
comment
Измените имя макета на предустановленное, тогда будет учитываться начальное значение позиций. Но если добавить несколько новых узлов и ребер в график динамически, а затем запустить макет, например cose-bilkent , все узлы будут перемещены, если запустить на всех узлах, а если запустить на новых узлах, может произойти перекрытие. Как решить эту проблему? - person Does; 08.04.2019

Измените имя макета на «предустановленный», тогда будет учитываться значение позиций. Ссылка — http://js.cytoscape.org/#layouts/preset

person vijay    schedule 16.12.2016