关系图箭头指向自定义坐标

描述:当前是关于Echarts图表中的 关系图 示例。
 
            
 var renderData = {
     edges: [{
         "source": "AX0002001",
         "sourcename": "TestSys2Db1",
         "sourcecnname": "测试数据库1",
         "target": "AX0005001",
         "targetname": "TestSys5Db1",
         "targetcnname": "测试数据库1",
         "MappingNo": "MAP002001",
         "rank": "db"
     }, {
         "source": "AX0002002",
         "sourcename": "TestSys2Db2",
         "sourcecnname": "测试数据库2",
         "target": "AX0005002",
         "targetname": "TestSys5Db2",
         "targetcnname": "测试数据库2",
         "MappingNo": "MAP002002",
         "rank": "db"
     }, {
         "source": "AX0002003",
         "sourcename": "TestSys2Db3",
         "sourcecnname": "测试数据库3",
         "target": "AX0005003",
         "targetname": "TestSys5Db3",
         "targetcnname": "测试数据库3",
         "MappingNo": "MAP002003",
         "rank": "db"
     }, {
         "source": "AX0002004",
         "sourcename": "TestSys2Db4",
         "sourcecnname": "测试数据库4",
         "target": "AX0005004",
         "targetname": "TestSys5Db4",
         "targetcnname": "测试数据库4",
         "MappingNo": "MAP002004",
         "rank": "db"
     }, {
         "source": "AX0002005",
         "sourcename": "TestSys2Db5",
         "sourcecnname": "测试数据库5",
         "target": "AX0005005",
         "targetname": "TestSys5Db5",
         "targetcnname": "测试数据库5",
         "MappingNo": "MAP002005",
         "rank": "db"
     }],
     nodes: [{
         "name": "AX0002001",
         "x": 75,
         "y": 10,
         "No": "AX0002001",
         "ename": "TestSys2Db1",
         "cnname": "测试数据库1",
         "showData": {
             "resultCode": "",
             "numOfTables": 0,
             "numOfColumns": 0
         },
         "sysno": "AX0002",
         "sysname": "TestSys2",
         "dbno": null,
         "dbname": null
     }, {
         "name": "AX0002002",
         "x": 75,
         "y": 40,
         "No": "AX0002002",
         "ename": "TestSys2Db2",
         "cnname": "测试数据库2",
         "showData": {
             "resultCode": "",
             "numOfTables": 0,
             "numOfColumns": 0
         },
         "sysno": "AX0002",
         "sysname": "TestSys2",
         "dbno": null,
         "dbname": null
     }, {
         "name": "AX0002003",
         "x": 75,
         "y": 70,
         "No": "AX0002003",
         "ename": "TestSys2Db3",
         "cnname": "测试数据库3",
         "showData": {
             "resultCode": "",
             "numOfTables": 0,
             "numOfColumns": 0
         },
         "sysno": "AX0002",
         "sysname": "TestSys2",
         "dbno": null,
         "dbname": null
     }, {
         "name": "AX0002004",
         "x": 75,
         "y": 100,
         "No": "AX0002004",
         "ename": "TestSys2Db4",
         "cnname": "测试数据库4",
         "showData": {
             "resultCode": "",
             "numOfTables": 0,
             "numOfColumns": 0
         },
         "sysno": "AX0002",
         "sysname": "TestSys2",
         "dbno": null,
         "dbname": null
     }, {
         "name": "AX0002005",
         "x": 75,
         "y": 130,
         "No": "AX0002005",
         "ename": "TestSys2Db5",
         "cnname": "测试数据库5",
         "showData": {
             "resultCode": "",
             "numOfTables": 0,
             "numOfColumns": 0
         },
         "sysno": "AX0002",
         "sysname": "TestSys2",
         "dbno": null,
         "dbname": null
     }, {
         "name": "AX0005001",
         "x": 320,
         "y": 10,
         "No": "AX0005001",
         "ename": "TestSys5Db1",
         "cnname": "测试数据库1",
         "showData": {
             "resultCode": "",
             "numOfTables": 0,
             "numOfColumns": 0
         },
         "symbolSize": [0, 25],
         "label": {
             "normal": {
                 "show": false
             },
             "emphasis": {
                 "show": false
             }
         }
     }, {
         "name": "AX0005002",
         "x": 320,
         "y": 40,
         "No": "AX0005002",
         "ename": "TestSys5Db2",
         "cnname": "测试数据库2",
         "showData": {
             "resultCode": "",
             "numOfTables": 0,
             "numOfColumns": 0
         },
         "symbolSize": [0, 25],
         "label": {
             "normal": {
                 "show": false
             },
             "emphasis": {
                 "show": false
             }
         }
     }, {
         "name": "AX0005003",
         "x": 320,
         "y": 70,
         "No": "AX0005003",
         "ename": "TestSys5Db3",
         "cnname": "测试数据库3",
         "showData": {
             "resultCode": "",
             "numOfTables": 0,
             "numOfColumns": 0
         },
         "symbolSize": [0, 25],
         "label": {
             "normal": {
                 "show": false
             },
             "emphasis": {
                 "show": false
             }
         }
     }, {
         "name": "AX0005004",
         "x": 320,
         "y": 100,
         "No": "AX0005004",
         "ename": "TestSys5Db4",
         "cnname": "测试数据库4",
         "showData": {
             "resultCode": "",
             "numOfTables": 0,
             "numOfColumns": 0
         },
         "symbolSize": [0, 25],
         "label": {
             "normal": {
                 "show": false
             },
             "emphasis": {
                 "show": false
             }
         }
     }, {
         "name": "AX0005005",
         "x": 320,
         "y": 130,
         "No": "AX0005005",
         "ename": "TestSys5Db5",
         "cnname": "测试数据库5",
         "showData": {
             "resultCode": "",
             "numOfTables": 0,
             "numOfColumns": 0
         },
         "symbolSize": [0, 25],
         "label": {
             "normal": {
                 "show": false
             },
             "emphasis": {
                 "show": false
             }
         }
     }, {
         "name": "\tAX0005001",
         "x": 400,
         "y": 10,
         "No": "AX0005001",
         "ename": "TestSys5Db1",
         "cnname": "测试数据库1",
         "showData": {
             "resultCode": "",
             "numOfTables": 0,
             "numOfColumns": 0
         },
         "sysno": "AX0005",
         "sysname": "TestSys5",
         "dbno": null,
         "dbname": null
     }, {
         "name": "\tAX0005002",
         "x": 400,
         "y": 40,
         "No": "AX0005002",
         "ename": "TestSys5Db2",
         "cnname": "测试数据库2",
         "showData": {
             "resultCode": "",
             "numOfTables": 0,
             "numOfColumns": 0
         },
         "sysno": "AX0005",
         "sysname": "TestSys5",
         "dbno": null,
         "dbname": null
     }, {
         "name": "\tAX0005003",
         "x": 400,
         "y": 70,
         "No": "AX0005003",
         "ename": "TestSys5Db3",
         "cnname": "测试数据库3",
         "showData": {
             "resultCode": "",
             "numOfTables": 0,
             "numOfColumns": 0
         },
         "sysno": "AX0005",
         "sysname": "TestSys5",
         "dbno": null,
         "dbname": null
     }, {
         "name": "\tAX0005004",
         "x": 400,
         "y": 100,
         "No": "AX0005004",
         "ename": "TestSys5Db4",
         "cnname": "测试数据库4",
         "showData": {
             "resultCode": "",
             "numOfTables": 0,
             "numOfColumns": 0
         },
         "sysno": "AX0005",
         "sysname": "TestSys5",
         "dbno": null,
         "dbname": null
     }, {
         "name": "\tAX0005005",
         "x": 400,
         "y": 130,
         "No": "AX0005005",
         "ename": "TestSys5Db5",
         "cnname": "测试数据库5",
         "showData": {
             "resultCode": "",
             "numOfTables": 0,
             "numOfColumns": 0
         },
         "sysno": "AX0005",
         "sysname": "TestSys5",
         "dbno": null,
         "dbname": null
     }]
 };
 option = {
    //  title:{
    //      text:"数据库数据走向关系图",
    //      x:'center',
    //      y:140
    //  },
     color: ['#7289ab', '#73b9bc', '#73a373', '#eedd78', '#ea7e53', '#8dc1a9', '#e69d87'],
     tooltip: {
         axisPointer: {
             type: 'shadow'
         },
         confine: true,
         formatter: function(params) {
             if (params.dataType == "edge") {
                 return params.data.sourcename + ":" + params.data.sourcecnname + ">" + params.data.targetname + ":" + params.data.targetcnname
             }
             if (params.dataType == "node" && params.data.showData != undefined) {
                 var cnname = params.data.cnname == undefined ? "" : params.data.cnname;
                 return params.data.ename + ":" + cnname + "<br> 表个数:" + params.data.showData.numOfTables + "<br> 字段个数:" + params.data.showData.numOfColumns
             }
         }
     },
     series: [{
         type: 'graph',
         layout: 'none',
         symbol: 'roundRect',
         symbolSize: [200, 25],
         symbolRotate: 0,
         draggable: true,
         edgeSymbolSize: [10, 10],
         edgeSymbol: ['none', 'arrow'],
         hoverAnimation: false,
         focusNodeAdjacency: true,
         width: 400,
         itemStyle: {
             normal: {
                 borderColor: "#000000e0",
                 borderWidth: 0.5,
                 color: "#fff",
                 shadowColor: 'rgba(0, 0, 0, 0.5)',
                 shadowBlur: 5
             }
         },
         lineStyle: {
             normal: {
                 opacity: 1,
                 width: 2,
                 curveness: 0,
                 color: "#c3c0c0"
             }
         },
         // 圆圈内的文字
         label: {
             normal: {
                 show: true,
                 textStyle: {
                     color: "#000"
                 },
                 fontSize: 16,
                 formatter: function(param) {
                     return param.data.ename
                 }
             }
         },
         force: {
             repulsion: 2000
         },
         nodes: renderData.nodes,
         edges: renderData.edges
     }]
 };