一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种生成管线辅助线的方法和装置与流程

2022-06-25 12:27:40 来源:中国专利 TAG:


1.本发明涉及管线数据处理技术领域,特别是涉及一种生成管线辅助线的方法和装置。


背景技术:

2.随着社会的发展和当前城市化水平的不断提高,基础建设发展迅猛,地下管网体系越来越大,除原来的给排水网、电网、热力网、通讯线路外,增加了天然气管网、互联网等,地下管网变得越来越复杂。由于基础建设的猛增,缺乏对地下管网的有效管理,造成了重复建设和资源浪费。在施工中,由于不了解地下管网的情况,盲目开工,造成燃气泄漏、挖断水管、通讯中断等破坏地下管网的事件时有发生。
3.在进行旧管网的更新、新管网的设计规划的过程中,需要在已形成的大量管网资料的基础上,根据相应的管线状况进行处理和设计,而传统的手工制图,靠人工记忆的管理和人工统计、分析的管理方式效率低下,很难适应城市化的快速发展的海量数据的要求。


技术实现要素:

4.本发明所要解决的技术问题是针对上述现有技术的不足,提供一种克服上述问题或者至少部分地解决上述问题的一种生成管线辅助线方法和装置。
5.本发明解决上述技术问题的技术方案如下:一方面,本发明实施例公开了一种生成管线辅助线的方法,包括:
6.根据第一预设条件,获取管线数据的管线名称,所述管线数据包括若干段管线和管线标记;
7.根据第二预设条件,对所述管线数据进行空间查询,并依据空间参考坐标系确定所述管线的空间坐标;
8.创建管线类并根据所述管线类添加要素类索引,所述管线类根据所述管线数据的类型和所述空间坐标的信息创建;
9.根据所述管线的空间坐标和所述要素类索引计算所述管线辅助线的特征点;
10.根据所述管线辅助线的特征点生成第一管线辅助线,并将所述管线标记添加至对应的所述第一管线辅助线。
11.可选的,所述根据所述管线类添加要素类索引,包括:
12.添加要素类数据库索引,用于创建管线点要素类数据库索引和管线线要素类数据库索引,并将数据库索引信息进行存储;
13.和/或,添加要素类空间索引,根据管线要素图层的几何范围确定所述空间索引起始点和网格值,分别为所述管线点要素类、所述管线线要素类创建空间索引,并计算出管线要素的网格范围,将网格编码进行存储。
14.可选的,每段所述管线均包括第一端点和第二端点;
15.所述根据所述管线的空间坐标和所述要素类索引计算所述管线辅助线的特征点,
包括:
16.根据所述第一端点和所述要素类索引计算所述管线辅助线的第一特征点,所述第一特征点通过将所述第一端点朝向所述管线的法线方向平移后得到,其中,平移的距离为管线的半径;
17.根据所述第二端点和所述要素类索引计算所述管线辅助线的第二特征点,所述第二特征点通过将所述第二端点朝向所述管线的法线方向平移后得到,其中,平移的距离为管线的半径。
18.可选的,在根据第一预设条件,获取管线数据的管线名称后,所述方法还包括:
19.根据所述管线名称查找与所述管线数据对应的第二管线辅助线;
20.删除所述第二管线辅助线,并对所述管线数据的图层进行初始化。
21.可选的,所述第一预设条件包括以下至少一种:
22.所述管线的地理位置;
23.和/或,所述管线的材质;
24.和/或,所述管线的尺寸。
25.可选的,所述第二预设条件包括以下至少一种:
26.所述管线的用途;
27.和/或,所述管线的使用范围。
28.另一方面,本发明的实施例还提供了一种生成管线辅助线的装置,包括:
29.管线数据获取模块,用于根据第一预设条件,获取管线数据的管线名称,所述管线数据包括若干段管线和管线标记;
30.管线坐标获取模块,用于根据第二预设条件,对所述管线数据进行空间查询,并依据空间参考坐标系确定所述管线的空间坐标;
31.索引创建模块,用于创建管线类并根据所述管线类添加要素类索引,所述管线类根据所述管线数据的类型和所述空间坐标的信息创建;
32.特征点计算模块,用于根据所述管线的空间坐标和所述要素类索引计算所述管线辅助线的特征点;
33.第一辅助线生成模块,用于根据所述管线辅助线的特征点生成第一管线辅助线,并将所述管线标记添加至对应的所述第一管线辅助线。
34.可选的,索引创建模块包括:
35.第一索引创建子模块,用于添加要素类数据库索引,用于创建管线点要素类数据库索引和管线线要素类数据库索引,并将数据库索引信息进行存储;
36.和/或,第二索引创建子模块,用于添加要素类空间索引,根据管线要素图层的几何范围确定所述空间索引起始点和网格值,分别为所述管线点要素类、所述管线线要素类创建空间索引,并计算出管线要素的网格范围,将网格编码进行存储。
37.可选的,所述装置中每段所述管线均包括第一端点和第二端点;
38.所述特征点计算模块包括:
39.第一特征点计算子模块,用于根据所述第一端点和所述要素类索引计算所述管线辅助线的第一特征点,所述第一特征点通过将所述第一端点朝向所述管线的法线方向平移后得到,其中,平移的距离为管线的半径;
40.第二特征点计算子模块,用于根据所述第二端点和所述要素类索引计算所述管线辅助线的第二特征点,所述第二特征点通过将所述第二端点朝向所述管线的法线方向平移后得到,其中,平移的距离为管线的半径。
41.可选的,在根据第一预设条件,获取管线数据的管线名称后,所述装置还包括:
42.查找模块,用于根据所述管线名称查找与所述管线数据对应的第二管线辅助线;
43.初始化模块,用于删除所述第二管线辅助线,并对所述管线数据的图层进行初始化。
44.可选的,所述第一预设条件包括以下至少一种:
45.所述管线的地理位置;
46.和/或,所述管线的材质;
47.和/或,所述管线的尺寸。
48.可选的,所述第二预设条件包括以下至少一种:
49.所述管线的用途;
50.和/或,所述管线的使用范围。
51.另一方面,本发明的实施例还提供了一种电子设备,该电子设备包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现该生成管线辅助线方法的步骤。
52.另一方面,本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现该生成管线辅助线方法的步骤。
53.本发明实施例包括以下优点:本发明根据预设条件对管线数据进行空间查询,并依据空间参考坐标系确定管线的空间坐标,通过筛选满足预设条件的管线数据,并根据实际需求获取相应区域内管线的空间坐标,根据空间坐标和要素类索引计算管线辅助线的特征点并生成第一管线辅助线,简化拓扑结构中生成管线辅助线的计算量,提高生成管线辅助线的效率。
附图说明
54.图1为本发明实施例提供的一种生成管线辅助线的步骤流程图;
55.图2为本发明实施例提供的一种生成管线辅助线的结构框图。
具体实施方式
56.以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
57.如图1所示,图1为本发明实施例提供的一种生成管线辅助线的的步骤流程图,该方法包括以下步骤:
58.步骤101、根据第一预设条件,获取管线数据的管线名称,所述管线数据包括若干段管线和管线标记;
59.在进行旧管网的更新或新管网的设计规划的过程中,可在已形成的管网资料的基础上进行加工处理,由于现有的管网资料中的拓扑结构信息繁杂,用户可以提取其中的部
分管网数据,并对该部分管网数据进行初步处理。
60.在一种可选的实施例中,在根据第一预设条件,获取管线数据的管线名称后,所述方法还包括:根据管线名称查找与管线数据对应的第二管线辅助线,删除第二管线辅助线,并对管线数据的图层进行初始化。
61.其中,第一预设条件可以包括管线的地理位置,如湖北省武汉市江夏区;第一预设条件还可以包括管线的材质,如管线采用铜、塑料或水泥等制作;第一预设条件可以包括管线的尺寸,如管线的直径为20cm。
62.步骤102、根据第二预设条件,对所述管线数据进行空间查询,并依据空间参考坐标系确定所述管线的空间坐标;
63.其中,第二预设条件可以包括管线的用途或管线的使用范围。示例性的,管线可用于交通设施,包括城市地下通道、城市地铁、隧道;管线可用于商业设施,如地下商城、水下游乐园;管线可用于市政公益管线设施,提高城市道路利用、保护地下设施稳定运转、为以后添加设施提供预留空间。
64.在一种可选的实施例中,根据第二预设条件查找出特定区域或者特定属性的管线的名称(id),根据管线id查询对应的辅助线并删除,对管线数据的图层进行初始化,得到管线数据的集合,令该集合为l1,遍历集合l1,得到一个合并的空间范围,根据实际需求将该空间范围适当扩展,得到集合l2,对集合l2进行空间查询,查询出需要生成辅助线的管线数据的id,并依据空间参考坐标系确定管线的空间坐标。设扩展的空间范围为extent,令dsizex=(extent.xmax-extent.xmin)/gridsizex,dsizey=(extent.ymax-extent.ymin)/gridsizey,得到网格的大小dsizex和dsizey。遍历vecconnectpnts,设当前的connectpnt对象指针为p。由p可以找到line和idx,从而能找到line对应的线段空间对象,从而可以确定当前p的坐标(x,y)。则p所在的网格索引(i,j)应为((int)((x-extent.xmin)/dsizex),(int)((y-extent.ymin)/dsizey)),从而可以确定p所对应的网格对象vecvecconnectpnts[j*gridsizex i]。称其为vec connectpnts_ij。将p添加到vec connectpnts_ij中即可。
[0065]
步骤103、创建管线类并根据所述管线类添加要素类索引,所述管线类根据所述管线数据的类型和所述空间坐标的信息创建;
[0066]
遍历集合l2,将管线数据l2对应的空间数据、管线id、是否参与生成的标志(flag)、以及管线标记分别存储在数组array_lines和array_ids和array_flags和array_attrs中。其中array_attrs的每一项元素是一个属性数组,存储了预知字段的属性,包括与管线数据对应的管径大小、工程编号、管线类型(如果是排水管线还包括起点高程、止点高程)的字段或者需要写入到管线辅助线的字段,分别根据管线类array_lines、array_ids、array_flags和array_attrs添加要素类索引,包括:
[0067]
添加要素类数据库索引,用于加快管线点要素的查询速率创建管线点要素类相关的数据库索引,用于加快管线线要素的查询速率创建管线线要素类数据库索引,并将数据库索引信息进行存储;
[0068]
和/或,添加要素类空间索引并存储:根据管线要素图层的几何范围确定空间索引起始点和网格值,分别为管线点要素类、管线线要素类创建空间索引;计算出管线要素的网格范围并将网格编码进行存储;
[0069]
和/或,添加要素类分页索引并存储:根据管线点要素图层、管线线要素图层的几何范围确定分页索引起始点和网格值,为管线点要素类、管线线要素类创建分页索引;计算出管线要素的网格位置,并将网格编码、网格几何信息、网格属性信息进行存储。
[0070]
管线数据是一类具有特殊拓扑结构的矢量数据。它包括管线点、管线线、管线面、管线辅助线和管线注记。其中,管线线数据是首尾相接的线数据,管线线数据是具有起点和止点的线段,并且起点和止点一定是和某一管线点数据完全重合对应的。管线线数据不会出现悬挂和相交情况,即管线线数据的端点一定是和另一管线线数据的端点重合的,或者是其独立存在,不与其他的线段产生关系。这样,管线线数据就具有了特定的拓扑结构,即其端点是一一连接的,生成辅助线时,无需对线段求交来计算拓扑关系,而根据点的重合关系来获取即可。
[0071]
于本实施例中,每条管线线段均包括第一端点和第二端点,根据管线的空间坐标和要素类索引计算管线辅助线的特征点的过程,包括:根据第一端点和要素类索引计算管线辅助线的第一特征点,根据第二端点和要素类索引计算管线辅助线的第二特征点,其中,第一特征点和第二特征点均是通过将端点朝向管线的法线方向平移后得到,且平移的距离为管线的半径。
[0072]
为了方便进行描述,我们将第一端点作为首点,将第二端点作为尾点。
[0073]
定义一个结构体connectline,代表一根线段的拓扑连接情况,其分别存储了线段首点的所有连接线listfirstline(用connectline类型的指针数组存储)、尾点的所有连接线listnextline、以及该线段的id、该线段的空间数据、该线段是否参与生成的标志flag、首点的左特征点flp、右特征点frp、尾点的左特征点nlp、右特征点nrp、以及特征点连接线数组extline。其中,特征点flp、frp、nlp和nrp均是每一条线段的端点往线段的法线方向平移后得到的特征点,且平移的距离为管线的半径。
[0074]
定义一个结构体connectpnt,代表一根线段的首点或者尾点的拓扑连接情况。其分别存储了它对应的拓扑线段的指针line(类型为connectline),和索引值idx(代表其是首点还是尾点,值为0或1)。
[0075]
定义一个connectline类型的指针数组vecconnectlines,和一个connectpnt类型的指针数组vecconnectpnts。
[0076]
循环遍历array_lines,设当前索引为i。新建一个connectline对象cl,将array_ids[i]和array_lines[i]和array_flags[i]分别赋值给cl的对应项。再将cl添加到数组vecconnectlines中。
[0077]
在创建管线类的过程中,遍历vecconnectlines,设当前的connectline对象指针为cl。新建一个connectpnt对象p0,将cl赋值给p0的line,p0的idx赋值为0,再将p0添加进入vecconnectpnts中;再新建一个connectpnt对象p1,将cl赋值给p1的line,p1的idx赋值为1,再将p1添加进入vecconnectpnts中。
[0078]
在建立空间索引的过程中,先通过预定义好的网格大小gridsizex,gridsizey(一般根据数据集大小确定或者设置为某固定值)定义一个gridsizex*gridsizey大小的网格g。网格类型为connectpnt类型的指针数组,即定义一个gridsizex*gridsizey大小的vector《connectpnts*》的数组,为vecvecconnectpnts。
[0079]
遍历完成vecconnectpnts后,vecconnectpnts中的connectpnt实际都被添加到网
格索引中了。但为了提高算法效率,加快查找临近点的速度,我们还可以对上述过程做一些改造。具体的,将网格内的存储改成vecvecconnectpntssortedbyx和vecvecconnectpntssortedbyy,将connectpnt的对象指针分别存储到网格内的这两个数组中。则上述过程完成后,每个网格内实际上会有两个同样大小的connectpnt指针数组,并且它们存储的内容是相同的。而sortedbyx和sortedbyy顾名思义,是要把connectpnt按照x和y坐标进行排序,其具体方法为:
[0080]
遍历网格g,设当前索引为i,则vecvecconnectpntssortedbyx[i]和vecvecconnectpntssortedbyy[i]分别是存储了connectpnt指针的数组。对vecvecconnectpntssortedbyx[i]执行快速排序,设比较的两个connectpnt的对象分别为p1和p2,其比较条件是p1-》line-》line[p1-》idx].x《p2-》line-》line[p2-》idx].x。(第一个line是connectline,第二个是其空间对象,接索引可以访问到点对象)。对vecvecconnectpntssortedbyy[i]执行快速排序,其比较条件是p1-》line-》line[p1-》idx].y《p2-》line-》line[p2-》idx].y。这样遍历完网格g后,就完成了网格索引的建立和连接点排序。
[0081]
在创建管线类的过程中,若当前的管线类型为排水线,在遍历vecconnectlines前,需要先生成排水方向辅助线流程,生成排水方向辅助线的流程如下:
[0082]
循环遍历array_lines,设当前索引为i。从array_attrs[i]中取出当前线数据对应的起点高程和止点高程,计算当前线段的中点坐标centerx、centery,并计算当前线段的长度length。令dx为0.5/length*(p1.x-p0.x),dy为0.5/length*(p1.y-p0.y)(p0,p1分别为线段的起点和止点)。若起点高程大于止点高程,则水流方向应为起点流向止点,排水方向辅助线箭头另一端的端点坐标otherx为centerx dx,othery为centery dy;否则,otherx为centerx

