一种电网svg图纸中文本分组方法及相关产品与流程

文档序号:17696904发布日期:2019-05-17 21:38阅读:166来源:国知局
一种电网svg图纸中文本分组方法及相关产品与流程

本发明涉及电网领域,具体涉及一种电网svg图纸中文本分组方法及相关产品。



背景技术:

在电网行业中,由于autocad生成的dwg图纸格式问题,目前业内暂时未见到无插件的在线浏览。因此行业内的常规做法是将dwg图纸转化为svg(scalablevectorgraphics,可缩放矢量图形)图纸或者其他适用于在线浏览的格式,并通过浏览器对图纸进行浏览。

在svg图纸在浏览过程中,需要对其中图面的文本数据进行点选交互,如点选svg图纸的某一个文本,对于svg图纸的文本有多种格式的描述方法,现有的svg图纸文本数据的识别率不高,影响用户体验度。



技术实现要素:

本发明实施例提供了一种电网svg图纸中文本分组方法及相关产品,可以实现提高svg图纸文本数据的分组精度,提高用户体验度的优点。

第一方面,本发明实施例提供一种电网svg图纸中文本分组方法,包括:

终端获取cad导出的svg格式的第一文件,采用dom编程接口读取该第一文件;

遍历第一文件中所有的text文本节点得到每个text节点的变换矩阵信息以及字体字号;

将字体字号相同的text节点分成一组得到α组text节点,每组text节点包括至少二个text节点;

将α组text节点中任意两个text节点对应的变换矩阵执行设定运算得到运算结果,依据该运算结果确定该任意两个text节点是否为同一text文本;

如确定该任意两个text节点属于同一text文本,将该任意两个text文本合并成一个合并text文本,对该合并text文本按照文字坐标从上到下,从左到右排序得到排序后的合并text文本。

可选的,所述方法还包括:

将排序后的text文本中文字信息与预设的文字模板进行比对确定匹配的最大文本长度,将最大文本长度加上热点标签形成热点。

可选的,所述设定运算包括:位移运算、旋转运算、缩放运算或斜切运算中一种或任意组合。

可选的,所述依据该运算结果确定该任意两个text节点是否为同一text文本具体包括:

如该运算结果为非旋转、非缩放且位移运算结果的横竖坐标的偏移量在设定数量个字体尺寸内,确定该任意两个text节点为同一text文本;

如该运算结果为旋转或确定该任意两个text节点不为同一text文本。

第二方面,提供一种电网终端,所述终端包括:

读取单元,用于获取cad导出的svg格式的第一文件,采用dom编程接口读取该第一文件;

处理单元,用于遍历第一文件中所有的text文本节点得到每个text节点的变换矩阵信息以及字体字号;将字体字号相同的text节点分成一组得到α组text节点,每组text节点包括至少二个text节点;将α组text节点中任意两个text节点对应的变换矩阵执行设定运算得到运算结果,依据该运算结果确定该任意两个text节点是否为同一text文本;如确定该任意两个text节点属于同一text文本,将该任意两个text文本合并成一个合并text文本,对该合并text文本按照文字坐标从上到下,从左到右排序得到排序后的合并text文本。

可选的,所述处理单元,还用于将排序后的text文本中文字信息与预设的文字模板进行比对确定匹配的最大文本长度,将最大文本长度加上热点标签形成热点。

可选的,所述设定运算包括:位移运算、旋转运算、缩放运算或斜切运算中一种或任意组合。

可选的,所述处理单元,具体用于如该运算结果为非旋转、非缩放且位移运算结果的横竖坐标的偏移量在设定数量个字体尺寸内,确定该任意两个text节点为同一text文本;如该运算结果为旋转或确定该任意两个text节点不为同一text文本。

可选的,所述终端为:计算机、服务器、智能手机或平板电脑。

第三方向,提供一种计算机可读存储介质,其存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行第一方面所述的方法。

实施本发明实施例,具有如下有益效果:

可以看出,本申请提供的技术方案将相同的字号确定为同一组,然后将同一组内的任意两个text节点对应的变换矩阵执行设定运算得到运算结果,依据该运算结果确定该任意两个text节点是否为同一节点,如为同一节点时,合并成一个text节点,这样在点击时即不会出现两个text节点的结果,提高了用户体验度。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是一种终端的结构示意图。

图2是一种两种不同文本节点表示方式示意图。

图3是本发明实施例提供的电网svg图纸中文本分组方法流程示意图。

图4是本发明实施例公开的一种电网svg图纸中文本分组方法具体流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结果或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

参阅图1,图1为一种终端结构示意图,如图1所示,该终端可以包括:处理器、存储器、显示屏,其中,该存储器与显示屏通过总线与处理器连接,上述终端具体可以包括:计算机、服务器、智能手机、平板电脑等等设备。

可缩放矢量图形(scalablevectorgraphics,简称“svg”)是基于可扩展标记语言(xml),用于描述二维矢量图形的一种图形格式。svg由w3c制定,是一个开放标准。svg严格遵从xml语法,并用文本格式的描述性语言来描述图像内容,因此是一种和图像分辨率无关的矢量图形格式。

在电网行业中,由于dwg图纸无法实现无插件的在线浏览,因此常规做法是将dwg图纸转化为svg图纸,并通过浏览器对图纸进行浏览。

在cad的设计过程中,包含了两种类型的文本,分别为text(文本)以及mtext(多行文本)描述方式。

