2016-08-07 124 views
0

我使用vis.js 4.16.1來繪製網絡圖。目前我有兩個網絡圖。用戶繪圖的一個網絡圖。用戶完成後,我想要將網絡圖的任何內容複製到第二個網絡圖。但是,我不能設定與第一個觀點相同的觀點。這是第一個網絡的選項:vis.js網絡擬合函數

options = { 
    locale: 'en', 
    physics: { 
     "enabled": false, 
    }, 
    edges: { 
     smooth: { 
      type: 'continuous' 
     } 
    }, 
    interaction: { 
     navigationButtons: true, 
     selectConnectedEdges: false 
    } 
}; 

我禁用了物理,以允許用戶自己組織節點。
這是第二網絡的選項:

var options = { 
    locale: 'en', 
    physics: { 
     "enabled": false 
    }, 
    edges: { 
     smooth: { 
      type: 'continuous' 
     } 
    }, 
    interaction: { 
     dragNodes: false, 
     dragView:true 
    } 
}; 

當我使用的擬合函數(http://www.cse.unsw.edu.au/~mike/myrlibrary/visNetwork/doc/network/

var fitOption = { 
    nodes: nodes.getIds() //nodes is type of vis.DataSet contains all the nodes 
} 
secondNetwork.fit(fitOption); 

沒有什麼改變。 當我使用moveTo功能:

var centerOptions = { 
    position: { 
     x: firstNetwork.getViewPosition().x, 
     y: firstNetwork.getViewPosition().y}, 
    } 
} 
secondNetwork.moveTo(centerOptions); 

不過,我無法將畫布上移動了上述第一網絡集中點。畫布根本不動。 有人可以給我一些建議嗎?在此先感謝,

回答

0

您可以使用network.fit(),這將與右下角的上部按鈕相同。所以所有的節點都將被聚焦。

您可以使用DataSet對象爲節點和邊緣,比其相當容易的所有節點和邊緣相同的x,y座標複製與

VAR XY = network1.edges.get(); network2.edges.add(xy);

0

感謝雷納,我也弄不清爲什麼飛度()和的moveTo()函數沒有在我的環境中工作,我需要設置的選項:

physics: { 
    "enabled": true 
} 

否則它不工作。在我調用我的fit()函數之前做了什麼,啓用了更改爲true,調用fit()函數,然後將啓用設置爲false。