dx,othery为centery

dy。这样就找到了排水方向辅助线的箭头杆的两个点了。
[0083]
下面再寻找排水方向辅助线的箭头的两条线段。其中这个箭头的尖的坐标就是otherx,othery。另外需要寻找左边的箭头腰部的坐标即可。首先计算箭头杆的方位角azimuth,即center点和other点的连线的方位角azimuth。设左边腰部到箭头的方位角为lazimuth,右边腰部到箭头的方位角为razimuth,想表达的箭头角度为30度(可以是任意角度,为了方便设置为30度),则lazimuth=azimuth

30/2;razimuth=azimuth 30/2。设箭头的长度为arrowlength,设置arrowlength为1(可以是想要的任意长度),则令lx=arrowlength*sin(lazimuth),ly=arrowlength*cos(lazimuth);rx=arrowlength*sin(razimuth),ry=arrowlength*cos(razimuth)。则点lp(otherx lx,othery ly)为箭头左边腰部的坐标,点rp(otherx rx,othery ry)为箭头右边腰部的坐标。这样将响应的坐标组成辅助线段后,并添加相应的属性值,排水方向辅助线就生成了。
[0084]
步骤104、根据所述管线的空间坐标和所述要素类索引计算所述管线辅助线的特征点;
[0085]
其中,计算管线辅助线的特征点包括以下子步骤:
[0086]
步骤104.1、遍历vecconnectlines,设当前的connectline指针为cl。令p为cl-》line[0],即p为cl对应的线段的首端点,按一定容限大小r(用户可以自己设置,也可以设置为固定值,比如0.01),对p周围所有的connectpnt进行空间查询,存储到vector《connectpnt*》类型的对象listconnectpnts中。
[0087]
该空间查询的具体方法为:
[0088]
用查询点p(x,y)的坐标加上容限大小r生成一个查询矩形,它的xmin,ymin,xmax,ymax分别为x-r,y-r,x r,y r。分别计算这个查询矩形的四个顶点坐标所在的网格g的网格索引值,找到四个顶点所在的网格所覆盖的所有网格(即设四个顶点所在的网格索引值分别为(xmin_idx,ymin_idx),(xmax_idx,ymin_idx),(xmin_idx,ymax_idx),(xmax_idx,ymax_idx),则所覆盖的所有网格即行号从ymin_idx到ymax_idx,列号从xmin_idx到xmax_idx的所有网格)。而因为在本应用中是要找连接到一起的端点,因此容限r的值会设置得非常小,所以也最多就是四个网格。
[0089]
对于每个找到的网格,查找其对应的vecconnectpntssortedbyx的已排序数组。对vecconnectpntssortedbyx,用(x-r,y-r)的point值查找下界索引值,用(x r,y r)的point值查找上界索引值,比较条件为前面的排序方法中对x值的比较条件。找到上界和下界的索引值后,若上界索引值减去下界索引值小于10,即符合区间条件的元素数小于10,则直接遍历从下界索引值到上界索引值的所有connectpnt,若其y值在y-r到y r的范围内,则符合结果要求,把其connectpnt指针加入到每个网格的结果集合setresult中。
[0090]
若上界索引值减去下界索引值大于等于10,则认为其暂时的结果较多,还有进一步查询的必要性,则如法炮制,vecconnectpntssortedbyy,用(x-r,y-r)的point值查找下界索引值,用(x r,y r)的point值查找上界索引值,比较条件为前面的排序方法中对y值的比较条件。这时,对vecconnectpntssortedbyx的结果的上界和下界的值可以产生一个集合setresultx,对vecconnectpntssortedbyy产生一个集合setresulty。这时候遍历setresulty,若其元素存在于setresultx中,则将结果加入到setresult中,最后得到单个网格的结果集合setresult。
[0091]
对于每个网格找到的setresult,对其结果求并集。具体方法为:新建一个空的setresultall,遍历每个网格的setresult的元素,若setresultall中不存在当前元素,则将当前元素加入到setresultall中,最后得到所有结果的并集。
[0092]
这样就做完了上述的空间查询操作。
[0093]
步骤104.2、定义一个数组listfoundconnectpnts。它是connectpnt类型指针数组。遍历数组listconnectpnts,对当前的connectpnt对象cp,如果cp-》line==cl,则continue;(遇到自身了),否则找到cp对应的点空间对象p1(cp-》line-》line[cp-》idx])。如果p与p1的距离小于r,则将当前的cp加入到listfoundconnectpnts中。这一步是确保查询到的connectpnt在容限范围内。
[0094]
接着,遍历listfoundconnectpnts。对当前的connectpnt对象cp,如果cl的listfirstline不包含cp-》line,则将cp-》line加入到cl的listfirstline中。如果cp-》idx为0,判断cp-》line的listfirstline若不包含cl,则将cl加入到cp-》line的listfirstline中。否则若cp-》idx为1,则判断cp-》line的listnextline若不包含cl,则将cl加入到cp-》line的listnextline中。
[0095]
同样的,令p为cl-》line[1],即p为cl对应的线段的尾端点,按一定容限大小r,对p周围所有的connectpnt进行空间查询,存储到vector《connectpnt*》类型的对象listconnectpnts中。再通过距离过滤,得到listfoundconnectpnts。遍历listfoundconnectpnts。对当前的connectpnt对象cp,如果cl的listnextline不包含cp-》
line,则将cp-》line加入到cl的listnextline中。如果cp-》idx为0,判断cp-》line的listfirstline若不包含cl,则将cl加入到cp-》line的listfirstline中。否则若cp-》idx为1,则判断cp-》line的listnextline若不包含cl,则将cl加入到cp-》line的listnextline中。
[0096]
至此,完成了每一条管线的首尾端点连接管线的索引建立工作,即对每一条管线,通过其listfirstline和listnextline能找出与之相连的管线了。
[0097]
步骤104.3、在建立管线的首尾端点连接管线的索引后,根据首尾端点所在的空间坐标计算辅助线特征点,具体包括以下子步骤:
[0098]
步骤104.3.1、令r为管线的半径,先确定左侧连接线的索引。
[0099]
具体的,findleft,即找到方位角度azimuth在azimuths中位于其左侧第一个的连接线索引。令max为-10000,actmax为-10000,maxidx为-1,actmaxidx为-1。遍历azimuths,设当前索引为i,若azimuths[i]小于azimuth,并且azimuths[i]大于actmax,则actmax赋值为azimuths[i],actmaxidx赋值为i。如果azimuths[i]大于max,则max赋值为azimuths[i],maxidx赋值为i。遍历完毕,若actmaxidx大于等于0,则返回actmaxidx;否则,返回maxidx。
[0100]
步骤104.3.2、确定右侧连接线的索引。
[0101]
findright,即找到方位角度azimuth在azimuths中位于其右侧第一个的连接线索引。令min为10000,actmin为10000,minidx为-1,actminidx为-1。遍历azimuths,设当前索引为i,若azimuths[i]大于azimuth,并且azimuths[i]小于actmin,则actmin赋值为azimuths[i],actminidx赋值为i。如果azimuths[i]小于min,则min赋值为azimuths[i],minidx赋值为i。遍历完毕,若actminidx大于等于0,则返回actminidx;否则,返回minidx。
[0102]
步骤104.3.3、
[0103]
计算坐标增量calcdeltaxy函数,设其参数列表为x0,y0,x1,y1,r,deltax,deltay。令dy=y1-y0,dx=x1-x0。dy1初始值为0,dx1初始值为0。
[0104]
如果dx等于0,那么如果dy大于0,则dx1为-r,dy1为0。否则,dx1为r,dy1为0。
[0105]
否则,令k=dy/dx。令val=r*sqrt(k*k/(1 k*k));valy=r*sqrt(1/(1 k*k))。如果dy大于0,则dx1为-val;否则dx1为val。如果dx大于0,则dy1为valy;否则dy1为-valy。
[0106]
deltax为dx1,deltay为dy1。
[0107]
至此calcdeltaxy函数结束。
[0108]
步骤104.3.4、
[0109]
k函数的参数列表为(x0,y0,x1,y1)。返回(y1-y0)/(x1-x0)。
[0110]
步骤104.3.5、
[0111]
b函数的参数列表为(x0,y0,x1,y1)。返回(x1*y0-x0*y1)/(x1-x0)。
[0112]
步骤104.3.6、
[0113]
calccrossxy,即计算管线cl和lindex对应的管线的交点或其延长线交点,设参数列表为x0,y0,x1,y1,x2,y2,r1,r2,bvalidl,xl,yl。bvalidl,xl,yl为输出参数。算法如下:
[0114]
定义deltaxf和deltayf,代表第一根线((x0,y0),(x1,y1))的左侧沿法线偏离r1距离的x,y坐标增量;deltaxn,deltayn代表第二根线((x1,y1),(x2,y2))的左侧沿法线偏离r2距离的x,y坐标增量。计算方法为,调用calcdeltaxy方法:传入参数x0,y0,x1,y1,r1,deltaxf,deltayf,得到deltaxf,deltayf;传入参数x1,y1,x2,y2,r2,deltaxn,deltayn,得
到deltaxn,deltayn。
[0115]
令dxf=x1-x0,dxn=x2-x1,dyf=y1-y0,dyn=y2-y1。
[0116]
如果dxf等于0并且dxn等于0,即两条线均竖直并且在同一条直线上,则xl为x1 detalxf,yl为y1。如果r1和r2不相等,则bvalidl为false,程序返回。
[0117]
如果dxf等于0但dxn不等于0,令kn=k(x1,y1,x2,y2),bn=b(x1 deltaxn,y1 deltayn,x2 deltaxn,y2 deltayn)。其中k为斜率函数,b为截距函数,对应直线表达式y=kx b里的k和b。则xl为x1 deltaxf,yl为kn*xl bn。
[0118]
如果dxf不等于0但dxn等于0,令kf=k(x0,y0,x1,y1),bf=b(x0 deltaxf,y0 deltayf,x1 deltaxf,y1 deltayf)。则xl为x1 deltaxn,yl为kf*xl bf。
[0119]
如果dxf不等于0并且dxn不等于0,令kn=k(x1,y1,x2,y2),bn=b(x1 deltaxn,y1 deltayn,x2 deltaxn,y2 deltayn),kf=k(x0,y0,x1,y1),bf=b(x0 deltaxf,y0 deltayf,x1 deltaxf,y1 deltayf)。如果kf等于kn:如果r1等于r2,则xl为x1 deltaxf,yl为y1 deltayf,bvalidl为true,程序返回;否则,bvalidl为false,程序返回。如果kf不等于kn,则xl为(bn-bf)/(kf-kn),yl为(kf*bn-kn*bf)/(kf-kn)。
[0120]
最后,令dlf=yl-(y0 deltayf),dln=yl-(y2 deltayn)。如果dlf*dyf《0或者dln*dyn》0,则bvalidl为false,否则bvalidl为true,程序返回。这一步是判断最终的交点与线段((x0,y0),(x1,y1))和((x1,y1),(x2,y2))的位置关系。如果交点超出了线段的法线辐射范围,则认为交点无效。
[0121]
至此calccrossxy函数结束。
[0122]
步骤104.3.7、计算辅助线的特征点;
[0123]
计算辅助线左侧的特征点:如果cl-》flp==null或者cl-》frp==null,则执行以下步骤:令(x1,y1)为cl-》line[0]即cl对应的管线的首端点,(x2,y2)为cl对应的管线的尾端点。如果cl-》listfirstline的长度不为0,定义一个lindex和rindex,分别代表左侧参考的连接管线的索引和右侧参考的连接管线的索引。如果cl-》listfirstline的长度为1,则此时只有一个连接管线,lindex和rindex的值为0。否则,计算当前连接线cl从首点到尾点的射线的方位角azimuth。并遍历cl-》listfirstline,计算每一根对应的连接线的方位角。这时候,要注意计算的方位角的方向。方位角方向应从(x1,y1)对应的点开始计算。所以,令当前遍历的connectline为line,如果line-》listfirstline包含cl,说明line的首点是对应的(x1,y1),其方位角从line的line[0]计算到line[1];若不包含,则说明是尾点对应的(x1,y1),其方位角从line的line[1]计算到line[0]。计算完方位角后,存储到数组azimuths中。之后利用findleft方法,找到对应的lindex,利用findright方法,找到对应的rindex。以下若不做特别说明,lindex对应的管线即指的是cl-》listfirstline[lindex]这条线;rindex对应的管线即指的是cl-》listfirstline[rindex]这条线。
[0124]
定义点(x3l,y3l),表示lindex对应的管线的不和(x1,y1)相连的端点。定义点(x3r,y3r),表示rindex对应的管线的不和(x1,y1)相连的端点。定义(rx3,ry3),表示待求出的连接管线的辅助线特征点。令rl为lindex对应的管线的半径。rr为rindex对应的管线的半径。
[0125]
如果cl-》flp为null,则需要计算左边的特征点。计算的方法为:如果lindex对应的管线的listfirstline包含cl,即是其首端点对应(x1,y1),则(x3l,y3l)为lindex对应的
管线的尾端点;否则(x3l,y3l)为lindex对应的管线的首端点。调用函数calccrossxy,传入参数为x3l,y3l,x1,y1,x2,y2,rl,r,传出参数为bvalidl,lx,ly。其中bvalidl代表计算出来的交点坐标是否是有效的;(lx,ly)代表计算出来的交点坐标。
[0126]
回到刚才的步骤,如果bvalidl为false,即计算交点lx,ly失败,这时候应该分别取两条线段的法线偏移点,并且在两个偏移点中间再连线。具体做法为:定义deltax,deltay,使用calcdeltaxy,传入(x1,y1,x2,y2,r,deltax,deltay),求出deltax,deltay。则lx=x1 deltax,ly=y1 deltay。cl的flp为(lx,ly)。设该点为a。
[0127]
定义deltax3,deltay3,使用calcdeltaxy,传入(x1,y1,x3l,y3l,rl,deltax3,deltay3),求出deltax3,deltay3。则rx3=x1-deltax3,ry3=y1-deltay3。
[0128]
如果lindex对应的管线的listfirstline包含cl,即lindex对应的管线的首端对应(x1,y1),则lindex对应的管线的frp为(rx3,ry3),否则lindex对应的管线的nlp为(rx3,ry3)。设该点为b。最后,生成线段ab,添加到cl的extline中。
[0129]
如果bvalidl为true,即计算交点lx,ly成功。则cl的flp为(lx,ly)。如果lindex对应的管线的listfirstline包含cl,即lindex对应的管线的首端对应(x1,y1),则lindex对应的管线的frp为cl的flp。否则,lindex对应的管线的nlp为cl的flp。
[0130]
至此,计算左边的特征点完毕,下面计算辅助线左侧的特征点。
[0131]
如果cl的listfirstline的长度为1,即lindex和rindex相等为同一根线,则可利用对称性特点,求出rx=x1*2-lx,ry=y1*2-ly。cl的frp为(rx,ry)。令其为点a。如果bvalidl为false,则令lx3=x1*2-rx3,ly3=y1*2-ry3。如果rindex对应的管线的listfirstline包含cl,即rindex对应的管线的首端对应(x1,y1),则rindex对应的管线的flp为(lx3,ly3)。否则,rindex对应的管线的nrp为(lx3,ly3)。令其为点b。最后,生成线段ab,添加到cl的extline中。如果bvalidl为true,则如果rindex对应的管线的listfirstline包含cl,则rindex对应的管线的flp为cl的frp;否则,rindex对应的管线的nrp为cl的frp。
[0132]
如果cl的listfirstline的长度不为1,则和求左边的特征点类似。计算的方法为:
[0133]
如果rindex对应的管线的listfirstline包含cl,即是其首端点对应(x1,y1),则(x3r,y3r)为rindex对应的管线的尾端点;否则(x3r,y3r)为rindex对应的管线的首端点。调用函数calccrossxy,传入参数为x2,y2,x1,y1,x3r,y3r,r,rr,传出参数为bvalidr,rx,ry。其中bvalidr代表计算出来的交点坐标是否是有效的;(rx,ry)代表计算出来的交点坐标。
[0134]
如果bvalidr为false,即计算交点rx,ry失败,这时候应该分别取两条线段的法线偏移点,并且在两个偏移点中间再连线。具体做法为:定义deltax,deltay,使用calcdeltaxy,传入(x1,y1,x2,y2,r,deltax,deltay),求出deltax,deltay。则rx=x1-deltax,ry=y1-deltay。cl的frp为(rx,ry)。设该点为a。
[0135]
定义deltax3,deltay3,使用calcdeltaxy,传入(x1,y1,x3r,y3r,rr,deltax3,deltay3),求出deltax3,deltay3。则rx3=x1 deltax3,ry3=y1 deltay3。
[0136]
如果rindex对应的管线的listfirstline包含cl,即rindex对应的管线的首端对应(x1,y1),则rindex对应的管线的flp为(rx3,ry3),否则rindex对应的管线的nrp为(rx3,ry3)。设该点为b。最后,生成线段ab,添加到cl的extline中。
[0137]
如果bvalidr为true,即计算交点rx,ry成功。则cl的frp为(rx,ry)。如果rindex对应的管线的listfirstline包含cl,即rindex对应的管线的首端对应(x1,y1),则rindex对应的管线的flp为cl的frp。否则,rindex对应的管线的nrp为cl的frp。
[0138]
至此,cl的listfirstline的长度不为零的情况讨论完毕。
[0139]
下面,接着讨论cl的listfirstline的长度为零的情况。此时,因为已没有连接线,所以生成辅助线的方法也比较简单,即计算首端点两边的法线偏移点即可。但是在管线尽头还需要延伸一点以封闭辅助线,不妨设需要延伸的长度为r。首先,定义deltax,deltay。通过calcdeltaxy,参数为x1,y1,x2,y2,r,deltax,deltay,计算出deltax,deltay。令lx=x1 deltax,ly=y1 deltay,rx=x1-deltax,ry=y1-deltay。则cl的flp为(lx,ly),frp为(rx,ry)。定义lxe,lye,rxe,rye。调用getpntonparalline,参数为x1,y1,x2,y2,lx,ly,-r,lxe,lye,得到lxe,lye。调用getpntonparalline,参数为x1,y1,x2,y2,rx,ry,-r,rxe,rye,得到rxe,rye。将cl的frp,(rxe,rye),(lxe,lye),cl的flp依次连成线段,加入到cl的extline中。
[0140]
步骤104.3.8、
[0141]
getpntonparalline函数的实现如下:
[0142]
参数列表:x1,y1,x2,y2,xp,yp,length,x,y。x,y为传出参数。
[0143]
先令len1等于线段((x1,y1),(x2,y2))的长度,dx=x2-x1,dy=y2-y1。
[0144]
令rate=length/len1。则x=xp dx*rate,y=yp dy*rate。得到待求的平行线点。
[0145]
以上,是完成了cl的flp为空或者frp为空的计算。
[0146]
步骤104.3.9、完成cl的nlp为空或者nrp为空的计算。
[0147]
令(x1,y1)为cl-》line[1]即cl对应的管线的尾端点,(x2,y2)为cl对应的管线的首端点。如果cl-》listnextline的长度不为0,定义一个lindex和rindex,分别代表左侧参考的连接管线的索引和右侧参考的连接管线的索引。
[0148]
如果cl-》listnextline的长度为1,则此时只有一个连接管线,lindex和rindex的值为0。否则,计算当前连接线cl从尾点到首点的射线的方位角azimuth。并遍历cl-》listnextline,计算每一根对应的连接线的方位角。这时候,要注意计算的方位角的方向。方位角方向应从(x1,y1)对应的点开始计算。所以,令当前遍历的connectline为line,如果line-》listfirstline包含cl,说明line的首点是对应的(x1,y1),其方位角从line的line[0]计算到line[1];若不包含,则说明是尾点对应的(x1,y1),其方位角从line的line[1]计算到line[0]。计算完方位角后,存储到数组azimuths中。之后利用findleft方法,找到对应的lindex,利用findright方法,找到对应的rindex。以下若不做特别说明,lindex对应的管线即指的是cl-》listnextline[lindex]这条线;rindex对应的管线即指的是cl-》listnextline[rindex]这条线。
[0149]
定义点(x3l,y3l),表示lindex对应的管线的不和(x1,y1)相连的端点。定义点(x3r,y3r),表示rindex对应的管线的不和(x1,y1)相连的端点。定义(rx3,ry3),表示待求出的连接管线的辅助线特征点。令rl为lindex对应的管线的半径。rr为rindex对应的管线的半径。
[0150]
如果cl-》nrp为null,则需要计算右边的特征点。计算的方法为:如果lindex对应的管线的listfirstline包含cl,即是其首端点对应(x1,y1),则(x3l,y3l)为lindex对应的
管线的尾端点;否则(x3l,y3l)为lindex对应的管线的首端点。调用函数calccrossxy,传入参数为x3l,y3l,x1,y1,x2,y2,rl,r,传出参数为bvalidr,rx,ry。其中bvalidr代表计算出来的交点坐标是否是有效的;(rx,ry)代表计算出来的交点坐标。
[0151]
如果bvalidr为false,即计算交点rx,ry失败,这时候应该分别取两条线段的法线偏移点,并且在两个偏移点中间再连线。具体做法为:定义deltax,deltay,使用calcdeltaxy,传入(x1,y1,x2,y2,r,deltax,deltay),求出deltax,deltay。则rx=x1 deltax,ry=y1 deltay。cl的nrp为(rx,ry)。设该点为a。
[0152]
定义deltax3,deltay3,使用calcdeltaxy,传入(x1,y1,x3l,y3l,rl,deltax3,deltay3),求出deltax3,deltay3。则rx3=x1-deltax3,ry3=y1-deltay3。
[0153]
如果lindex对应的管线的listfirstline包含cl,即lindex对应的管线的首端对应(x1,y1),则lindex对应的管线的frp为(rx3,ry3),否则lindex对应的管线的nlp为(rx3,ry3)。设该点为b。最后,生成线段ab,添加到cl的extline中。
[0154]
如果bvalidr为true,即计算交点rx,ry成功。则cl的nrp为(rx,ry)。如果lindex对应的管线的listfirstline包含cl,即lindex对应的管线的首端对应(x1,y1),则lindex对应的管线的frp为cl的nrp。否则,lindex对应的管线的nlp为cl的nrp。
[0155]
至此,计算右边的特征点完毕,接下来计算左边的特征点。
[0156]
如果cl的listnextline的长度为1,即lindex和rindex相等为同一根线,则可利用对称性特点,求出lx=x1*2-rx,ly=y1*2-ry。cl的nlp为(lx,ly)。令其为点a。如果bvalidr为false,则令lx3=x1*2-rx3,ly3=y1*2-ry3。如果rindex对应的管线的listfirstline包含cl,即rindex对应的管线的首端对应(x1,y1),则rindex对应的管线的flp为(lx3,ly3)。否则,rindex对应的管线的nrp为(lx3,ly3)。令其为点b。最后,生成线段ab,添加到cl的extline中。如果bvalidr为true,则如果rindex对应的管线的listfirstline包含cl,则rindex对应的管线的flp为cl的nlp;否则,rindex对应的管线的nrp为cl的nlp。
[0157]
如果cl的listnextline的长度不为1,则和求右边的特征点类似。计算的方法为:
[0158]
如果rindex对应的管线的listfirstline包含cl,即是其首端点对应(x1,y1),则(x3r,y3r)为rindex对应的管线的尾端点;否则(x3r,y3r)为rindex对应的管线的首端点。调用函数calccrossxy,传入参数为x2,y2,x1,y1,x3r,y3r,r,rr,传出参数为bvalidl,lx,ly。其中bvalidl代表计算出来的交点坐标是否是有效的;(lx,ly)代表计算出来的交点坐标。
[0159]
如果bvalidl为false,即计算交点lx,ly失败,这时候应该分别取两条线段的法线偏移点,并且在两个偏移点中间再连线。具体做法为:定义deltax,deltay,使用calcdeltaxy,传入(x1,y1,x2,y2,r,deltax,deltay),求出deltax,deltay。则lx=x1-deltax,ly=y1-deltay。cl的nlp为(lx,ly)。设该点为a。
[0160]
定义deltax3,deltay3,使用calcdeltaxy,传入(x1,y1,x3r,y3r,rr,deltax3,deltay3),求出deltax3,deltay3。则rx3=x1 deltax3,ry3=y1 deltay3。
[0161]
如果rindex对应的管线的listfirstline包含cl,即rindex对应的管线的首端对应(x1,y1),则rindex对应的管线的flp为(rx3,ry3),否则rindex对应的管线的nrp为(rx3,ry3)。设该点为b。最后,生成线段ab,添加到cl的extline中。
[0162]
如果bvalidl为true,即计算交点lx,ly成功。则cl的nlp为(lx,ly)。如果rindex对
应的管线的listfirstline包含cl,即rindex对应的管线的首端对应(x1,y1),则rindex对应的管线的flp为cl的nlp。否则,rindex对应的管线的nrp为cl的nlp。
[0163]
至此,cl的listnextline的长度不为零的情况讨论完毕。
[0164]
下面,接着讨论cl的listnextline的长度为零的情况。此时,因为已没有连接线,所以生成辅助线的方法也比较简单,即计算首端点两边的法线偏移点即可。但是在管线尽头还需要延伸一点以封闭辅助线,不妨设需要延伸的长度为r。首先,定义deltax,deltay。通过calcdeltaxy,参数为x1,y1,x2,y2,r,deltax,deltay,计算出deltax,deltay。令lx=x1-deltax,ly=y1-deltay,rx=x1 deltax,ry=y1 deltay。则cl的nlp为(lx,ly),nrp为(rx,ry)。定义lxe,lye,rxe,rye。调用getpntonparalline,参数为x1,y1,x2,y2,lx,ly,-r,lxe,lye,得到lxe,lye。调用getpntonparalline,参数为x1,y1,x2,y2,rx,ry,-r,rxe,rye,得到rxe,rye。将cl的nrp,(rxe,rye),(lxe,lye),cl的nlp依次连成线段,加入到cl的extline中。
[0165]
步骤105、根据所述管线辅助线的特征点生成第一管线辅助线,并将所述管线标记添加至对应的所述第一管线辅助线。
[0166]
连接步骤104中生成的第一特征点和第二特征点。具体的,遍历vecconnectlines,对每一根连接线对象cl,连接其flp和nlp,得到左侧辅助线;连接其frp和nrp,得到右侧辅助线。遍历cl的extline,生成每一根额外连接线段。对每一根生成的辅助线,添加管线标记,利用先前记录的array_attrs内的属性值对其赋上相应的属性。至此,生成所有的管线辅助线算法执行完毕。
[0167]
本发明实施例通过筛选满足预设条件的管线数据,并根据实际需求获取相应区域内管线的空间坐标,根据空间坐标和要素类索引计算管线辅助线的特征点并生成第一管线辅助线,可以简化拓扑结构中生成管线辅助线的计算量,提高生成管线辅助线的效率。
[0168]
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
[0169]
为了实现上述方法,本发明实施例还提供了一种生成管线辅助线的装置,图2为本发明实施例提供的一种生成管线辅助线的装置的结构框图,所述装置包括:
[0170]
管线数据获取模块201,用于根据第一预设条件,获取管线数据的管线名称,所述管线数据包括若干段管线和管线标记;
[0171]
管线坐标获取模块202,用于根据第二预设条件,对所述管线数据进行空间查询,并依据空间参考坐标系确定所述管线的空间坐标;
[0172]
索引创建模块203,用于创建管线类并根据所述管线类添加要素类索引,所述管线类根据所述管线数据的类型和所述空间坐标的信息创建;
[0173]
特征点计算模块204,用于根据所述管线的空间坐标和所述要素类索引计算所述管线辅助线的特征点;
[0174]
第一辅助线生成模块205,用于根据所述管线辅助线的特征点生成第一管线辅助线,并将所述管线标记添加至对应的所述第一管线辅助线。
[0175]
在一种可选的实施例中,索引创建模块203可以包括:
[0176]
第一索引创建子模块,用于添加要素类数据库索引,用于创建管线点要素类数据库索引和管线线要素类数据库索引,并将数据库索引信息进行存储;
[0177]
和/或,第二索引创建子模块,用于添加要素类空间索引,根据管线要素图层的几何范围确定所述空间索引起始点和网格值,分别为所述管线点要素类、所述管线线要素类创建空间索引,并计算出管线要素的网格范围,将网格编码进行存储。
[0178]
在一种可选的实施例中,所述装置中每段所述管线均包括第一端点和第二端点;所述特征点计算模块204可以包括:
[0179]
第一特征点计算子模块,用于根据所述第一端点和所述要素类索引计算所述管线辅助线的第一特征点,所述第一特征点通过将所述第一端点朝向所述管线的法线方向平移后得到,其中,平移的距离为管线的半径;
[0180]
第二特征点计算子模块,用于根据所述第二端点和所述要素类索引计算所述管线辅助线的第二特征点,所述第二特征点通过将所述第二端点朝向所述管线的法线方向平移后得到,其中,平移的距离为管线的半径。
[0181]
在一种可选的实施例中,在根据第一预设条件,获取管线数据的管线名称后,所述装置还包括:
[0182]
查找模块,用于根据所述管线名称查找与所述管线数据对应的第二管线辅助线;
[0183]
初始化模块,用于删除所述第二管线辅助线,并对所述管线数据的图层进行初始化。
[0184]
在一种可选的实施例中,所述第一预设条件包括以下至少一种:
[0185]
所述管线的地理位置;
[0186]
和/或,所述管线的材质;
[0187]
和/或,所述管线的尺寸。
[0188]
在一种可选的实施例中,所述第二预设条件包括以下至少一种:
[0189]
所述管线的用途;
[0190]
和/或,所述管线的使用范围。
[0191]
本发明实施例包括以下优点:本发明实施例通过筛选满足预设条件的管线数据,并根据实际需求获取相应区域内管线的空间坐标,根据空间坐标和要素类索引计算管线辅助线的特征点并生成第一管线辅助线,可以简化拓扑结构中生成管线辅助线的计算量,提高生成管线辅助线的效率。
[0192]
本发明实施例还提供了一种电子设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述生成管线辅助线方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0193]
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现上述生成管线辅助线方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0194]
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0195]
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0196]
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0197]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0198]
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0199]
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
[0200]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
[0201]
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献