GoJs连线上的信息展示使用详解

目录
  • 前言
  • 连线上的信息怎么使用
    • 连线上的文字信息的默认显示
    • 对连线显示的信息增加其他绘图模板
    • 修改文字和连线方向平行
    • 两个节点之间有多个关系
  • 总结

前言

在可视化图像中。节点是信息写的单元,而连线就是这些这些信息单元的联系。在有些情况下,不止需要知道两个节点之间有关系并且还需要知道两个节点之间的关系进行一个描述。这个时候就需要在连线上展示一些信息。

连线上的信息怎么使用

连线上的文字信息的默认显示

在之前的go.Link一文中提到过,是通过linkTemplate连线进行配置。下面对连线上的配置一个文字显示来做一个简单的示例。

nodes: [
    {
      key: "1",
      text: "张三",
      nodeBs: "root",
    },
    {
      key: "1-1",
      text: "李四",
      nodeBs: "root",
    },
    {
      key: "1-2",
      text: "王二",
      nodeBs: "root",
    }
  ],
  links: [
    {
      from: "1",
      to: "1-1",
      text:"父子"
    },
    {
      from: "1",
      to: "1-2",
      text:"兄弟"
    },
    {
      from: "1-1",
      to: "1-2",
      text:"亲戚"
    },
  ],
//methods
this.myDiagram = $$(go.Diagram, "myDiagramDiv", {layout: $$(go.ForceDirectedLayout)});
  this.myDiagram.nodeTemplate = $$(
    go.Node,
    "Auto",
    $$(go.Shape, "RoundedRectangle", {
      strokeWidth: 1,
      fill: "transparent",
      stroke: "#67B73C",
    }),
    $$(
        go.TextBlock,
        {
            width: 20,
            margin: 20,
        },
        new go.Binding("text", "text")
    )
  );
  this.myDiagram.linkTemplate =
    $$(go.Link,
    $$(go.Shape),
    $$(go.TextBlock,
        new go.Binding("text", "text"))
    );
  this.myDiagram.model = new go.GraphLinksModel(this.nodes, this.links);

默认展示的连线上的文字是水平的,并且是在连线的中间。

对连线显示的信息增加其他绘图模板

this.myDiagram.linkTemplate = $$(
    go.Link,
    $$(go.Shape),
    $$(
      go.Panel,
      "Auto",
      $$(go.Shape, "TriangleDown", { fill: "#67B73C", stroke: "#FF9900" }),
      $$(go.TextBlock, { margin: 5 }, new go.Binding("text", "text"))
    )
);

从上面的图形可以看出,可以对连线使用其他的绘图模板进行关系信息的显示内容更加丰富。可以根据自己不同的需求去显示出不同的连线样式。

修改文字和连线方向平行

this.myDiagram.linkTemplate = $$(
    go.Link,
    $$(go.Shape),
    $$(go.TextBlock, {segmentOrientation: go.Link.OrientUpright},new go.Binding("text", "text"))
);

如果需要连线上的文字随着连线的方向,则需要设置文本模板(go.TextBlock)的属性segmentOrientation:go.Link.OrientUpright

两个节点之间有多个关系

//连线数据
{
  from: "1",
  to: "1-2",
  text: "上方",
  text1: "线上",
  text2: "下方",
  text3: "起点",
  text4: "终点",
},
//连线模板
this.myDiagram.linkTemplate = $$(
    go.Link,
    $$(go.Shape),
    $$(go.TextBlock,{ segmentOffset: new go.Point(0, -20),segmentOrientation: go.Link.OrientUpright }, new go.Binding("text", "text")),
    $$(go.TextBlock,{ segmentOffset: new go.Point(0, 0),segmentOrientation: go.Link.OrientUpright }, new go.Binding("text", "text1")),
    $$(go.TextBlock,{ segmentOffset: new go.Point(0, 20),segmentOrientation: go.Link.OrientUpright }, new go.Binding("text", "text2")),
    $$(go.TextBlock,{ segmentIndex: 0,segmentOrientation: go.Link.OrientUpright }, new go.Binding("text", "text3")),
    $$(go.TextBlock,{ segmentIndex: 1,segmentOrientation: go.Link.OrientUpright }, new go.Binding("text", "text4")),
);

如果两个节点之间有多个关系或者有其他信息需要展示的话,可以利用segmentOffset属性和segmentIndex来调整连线上的信息展示的位置,其中segmentOffset设置的是距离线的位置,其中new go.Point(0, 0),则是在连线的中心位置并且连线在文字中间穿过。segmentIndex线上位置,其中0是起点位置,1是终点位置。segmentIndex设置的属性值不能设置小数,如果设置为小数的话则会被四舍五入放到起点或者终点。