对于不同的类型的文本,其具有不同的表示方式,例如“m16螺栓”,参阅图2,图2为两种不同“m16螺栓”的表示方式,在svg图纸中,尤其是多行文本的表示方式中,有可能将“m16螺栓”表示成“m16”以及“螺栓”,而在实际操作过程中,不管是以哪一种进行呈现,希望在点选到整个“m16螺栓”中的字,均能自动将“m16螺栓”识别为一组文字,并对其进行热点操作,例如显示“m16螺栓”的属性、参数等等信息,而不是对点选到“m16”时显示“m16”的属性、参数,点选到“螺栓”时,显示的为“螺栓”的属性、参数。为了实现整体的点选,那么其需要将“m16”以及“螺栓”确定为一个分组。

参阅图3,图3提供了一种电网svg图纸中文本分组方法,该方法应用在如图1所示的终端内,如图3所示,该方法包括如下步骤:

步骤s301、终端获取cad导出的svg格式的第一文件,采用dom编程接口读取该第一文件;

步骤s302、遍历第一文件中所有的text(文本)节点得到每个text节点的变换矩阵信息以及字体字号;

如下所示为一个svg的两个文本text节点的信息,如下所示:

其中,matrix内的信息为变换矩阵信息(1.383317892e-016-2.2591295592.8239119491.729147365e-016137.3676277128.4540804),又如matrix(1.383317892e-016-2.2591295592.8239119491.729147365e-016137.3676277128.4540804);对于字体字号例如font-size="1.397829316"以及font-size="1.397829316"。

步骤s303、将字体字号相同的text节点分成一组得到α组text节点,每组text节点包括至少二个text节点;

上述两个text节点的字体字号均为font-size="1.397829316",确定为同一组text节点。

步骤s304、将α组text节点中任意两个text节点对应的变换矩阵执行设定运算得到运算结果,依据该运算结果确定该任意两个text节点是否为同一text文本;

步骤s305、如确定该任意两个text节点属于同一text文本,将该任意两个text文本合并成一个合并text文本,对该合并text文本按照文字坐标从上到下,从左到右排序得到排序后的合并text文本。

本申请提供的技术方案将相同的字号确定为同一组,然后将同一组内的任意两个text节点对应的变换矩阵执行设定运算得到运算结果,依据该运算结果确定该任意两个text节点是否为同一节点,如为同一节点时,合并成一个text节点,这样在点击时即不会出现两个text节点的结果,提高了用户体验度。

可选的,上述方法还可以包括:

将排序后的text文本中文字信息与预设的文字模板进行比对确定匹配的最大文本长度,将最大文本长度加上热点标签(<a>标签)形成热点。

此技术方案为对能够形成热点的文字进行热点的标识,这样方便进行热点的搜索,该热点类似热搜词,当然对于不同的领域,其热点可能有所不同,本申请并不限制上述热点的范围。

上述设定运算包括:位移运算、旋转运算、缩放运算或斜切运算中一种或任意组合。上述设定运算的具体实现方式可以参见论文《理解svgtransform坐标变换》中的描述。

上述依据该运算结果确定该任意两个text节点是否为同一text文本具体可以包括:

如该运算结果为非旋转、非缩放且位移运算结果的横竖坐标的偏移量在设定数量个字体尺寸内,确定该任意两个text节点为同一text文本。

如该运算结果为旋转或确定该任意两个text节点不为同一text文本。

对于同一text文本,首先对于同一个文件,同一个性质的文本信息均使用同一字号的字体,例如“m16螺栓”其使用的字体也是相同的,如果其分为两行显示,那么该对应的变换举证是不会出现旋转或缩放的,如果出现旋转或缩放,那么确定两行文本数据不为同一text文本,另外,对于同一text文本的两个text文本的位移距离也不会过大,如图2所示,即该位移的偏差会在整数个字体尺寸,因此通过此方式即能够实现对于是否为同一text文本进行判断。

参阅图4,图4提供了一种svg图纸中文本分组方法,该方法如图4所示,包括如下步骤:

步骤s1,打开svg图纸,通过dom的方式解析svg文件中的节点,找到其中所有的text的节点,将其保存到数组中。

步骤s2.2遍历取出的text信息,通过其transformmatrix,计算出二者之间的距离,并由此判断其是同一个文本的可能性

步骤s2.3将有可能是一组的数据,进行重新分组合并。

stringfinalliststr=string.join("",linkedtest.toarray());

servertaglist.where(x=>newregex(x)

.ismatch(finalliststr)).orderby(x=>x.length).tolist();

通过从服务端中的数据与当前系统中数据进行比对,如果能够正确匹配,则说明该数据为一个能够被识别的最长数组。

步骤s3,添加热点。

对svg中的文字添加热点,使得其可以进行编辑互动,如下:

本申请还提供一种终端,所述终端包括:

读取单元,用于获取cad导出的svg格式的第一文件,采用dom编程接口读取该第一文件;

处理单元,用于遍历第一文件中所有的text文本节点得到每个text节点的变换矩阵信息以及字体字号;将字体字号相同的text节点分成一组得到α组text节点,每组text节点包括至少二个text节点;将α组text节点中任意两个text节点对应的变换矩阵执行设定运算得到运算结果,依据该运算结果确定该任意两个text节点是否为同一text文本;如确定该任意两个text节点属于同一text文本,将该任意两个text文本合并成一个合并text文本,对该合并text文本按照文字坐标从上到下,从左到右排序得到排序后的合并text文本。

本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任何一种电网svg图纸中文本分组方法的部分或全部步骤。

本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行如上述方法实施例中记载的任何一种电网svg图纸中文本分组方法的部分或全部步骤。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本发明所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。

所述集成的单元如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储器包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:read-onlymemory,简称:rom)、随机存取器(英文:randomaccessmemory,简称:ram)、磁盘或光盘等。

以上对本发明实施例进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1