最近用echarts做图的关系实现图
数据结构
连接线会重合,解决办法
import Graph from 'echarts/lib/data/Graph'
import echarts from 'echarts'
const Edge = Graph.Edge
const Node = Graph.Node
function generateNodeKey(id) {
return '_EC_' + id;
}
Graph.prototype.addEdge = function (n1, n2, dataIndex) {
var nodesMap = this._nodesMap;
var edgesMap = this._edgesMap; // PNEDING
if (typeof n1 === 'number') {
n1 = this.nodes[n1];
}
if (typeof n2 === 'number') {
n2 = this.nodes[n2];
}
if (!Node.isInstance(n1)) {
n1 = nodesMap[generateNodeKey(n1)];
}
if (!Node.isInstance(n2)) {
n2 = nodesMap[generateNodeKey(n2)];
}
if (!n1 || !n2) {
return;
}
var key = n1.id + '-' + n2.id; // PENDING
// if (edgesMap[key]) {
// return;
// }
var edge = new Edge(n1, n2, dataIndex);
edge.hostGraph = this;
if (this._directed) {
n1.outEdges.push(edge);
n2.inEdges.push(edge);
}
n1.edges.push(edge);
if (n1 !== n2) {
n2.edges.push(edge);
}
this.edges.push(edge);
edgesMap[key] = edge;
return edge;
}
连接的曲线
参考文档