简介

Guide 类是导引信息类,继承于图项 Item,享有 Item 上的所有接口,本文档只介绍差异的接口,其它接口请参考 Item API 文档

在 G6 中,导引(Guide)的定位是去画节点(Node)、边(Edge)、组(Group)以外的的元素。G6 内部例如:
Guide - 图1
示例代码片段

  1. // 注册一个节点的 tag 信息
  2. G6.registerGuide('tag', {
  3. draw(item) {
  4. const group = item.getGraphicGroup();
  5. const model = item.getModel();
  6. const {nodeId, label} = model;
  7. const graph = item.getGraph();
  8. const node = graph.find(nodeId);
  9. const nodeBox = node.getBBox();
  10. const dy = 32;
  11. const labelMargin = [8, 16];
  12. const labelShape = group.addShape('text', {
  13. attrs: {
  14. x: nodeBox.centerX,
  15. y: nodeBox.minY - dy - 8,
  16. text: label,
  17. fill: '#333',
  18. textAlign: 'center'
  19. }
  20. });
  21. const labelBox = labelShape.getBBox();
  22. const backRect = group.addShape('path', {
  23. attrs: {
  24. path: [
  25. ['M', labelBox.minX - labelMargin[1], labelBox.minY - labelMargin[0]],
  26. ['L', labelBox.maxX + labelMargin[1], labelBox.minY - labelMargin[0]],
  27. ['L', labelBox.maxX + labelMargin[1], labelBox.maxY + labelMargin[0]],
  28. ['L', labelBox.minX - labelMargin[1], labelBox.maxY + labelMargin[0]],
  29. ['Z']
  30. ],
  31. stroke: 'red'
  32. }
  33. });
  34. group.addShape('path', {
  35. attrs: {
  36. path: [
  37. ['M', nodeBox.centerX, nodeBox.minY - dy],
  38. ['L', nodeBox.centerX, nodeBox.minY]
  39. ],
  40. stroke: 'red',
  41. lineDash: [2, 2],
  42. endArrow: true
  43. }
  44. });
  45. return backRect;
  46. }
  47. });