代码之家  ›  专栏  ›  技术社区  ›  foufrix

使用Vis预定义布局。js网络

  •  0
  • foufrix  · 技术社区  · 7 年前

    我想知道是否有一种方法可以在Vis中注入预定义的布局。

    当我拖放每个节点时,我成功地保存了节点的所有坐标(X:Y),然后使用每个节点的指定ID将其保存到数据库中。

    当我用vis初始化地图时,我所面临的困难是将此数据集指定给vis(以下是布局初始化的文档: http://visjs.org/docs/network/layout.html# )

    我想放置一个带有id节点和位置X Y的数组,以便在用户更改布局时保存它。

    看来这是不可能的,但也许有一种隐藏的方式?

    提前感谢

    2 回复  |  直到 7 年前
        1
  •  1
  •   YakovL Naresh Kumar Nakka    7 年前

    这很有可能:

    • 要设置初始布局,只需向每个节点添加坐标(并禁用物理,使其不会偏离其位置):

      nodes = [{id:1, label:'some', x:100, y:0 }, ... ];
      options = { physics: false, ... };
      
    • 要获取当前坐标,请使用 network.getPositions()

    • 要在布局更改时保存这些内容,您可能需要使用 dragEnd event 以及 on method (使用 网络getPositions() 事件处理程序内部)

    您可以在 VisGraphPlugin repo (这是TiddlyWiki Classic的插件),只需查找 德拉根德 saveDataAndOptions ,后者可能会引起兴趣。

        2
  •  1
  •   João Menighin    7 年前

    您只需使用 getSeed() 方法将布局配置保存在种子中。然后,当您再次启动网络时,可以将此种子加载到 layout.randomSeed 具有相同的配置。

    的文档 getSeed() 表示:

    如果您喜欢网络的布局,并且希望下次以相同的方式启动,请使用此方法请求种子并将其放入 布局随机种子 选项

    推荐文章