总结

可视化图形中很多的图形都需要线上的文字描述。流程图的操作,关系图的关系等等。并且根据需求的不同,其显示的位置和效果都不一样,通过本文的配置属性可以自定义很多样式的节点上的描述信息。

以上就是GoJs连线上的信息展示使用详解的详细内容,更多关于GoJs连线信息展示的资料请关注我们其它相关文章!

(0)

相关推荐

  • GoJs连线绘图模板Link使用示例详解

    目录 前言 go.link的简单使用 go.Link的属性配置 routing属性 curve属性 corner.toEndSegmentLength.fromEndSegmentLength.fromShortLength.toShortLength属性 selectable.fromSpot.toSpot属性 总结 前言 可视化图形中除了携带很多信息的节点(node)之外,还需要知道他们之间的关系,而链接他们之间的连线在gojs中是使用go.link进行绘制.在渲染的时候我们根据数据的fro

  • GoJs中使用HTML方法示例

    目录 前言 使用html的方式 提示信息的html交互 右键菜单的html交互 文本编辑的html交互 总结 前言 在gojs中因为有自己的绘图模板和一些语法限制,实际上都是在canvas标签的特性上进行的封装.但是有些时候其拓展就不能满足需求的时候,可以对其和html结构进行一些交互,达到自己显示上的特殊需求的展示. 使用html的方式 本文将从提示信息.右键菜单.和文本编辑三个方面来体现gojs和html之间的交互.而对于html的使用交互过程中,最主要考虑到的就是html信息何时展示,何时

  • GoJs中导出图片或者SVG实现示例详解

    目录 前言 导出图片和SVG的使用 导出图片的使用方法 导出SVG的使用方法 总结 前言 在可视化图形的分析中,对基础图形进行增删改之后.除了保存修改之后的可视化数据之外.还需要保存为图片或者svg进行分享. 导出图片和SVG的使用 导出图片和导出SVG相似,只是调用的生成方法不同.而生成图片有两种方法分别为makeImage和makeImageData.而生成SVG只有makeSvg方法.其准备工作沿用之前的数据.添加生成image和svg的按钮. //html <button @click=

  • 详解GoJs节点的选中高亮实现示例

    目录 前言 gojs节点选中高亮的使用 只选中节点内部分元素的选中样式 定制的选中样式 节点选中时候增加操作按钮 修改选中节点的内部样式 总结 前言 上文中我们说到了,节点之间的文字描述.在有些时候我们要看两个节点之间的关系,在数据量比较大的时候就需要给两个节点给一个选中的样式.在使用的过程中,gojs默认给了一个节点的选中样式,就是一个蓝色的边框. gojs节点选中高亮的使用 //data myDiagram: null, nodes:[ { key: "1", color: &qu

  • 一文详解GoJs中go.Panel的itemArray属性

    目录 前言 itemArray属性的使用 只包含一种绘图模板的渲染列表 包含不同的绘图模板的渲染列表 内部多个绘图模板的不同列的行循环 总结 前言 上一篇文章中,为了演示go.panel内部元素的折叠展开,也是为了举例子比较简单.使用了一个go.Panel的属性itemArray,本文将详细的介绍一下itemArray属性. itemArray属性的使用 只包含一种绘图模板的渲染列表 //data nodes: [ { key: 1, text:"三国", list1: ["

  • 详解GoJs节点的折叠展开实现

    目录 前言 节点折叠展开的不同情况 树形布局特有的属性后代节点的折叠展开 go.Group(组)的内部元素的展开折叠 go.Panel(面板)的内部元素的展开折叠 总结 前言 前面的文章中提到了提示信息(toolTip)在节点信息内容过多的时候,需要节点信息的内容进行隐藏,在鼠标移入的时候进行未显示信息的提示框形式的选中,本文讲从另外的角度处理在画布上的可视化图形的内容过多的时候的处理情况,一种是把节点的内部的折叠和展开,另外一种就是对部分节点进行折叠和展开. 节点折叠展开的不同情况 对于节点的

  • GoJs中标题和缩略图使用技巧

    目录 前言 标题的使用 随图形变化的标题 不随图形变化的标题 缩略图的使用 总结 前言 在可视化图形中为了方便区分,需要给图形一个标题.可以在画布外面用html调整位置之后作为图形的标题,当然也可以在画布内部进行一个标题的绘制.在画布上的节点数据量比较大的时候,也需要用到缩略图对图形进行一个缩略显示并且拖动缩略图的框选来重点的画布中的部分数据. 标题的使用 还是以前面的数据为例,在原有数据的基础上给图形增加一个标题代码示例如下 //data nodes: [ { key: "1", c

  • 使用docker构建golang线上部署环境的步骤详解

    Docker用于开发 Docker不仅用于部署,它还可以用于开发. 1.为什么要在开发中使用Docker 主要有以下几个原因. 1)一致的开发环境 使用Docker,可以保证整个研发团队使用一致的开发环境. 2)开发环境与最终的生产环境保持一致 这减少了部署出错的可能性. 3)简化了编译和构建的复杂性 对于一些动辄数小时的编译和构建工作,可以用Docker来简化. 4)在开发时只需Docker 无需在自己的开发主机上搭建各种编程语言环境. 5)可以使用同一编程语言的多个版本 可以使用同一编程语言

  • 基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解

    Bootstrap文件上传插件File Input是一个不错的文件上传控件,但是搜索使用到的案例不多,使用的时候,也是一步一个脚印一样摸着石头过河,这个控件在界面呈现上,叫我之前使用过的Uploadify 好看一些,功能也强大些,本文主要基于我自己的框架代码案例,介绍其中文件上传插件File Input的使用. 1.文件上传插件File Input介绍 这个插件主页地址是:http://plugins.krajee.com/file-input,可以从这里看到很多Demo的代码展示:http:/

  • Django中的模型类设计及展示示例详解

    django中设计数据模型类是基于ORM的对象关系映射更方便的进行数据库中的数据操作. 对象关系映射 把面向对象中的类和数据库表--对应,通过操作类和对象,对数表实现数据操作,不需要写sql,由ORM框架生成 django实现了ORM框架,在项目中与数据库之间产生桥梁作用 django数据库定义模型的步骤如下: python manage.py makemigrations python mange.py migrate 在应用models.py中编写模型类,继承models.Model类 在模

  • GoJs分组绘图模板go.Group使用示例详解

    目录 前言 Group的使用 Group的属性 handlesDragDropForMembers.isSubGraphExpanded属性 isSubGraphExpanded属性 ungroupable.wasSubGraphExpanded属性 结语 前言 在可视化图形中,很多的节点和连线都有某一个特征或者属于某些分类,为了在使用可视化图形的时候更加直观的看出相同类型节点的集合,我们就会用到分组的绘图模板. Group的使用 //data nodes: [ { key: "1",

  • Apache 文件上传与文件下载案例详解

    写一个Apache文件上传与文件下载的案例:以供今后学习 web.xml配置如下: <span style="font-family:SimSun;font-size:14px;"><?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns=&

  • FasfDFS整合Java实现文件上传下载功能实例详解

    在上篇文章给大家介绍了FastDFS安装和配置整合Nginx-1.13.3的方法,大家可以点击查看下. 今天使用Java代码实现文件的上传和下载.对此作者提供了Java API支持,下载fastdfs-client-java将源码添加到项目中.或者在Maven项目pom.xml文件中添加依赖 <dependency> <groupId>org.csource</groupId> <artifactId>fastdfs-client-java</arti

  • JavaWeb实现文件上传与下载实例详解

    在Web应用程序开发中,文件上传与下载功能是非常常用的功能,下面通过本文给大家介绍JavaWeb实现文件上传与下载实例详解. 对于文件上传,浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件.这个common-fileupload上传组件的jar包可以去apache官网上面下载,common-fileupload是依赖于c

  • Android4.X中SIM卡信息初始化过程详解

    本文实例讲述了Android4.X中SIM卡信息初始化过程详解.分享给大家供大家参考,具体如下: Phone 对象初始化的过程中,会加载SIM卡的部分数据信息,这些信息会保存在IccRecords 和 AdnRecordCache 中.SIM卡的数据信息的初始化过程主要分为如下几个步骤 1.RIL 和 UiccController 建立监听关系 ,SIM卡状态发生变化时,UiccController 第一个去处理. Phone 应用初始化 Phone 对象时会建立一个 RIL 和UiccCont

  • 使用 Python 在京东上抢口罩的思路详解

    全国抗"疫"这么久终于见到曙光,在家待了将近一个月,现在终于可以去上班了,可是却发现出门必备的口罩却一直买不到.最近看到京东上每天都会有口罩的秒杀活动,试了几次却怎么也抢不到,到了抢购的时间,浏览器的页面根本就刷新不出来,等刷出来秒杀也结束了.现在每天只放出一万个,却有几百万人在抢,很想知道别人是怎么抢到的,于是就在网上找了大神公开出来的抢购代码.看了下代码并不复杂,现在我们就报着学习的态度一起看看. 使用模块 首先打开项目中 requirements.txt 文件,看下它都需要哪些模

随机推荐