关系图、拓扑图
var data = { "children": [{ "children": [{ "ifend": "1", "name": "节点二1", "number": ".18" }], "name": "节点一1", "number": "0" }, { "ifend": "1", "name": "节点一2", "number": ".87" }, { "ifend": "1", "name": "节点一3", "number": ".92" }, { "ifend": "1", "name": "节点一4", "number": "1.68" }, { "children": [{ "code": "2", "ifend": "1", "name": "节点二10", "number": "10.01" }, { "ifend": "1", "name": "节点二11", "number": "0.31" }, { "code": "2", "ifend": "1", "name": "节点二12", "number": "-.92" }, { "code": "2", "name": "节点二2", "number": "100" }, { "ifend": "1", "name": "节点二3", "number": ".05" }, { "ifend": "1", "name": "节点二4", "number": "1.53" }, { "ifend": "1", "name": "节点二5", "number": "1.14" }, { "ifend": "1", "name": "节点二6", "number": "1.98" }, { "ifend": "1", "name": "节点二7", "number": ".02" }, { "ifend": "1", "name": "节点二8", "number": "1.03" }, { "ifend": "1", "name": "节点二9", "number": "3.05" }], "name": "节点一5", "number": ".16" }, { "ifend": "1", "name": "节点一6", "number": "2.33" }], "name": "节点", "number": ".46" }; function format(data) { data.x = 0; data.y = 0; if (!data.hasOwnProperty("children")) { data.len = [1, -1]; data.leny = [1, 9]; return data; } var l2 = data.children; var hi = parseInt(l2.length / 2); var xi = l2.length - hi; var his = getSum(l2, 0, hi); var xis = getSum(l2, xi - 1, l2.length); l2 = sortData(l2, hi, xi); data.children = l2; var jhi = (hi > 9 || his === 0) ? 300 : 200; var jxi = (xi > 9 || xis === 0) ? 300 : 200; var maxmin = [-100000, 100000]; var maxminy = [-100000, 100000]; for (var i = 0; i < l2.length; i++) { if (i < hi) { l2[i].x = getLoction(hi, data.x, i + 1); l2[i].y = data.y + jhi; l2[i].fx = getFX(hi, i, false); } else { l2[i].x = getLoction(xi, data.x, i - hi + 1); l2[i].y = data.y - jxi; l2[i].fx = getFX(xi, i - hi, true); } getMaxMin(maxmin, l2[i].x); getMaxMin(maxminy, l2[i].y); if (!l2[i].hasOwnProperty("children")) { continue; } var l3 = l2[i].children; for (var j = 0; j < l3.length; j++) { if (i < hi) { l3[j].x = getLoction(l3.length, l2[i].x, j + 1); l3[j].y = l2[i].y + 200; l3[j].fx = getFX(l3.length, j, false); } else { l3[j].x = getLoction(l3.length, l2[i].x, j + 1); l3[j].y = l2[i].y - 200; l3[j].fx = getFX(l3.length, j, true); } getMaxMin(maxmin, l3[j].x); getMaxMin(maxminy, l3[j].y); } } var c; if (hi % 2 === 0) { c = hi / 2; if (l2[c].hasOwnProperty("children")) { if (l2[c - 1].hasOwnProperty("children") && l2[c].children[0].x < l2[c].x - 50) { var tem = 50 - l2[c].children[0].x; for (var j = 0; j < l2[c].children.length; j++) { l2[c].children[j].x = l2[c].children[j].x + tem; getMaxMin(maxmin, l2[c].children[j].x); } l2[c].x = getLoction2(l2[c].children); } } } else { c = parseInt(hi / 2); } for (var i = c + 1; i < hi; i++) { if (l2[i].hasOwnProperty("children")) { if (l2[i - 1].hasOwnProperty("children") && l2[i - 1].children[l2[i - 1].children.length - 1].x - l2[i].children[0].x > -100) { var tem = l2[i - 1].children[l2[i - 1].children.length - 1].x + 100 - l2[i].children[0].x; for (var j = 0; j < l2[i].children.length; j++) { l2[i].children[j].x = l2[i].children[j].x + tem; getMaxMin(maxmin, l2[i].children[j].x); } l2[i].x = getLoction2(l2[i].children); } } } for (var i = c - 1; i >= 0; i--) { if (l2[i].hasOwnProperty("children")) { if (l2[i + 1].hasOwnProperty("children") && l2[i + 1].children[0].x - l2[i].children[l2[i].children.length - 1].x < 100) { var tem = l2[i].children[l2[i].children.length - 1].x - (l2[i + 1].children[0].x - 100); for (var j = 0; j < l2[i].children.length; j++) { l2[i].children[j].x = l2[i].children[j].x - tem; getMaxMin(maxmin, l2[i].children[j].x); } l2[i].x = getLoction2(l2[i].children); } } } if (xi % 2 === 0) { c = xi / 2 + hi; if (l2[c].hasOwnProperty("children")) { if (l2[c - 1].hasOwnProperty("children") && l2[c].children[0].x < l2[c].x - 50) { var tem = 50 - l2[c].children[0].x; for (var j = 0; j < l2[c].children.length; j++) { l2[c].children[j].x = l2[c].children[j].x + tem; getMaxMin(maxmin, l2[c].children[j].x); } l2[c].x = getLoction2(l2[c].children); } } } else { c = parseInt(xi / 2) + hi; } for (var i = c + 1; i < l2.length; i++) { if (l2[i].hasOwnProperty("children")) { if (l2[i - 1].hasOwnProperty("children") && l2[i - 1].children[l2[i - 1].children.length - 1].x - l2[i].children[0].x > -100) { var tem = l2[i - 1].children[l2[i - 1].children.length - 1].x + 100 - l2[i].children[0].x; for (var j = 0; j < l2[i].children.length; j++) { l2[i].children[j].x = l2[i].children[j].x + tem; getMaxMin(maxmin, l2[i].children[j].x); } l2[i].x = getLoction2(l2[i].children); } } } for (var i = c - 1; i >= hi; i--) { if (l2[i].hasOwnProperty("children")) { if (l2[i + 1].hasOwnProperty("children") && l2[i + 1].children[0].x - l2[i].children[l2[i].children.length - 1].x < 100) { var tem = l2[i].children[l2[i].children.length - 1].x - (l2[i + 1].children[0].x - 100); for (var j = 0; j < l2[i].children.length; j++) { l2[i].children[j].x = l2[i].children[j].x - tem; getMaxMin(maxmin, l2[i].children[j].x); } l2[i].x = getLoction2(l2[i].children); } } } // data.x = (maxmin[0] - maxmin[1]) / 2 + maxmin[1]; if (maxmin[0] - maxmin[1] <= 400) { maxmin[0] = maxmin[0] + 100; maxmin[1] = maxmin[1] - 100; } data.len = maxmin; data.leny = maxminy; return data; } function format2(data) { if (!data.hasOwnProperty("children")) { return data; } var l2 = data.children; var hi = parseInt(l2.length / 2); var xi = l2.length - hi; var maxmin = data.len; for (var i = 0; i < l2.length; i++) { if (!l2[i].hasOwnProperty("children")) { if (i > 0 && (i != hi) && l2[i - 1].hasOwnProperty("children") && l2[i - 1].children.length > 5) { var tem = (l2[i - 1].children.length - 5) / 2; l2[i].x = l2[i].x + 100 * tem; var len, flag = false; if (i < hi) { len = hi; } else { len = l2.length; } for (var j = i + 1; j < len; j++) { flag = true; l2[j].x = l2[j].x + 100 * tem; if (l2[j].hasOwnProperty("children")) { var children = l2[j].children; for (var k = 0; k < children.length; k++) { children[k].x = children[k].x + 100 * tem; getMaxMin(maxmin, children[k].x); } } getMaxMin(maxmin, l2[j].x); } if (flag) { l2[i].x = l2[i].x > maxmin[0] ? maxmin[0] : l2[i].x; } } else if (i < l2.length - 1 && l2[i + 1].hasOwnProperty("children") && l2[i + 1].children.length > 5) { var tem = (l2[i + 1].children.length - 5) / 2; l2[i].x = l2[i].x - 100 * tem; var len, flag = false; if (i < hi) { len = 0; } else { len = hi; } for (var j = i - 1; j >= len; j--) { flag = true; l2[j].x = l2[j].x - 100 * tem; if (l2[j].hasOwnProperty("children")) { var children = l2[j].children; for (var k = 0; k < children.length; k++) { children[k].x = children[k].x - 100 * tem; getMaxMin(maxmin, children[k].x); } } getMaxMin(maxmin, l2[j].x); } if (flag) { l2[i].x = l2[i].x < maxmin[1] ? maxmin[1] : l2[i].x; } } } } // data.x = (maxmin[0] - maxmin[1]) / 2 + maxmin[1]; if (maxmin[0] - maxmin[1] <= 400) { maxmin[0] = maxmin[0] + 100; maxmin[1] = maxmin[1] - 100; } data.len = maxmin; return data; } function getLoction(num, x, index) { if (num % 2 === 0) { var c = num / 2 - index; x = x - 50 - 100 * c; } else { var c = parseInt(num / 2 + 1) - index; x = x - 100 * c; } return x; } /*function getLoction2(data) { var len = data.length; var x; if (len % 2 === 0) { var c = len / 2; x = data[c - 1].x + 50; } else { var c = parseInt(len / 2 + 1); x = data[c - 1].x; } return x; }*/ function getFX(len, index, fx) { var x, c; if (len < 1) { return 1; } c = (len % 2 === 0) ? len / 2 : (parseInt(len / 2) + 1); x = (index < c) ? 1 : -1; if (fx) { x = -x; } return x; } function getSum(data, st, ed) { if (ed > data.length) { ed = data.length; } var count = 0; for (var i = st; i < ed; i++) { if (!data[i].hasOwnProperty("children")) { continue; } var l3 = data[i].children; count = count + l3.length; } return count; } function sortData(data, hi, xi) { var res = []; var len = hi - 1; var pos = 0; for (var i = 0; i < hi - 1; i++) { var flag = 1; for (var j = 0; j < len; j++) { var dx = !data[j].hasOwnProperty("children") ? 0 : data[j].children.length, dx1 = !data[j + 1].hasOwnProperty("children") ? 0 : data[j + 1].children.length; if (dx > dx1) { var tem = data[j]; data[j] = data[j + 1]; data[j + 1] = tem; flag = 0; pos = j; } } len = pos; if (flag === 1) { break; } } for (var i = 0; i < hi; i++) { if (i % 2 === 0) { res[i / 2] = data[i]; } else { res[hi - (i + 1) / 2] = data[i]; } } len = data.length - 1; pos = 0; for (var i = hi; i < data.length - 1; i++) { var flag = 1; for (var j = hi; j < len; j++) { var dx = !data[j].hasOwnProperty("children") ? 0 : data[j].children.length, dx1 = !data[j + 1].hasOwnProperty("children") ? 0 : data[j + 1].children.length; if (dx > dx1) { var tem = data[j]; data[j] = data[j + 1]; data[j + 1] = tem; flag = 0; pos = j; } } len = pos; if (flag === 1) { break; } } for (var i = 0; i < xi; i++) { if (i % 2 === 0) { res[i / 2 + hi] = data[i + hi]; } else { res[xi - (i + 1) / 2 + hi] = data[i + hi]; } } return res; } function getMaxMin(maxmin, x) { if (maxmin[0] < x) { maxmin[0] = x; } if (maxmin[1] > x) { maxmin[1] = x; } return maxmin; } function initCharts(returninfo) { var res = {}; var links = []; var lines = []; var yiji = 'image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAgCAYAAABO6BuSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFMzhFMDM4REEwQUYxMUVBQkY1NEIzNTg4MTM4RjIxOCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFMzhFMDM4RUEwQUYxMUVBQkY1NEIzNTg4MTM4RjIxOCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkUzOEUwMzhCQTBBRjExRUFCRjU0QjM1ODgxMzhGMjE4IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkUzOEUwMzhDQTBBRjExRUFCRjU0QjM1ODgxMzhGMjE4Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ZMccrwAACbZJREFUeNrkWUtvJFcV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'; var erji = yiji; var sanji = erji; returninfo.number = (returninfo.number === undefined) ? '--' : returninfo.number + '%'; returninfo.number = (returninfo.number.startsWith('.')) ? '0' + returninfo.number : returninfo.number; returninfo.number = (returninfo.number.startsWith('-.')) ? returninfo.number.replace('-.', '-0.') : returninfo.number; var url = '${pageContext.request.requestURL}'.replace('${pageContext.request.requestURI}', ''); var data = [{ name: returninfo.name + ":" + returninfo.number, tooltip: { formatter: "{b}" }, symbol: yiji, symbolSize: [60, 40], value: [returninfo.x, returninfo.y], datadate: returninfo.datadate, spid: returninfo.id }]; if ("children" in returninfo) { var l2 = returninfo.children; var curveness, colork, colorn, xs; for (var i = 0; i < l2.length; i++) { curveness = l2[i].fx === 1 ? 0.1 : -0.1; l2[i].number = (l2[i].number === undefined) ? '--' : l2[i].number + '%'; l2[i].number = (l2[i].number.startsWith('.')) ? '0' + l2[i].number : l2[i].number; l2[i].number = (l2[i].number.startsWith('-.')) ? l2[i].number.replace('-.', '-0.') : l2[i].number; colork = (l2[i].code === '2' || l2[i].code === 2) ? '#C75050' : '#53B5EA'; var link = { source: returninfo.name + ":" + returninfo.number, target: l2[i].name + ":\n" + l2[i].number, lineStyle: { curveness: curveness, color: colork } }; links.push(link); colorn = (l2[i].code === '2' || l2[i].code === 2) ? 'rgba(199,80,80,0.5)' : 'rgba(55,155,255,0.5)'; var line = { coords: [ [returninfo.x, returninfo.y], [l2[i].x, l2[i].y] ], lineStyle: { curveness: curveness, color: colorn } }; lines.push(line); var node = { name: l2[i].name + ":\n" + l2[i].number, tooltip: { formatter: "{b}" }, symbol: erji, symbolSize: [60, 40], value: [l2[i].x, l2[i].y], datadate: l2[i].datadate, ifend: l2[i].ifend, spid: l2[i].id }; data.push(node); if ("children" in l2[i]) { var l3 = l2[i].children; for (var j = 0; j < l3.length; j++) { curveness = l3[j].fx === 1 ? 0.1 : -0.1; l3[j].number = (l3[j].number === undefined) ? '--' : l3[j].number + '%'; l3[j].number = (l3[j].number.startsWith('.')) ? '0' + l3[j].number : l3[j].number; l3[j].number = (l3[j].number.startsWith('-.')) ? l3[j].number.replace('-.', '-0.') : l3[j].number; colork = (l3[j].code === '2' || l3[j].code === 2) ? '#C75050' : '#53B5EA'; var link = { source: l2[i].name + ":\n" + l2[i].number, target: l3[j].name + ":\n" + l3[j].number, lineStyle: { curveness: curveness, color: colork } }; links.push(link); colorn = (l3[j].code === '2' || l3[j].code === 2) ? 'rgba(199,80,80,0.5)' : 'rgba(55,155,255,0.5)'; var line = { coords: [ [l2[i].x, l2[i].y], [l3[j].x, l3[j].y] ], lineStyle: { curveness: curveness, color: colorn } }; lines.push(line); node = { name: l3[j].name + ":\n" + l3[j].number, tooltip: { formatter: "{b}" }, symbol: sanji, symbolSize: [60, 40], value: [l3[j].x, l3[j].y], datadate: l3[j].datadate, ifend: l3[j].ifend, spid: l3[j].id }; data.push(node); } } } } res.data = data; res.links = links; res.lines = lines; res.len = returninfo.len; res.leny = returninfo.leny; return res; } var jsons = format(data); debugger; jsons = format2(jsons); var returninfo = initCharts(jsons); option = { backgroundColor: "#f5f5f5", grid: { left: '5%', right: '5%' }, xAxis: { show: false, type: "value", max: returninfo.len[0], min: returninfo.len[1] }, yAxis: { show: false, type: "value", max: returninfo.leny[0], min: returninfo.leny[1] - 10 }, tooltip: {}, series: [{ type: "graph", zlevel: 5, draggable: false, coordinateSystem: "cartesian2d", //使用二维的直角坐标系(也称笛卡尔坐标系) label: { show: true, color: "#000", position: 'bottom', }, data: returninfo.data, links: returninfo.links, lineStyle: { opacity: 1, width: 2 } }, { type: "lines", coordinateSystem: "cartesian2d", zlevel: 1, animation: false, effect: { show: true, period: 5, trailLength: 0.01, symbolSize: 12, symbol: "pin", loop: true }, data: returninfo.lines, lineStyle: { width: 0 } }, { type: "lines", coordinateSystem: "cartesian2d", zlevel: 1, animation: false, effect: { show: true, period: 6, trailLength: 0.01, symbolSize: 12, symbol: "pin", loop: true }, data: returninfo.lines, lineStyle: { width: 0 } }, { type: "lines", coordinateSystem: "cartesian2d", zlevel: 1, animation: false, effect: { show: true, period: 8, trailLength: 0.01, symbolSize: 12, symbol: "pin", loop: true }, data: returninfo.lines, lineStyle: { width: 0 } }] }; /*myChart.on('click', function(params) { if (params.dataType === 'node') { var data = params.data; if (data.ifend === '1' || data.ifend === 1) { var sp_id = data.spid; var data_date = data.datadate; var url = getUrlByParams("/branchLineLoss/getMeterJson?sp_id=" + sp_id + "&data_date=" + data_date, null); createRespone('楼层结构', url, null, null, '650px', '600px'); } } }*/
echarts版本号:4.8.0