CN103177034A - 一种路网中平行线的生成方法及装置 - Google Patents
一种路网中平行线的生成方法及装置 Download PDFInfo
- Publication number
- CN103177034A CN103177034A CN2011104404015A CN201110440401A CN103177034A CN 103177034 A CN103177034 A CN 103177034A CN 2011104404015 A CN2011104404015 A CN 2011104404015A CN 201110440401 A CN201110440401 A CN 201110440401A CN 103177034 A CN103177034 A CN 103177034A
- Authority
- CN
- China
- Prior art keywords
- broken line
- node
- parallel lines
- point
- road
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
本申请提供了一种路网中平行线的生成方法及装置。依据本申请,针对复杂路网,生成每条道路的连续折线,避免了绘制的平行线可能会出现交错或断开的情况;对折线的节点进行抽稀删除折线中比较短的一些线段,优化原始折线的质量,使得生成的平行线简洁、美观,同时也避免了一部分自交点的产生;依据角平分线法生平行线的内点解决了线段的交汇点互相交错的问题,使线段能够整齐地连接起来;去除产生自交的内点,避免生成的平行线出现交错、断开或自交的情况。综上所述,依据本申请生成各条道路的平行线,可以使得绘制的平行线更加合理、准确和美观。
Description
技术领域
本申请涉及地理信息系统技术领域,特别是涉及一种路网中平行线的生成方法,以及一种路网中平行线的生成装置。
背景技术
平行线的绘制广泛应用于地理信息系统开发、计算机绘图、GIS地图生产、城市规划、地下采矿管道和矿井描述中,比如描述一条道路的上行和下行情况时,最直观的就是用平行线的方法。
现有的平行线绘制算法只是对折线的节点在其法向的延伸,如图1所示,对于已知线段AB,现有平行线绘制方法是,选定一点C确定方向,输入预设平行线间的距离d,通过以下步骤在所选方向上按照输入距离复制与所选线段长度的线段EF:
第一步:求点C到直线AB的垂点P;
第二步:计算dx=xC-xP,dy=yc-yp;
第三步:按照如下公式求取E、F点:
xE=xA+dx,yE=yA+dy
xF=xB+dx,yF=yB+dy
第四步:连接E、F点,则线段EF为所求平行线。
现有的平行线绘制算法存在诸多问题:
一)多条线段的交汇处绘制的平行线相互交错,如图2所示,OA、OB、OC和OD为原线段,虚线为相应的平行线。
二)对于同一条拆线,现有算法在不同比例尺下的绘制效果存在很大差别,如图3和图4所示,ABCD组成了原线段,A′B′C′D′组成了相应的平行线,其中图3a为大比例尺下的绘制结果,图3b为小比例尺下的绘制结果,存在自交点。
三)当两条线的夹角很小时容易出现平行线节点在线段的反方向上,或在线段很远处,如图4所示,ABC组成了原线段,A′B′、B′C′、A″B″、B″C″组成了平行线,线段AB和线段BC夹角较小,其外侧的平行线A′B′和B′C′在原线段的很远处,而内侧平行线B″C″则在BC的反方向上。
四)针对复杂路网,可能会有一条线有若干线段组成,绘制的平行线可能会出现交错或断开的情况。如图5所示,ABCDEFGH组成了原线段,A′B′C′D′E′F′G′H′组成了平行线,其中线段AB和CD表示一条折线上的两条线段,EF和GH表示另一条折线上的两条线段,这两条折线共同组成一条道路,而A′B′、B′C′和E′F′之间断开,C′D′和G′H′之间交错。
因此,目前需要本领域技术人员解决的一个技术问题就是,提供一种平行线的生成机制,避免生成的平行线出现交错、断开或自交的情况,使得绘制的平行线更加合理、准确和美观。
发明内容
本申请提供一种路网中平行线的生成方法,使得绘制的平行线更加合理、准确和美观。
本申请还提供了一种路网中平行线的生成装置,用以保证上述方法在实际中的应用及实现。
为了解决上述问题,本申请公开了一种路网中平行线的生成方法,包括:
在二维地图网格中,针对每条道路,利用广度优先搜索该道路的每一条线段,并将搜索到的线段组成道路对应的连续折线;
判断所述道路对应的连续折线的节点是否需要抽稀,若是则按照所述抽稀参数进行抽稀操作,并建立折线之间的连接关系,若否,则建立折线之间的连接关系;
在相邻线段之间利用角平分线法,生成相邻线段的邻接点在相应的 平行线上的内点;
生成该道路的起点和终点在相应平行线上的端点;
判断所述内点中是否存在产生自交的内点,若存在,则去除产生自交的内点;
依次连接所述平行线去除自交内点后剩余的内点和端点,得到该道路在路网中的平行线。
优选的,所述在二维地图网格中,利用广度优先搜索目标道路的每一条线段,并将搜索到的线段组成一条连续折线的步骤包括:
在二维地图网格的各个网格中搜索是否存在离散折线,若某一网格存在离散折线,搜索与该网格相邻的网格,找到与该离散折线存在连接关系的折线,并与该离散折线组成新的折线,直至所述新的折线为连续折线。
优选的,所述判断道路对应的连续折线的节点是否需要抽稀的步骤包括:
判断预设平行线间距离是否大于所述连续折线中所有线段的平均长度。
优选的,所述按照抽稀参数进行抽稀操作的步骤包括:
步骤1、计算所述连续折线的起点与当前节点间的距离,并把该距离作为累计长度,所述当前节点为所述起点的后继节点;
步骤2、若所述累计长度小于抽稀参数,则把当前节点的作为预删除节点,并把当前节点的后继节点作为新的当前节点,并执行步骤3,若所述累计长度大于等于抽稀参数,把当前节点的后继节点作为新的当前节点,并执行步骤4;
步骤3、判断当前节点是否为所述连续折线的终点,若否,则计算新的当前节点与其前一节点之间的距离,加入到累积长度中,并执行步骤2;
步骤4、把累积长度置为0,并删除所有预删除节点,判断当前节点是否为所述连续折线的终点,若否,则计算当前节点与其前一节点的距离作为累积长度,返回步骤2,若是,则结束抽稀操作。
优选的,所述建立折线之间的连接关系的步骤包括:
预置节点数据库,所述节点数据库包括节点和与该节点相连接的折线编号子数据库,所述节点包括节点编号,节点坐标;
针对所述的每个折线,在节点数据库中查找是否存在该折线的起点的节点编号,若不存在,则把该折线的起点的节点编号和节点坐标插入到节点数据库;
将该折线的折线编号插入到起点的相连接的折线编号子数据库;
在节点数据库中查找是否存在该折线的终点的节点编号,若不存在,则把该折线的终点的节点编号和节点坐标插入到节点数据库;
将该折线的折线编号插入到终点的相连接的折线编号子数据库。
优选的,所述在相邻线段之间利用角平分线法,生成相邻线段的邻接点在相应的平行线上的内点的步骤包括:
寻找各线段的相邻线段,在相邻线段之间做角平分线;
取角平分线上与相邻线段距离为预设平行线间距离的点,作为相应的平行线的内点。
优选的,所述生成该道路的起点和终点在相应平行线上的端点的步骤包括:
判断所述起点和终点是否与其它线段无连接关系;
若是,则取起点或终点所在线段的法向上到该点距离为所设定平行线距离的点,为相应的平行线上的端点;
若否,则将存在连接关系的线段按照向量角从小到大进行排序,在相邻线段间做角平分线,取角平分线上与相邻线段距离为预设平行线间距离的点,作为所述起点或终点在平行线上的端点。
优选的,所述去除产生自交的内点的步骤包括:
依次连接平行线的内点和端点得到各道路的平行线;
依次判断所述各道路的平行线的各线段,与原线段的夹角是否大于预设角度,若是,则删除该线段的终点。
本申请还提供了一种路网中平行线的生成装置,包括:
连续折线生成模块,用于在二维地图网格中,针对每条道路,利用广度优先搜索该道路的每一条线段,并将搜索到的线段组成道路对应的连续折线;
抽稀判断模块,用于判断所述道路对应的连续折线的节点是否需要抽稀,若是,则执行抽稀模块和连接关系建立模块,若否,则执行连接关系建立模块;
抽稀模块,用于按照所述抽稀参数进行抽稀操作;
连接关系建立模块,用于建立折线之间的连接关系;
内点生成模块,用于在相邻线段之间利用角平分线法,生成相邻线段的邻接点在相应的平行线上的内点;
端点生成模块,用于生成该道路的起点和终点在相应平行线上的端点;
自交点去除模块,用于判断所述内点中是否存在产生自交的内点,若存在,则去除产生自交的内点;
平行线生成模块,用于依次连接所述平行线去除自交内点后剩余的内点和端点,得到该道路在路网中的平行线。
优选的,所述内点生成模块包括:
角平分线生成子模块,用于寻找各线段的相邻线段,在相邻线段之间做角平分线;
内点获取子模块,用于取角平分线上与相邻线段距离为预设平行线间距离的点,作为相应的平行线的内点;
所述端点生成模块包括:
连接关系判断子模块,用于判断所述起点和终点是否与其它线段无连接关系;
第一端点获取子模块,用于若是,则取起点或终点所在线段的法向上到该点距离为所设定平行线距离的点,为相应的平行线上的端点;
第二端点获取子模块,用于若否,则将存在连接关系的线段按照向量角从小到大进行排序,在相邻线段间做角平分线,取角平分线上与相 邻线段距离为预设平行线间距离的点,作为所述起点或终点在平行线上的端点。
与现有技术相比,本申请具有以下优点:
依据本申请,针对复杂路网,生成每条道路的连续折线,避免了绘制的平行线可能会出现交错或断开的情况;对折线的节点进行抽稀删除折线中比较短的一些线段,优化原始折线的质量,使得生成的平行线简洁、美观,同时也避免了一部分自交点的产生;依据角平分线法生平行线的内点解决了线段的交汇点互相交错的问题,使线段能够整齐地连接起来;去除产生自交的内点,避免生成的平行线出现交错、断开或自交的情况。综上所述,依据本申请生成各条道路的平行线,可以使得绘制的平行线更加合理、准确和美观。
附图说明
图1是现有技术中的平行线绘制示意图;
图2是现有技术中平行线绘制方法存在的问题一的示意图;
图3a和图3b是现有技术中平行线绘制方法存在的问题二的示意图;
图4是现有技术中平行线绘制方法存在的问题三的示意图;
图5是现有技术中平行线绘制方法存在的问题四的示意图;
图6是本申请的一种路网中平行线的生成方法实施例的流程图;
图7是本申请中广度优先搜索的示意图;
图8a和图8b是本申请的中对折线进行抽稀前后对比示意图;
图9是本申请中平行线的内点生成示意图;
图10是本申请中平行线的端点生成示意图;
图11a和图11b是本申请中去除自交点前后对比示意图;
图12是本申请的一种路网中平行线的生成装置实施例的结构框图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合 附图和具体实施方式对本申请作进一步详细的说明。
描述一条道路的上行和下行情况时,最直观的就是用平行线的方法,现有的平行线生成方法存在如下问题:
一)多条线段的交汇处绘制的平行线相互交错;
二)不同比例尺下绘制的平行线效果有很大差别;
三)当两条线的夹角很小时容易出现平行线节点在线段的反方向上,或在线段很远处的情形;
四)针对复杂路网,可能会有一条线有若干线段组成,绘制的平行线可能会出现交错或断开的情况。
本申请的核心构思之一在于,针对复杂路网,生成每条道路的连续折线,对折线的节点进行抽稀优化原始折线的质量,依据角平分线法生平行线的内点,并去除产生自交的内点,然后连接内点和端点各条道路的平行线,避免生成的平行线出现交错、断开或自交的情况,使得绘制的平行线更加合理、准确和美观。
参考图6,其示出了本申请的一种路网中平行线的生成方法实施例的流程图,具体可以包括以下步骤:
步骤101、在二维地图网格中,针对每条道路,利用广度优先搜索该道路的每一条线段,并将搜索到的线段组成道路对应的连续折线。
在本申请的一种优选实施例中,所述步骤101可以包括:
子步骤S11、在二维地图网格的各个网格中搜索是否存在离散折线;
子步骤S12、若某一网格存在离散折线,搜索与该网格相邻的网格,找到与该离散折线存在连接关系的折线,并与该离散折线组成新的折线,直至所述新的折线为连续折线。
复杂路网被二维地图网格所分割,一条道路可能会二维地图网格打断,如果一个网格中存在离散折线(所有线段的起点不少于两个或终点不少于两个),可以在与该网格相邻的网格中搜索是否存在与该离散折线有连接关系的折线,这种搜索相邻网格的方法,即广度优先搜索。针对 每条道路,利用广度优先搜索道路的每一条线段,以组成一条完整的连续折线(所有线段只存在一个起点和一个终点)用以描述道路。
参考图7,给出了本申请的一种广度优先搜索的示意图,折线EFG是一条连续折线,折线ABCD是一条离散折线。在进行广度优先搜索时对于网格(1,1)中折线ABCD,搜索与它相邻的网格(0,0),(0,1),(0,2),(1,0),(1,2),(2,0),(2,1),(2,2),在网格(0,1)中,找到一条和折线ABCD存在连接关系的折线EFG,把这两条折线连接起来,组成一条新的折线ABFD,即得到一条连续折线,若进行广度搜索后,得到的还是一条离散折线,则可对该离散折线再次进行广度优先搜索,直至得到一条连续折线。
步骤102、判断所述道路对应的连续折线的节点是否需要抽稀,若是则执行步骤103和步骤104,若否,则执行步骤104。
在本申请的一种优选实施例中,所述步骤102可以包括:
子步骤S21、判断预设平行线间距离是否大于所述连续折线中所有线段的平均长度。
在处理矢量化数据时,记录中往往会有很多重复数据,对进一步数据处理带来诸多不便。多余的数据一方面浪费了较多的存储空间,另一方面造成所要表达的图形不光滑或不符合标准。因此要通过某种规则,在保证矢量曲线形状不变的情况下,最大限度地减少数据点个数,这个过程称为抽稀。
在本申请中,当平行线间的距离较大时,而折线中的某些线段长度相对于该距离较小,删除这些线段的节点不会影响到折线的大致方向,而且减少的产生自交的可能性,优化折线。
在本申请中,首先需要判断所述连续折线的节点是否需要进行抽稀。计算折线中所有线段的平均长度,若平均长度小于预设的平行线间的距离时,进行抽稀操作。
步骤103、按照所述抽稀参数进行抽稀操作。
在本申请的一种优选实施例中,所述步骤103可以包括:
子步骤S31、计算所述连续折线的起点与当前节点间的距离,并把该距离作为累计长度,所述当前节点为所述起点的后继节点;
子步骤S32、若所述累计长度小于抽稀参数,则把当前节点的作为预删除节点,并把当前节点的后继节点作为新的当前节点,并执行子步骤S33,若所述累计长度大于等于抽稀参数,把当前节点的后继节点作为新的当前节点,并执行子步骤S34;
子步骤S33、判断当前节点是否为所述连续折线的终点,若否,则计算新的当前节点与其前一节点之间的距离,加入到累积长度中,并执行子步骤S32,若是,则删除所有预删除节点,并结束抽稀操作;
子步骤S34、把累积长度置为0,并删除所有预删除节点,判断当前节点是否为所述连续折线的终点,若否,则计算当前节点与其前一节点的距离作为累积长度,返回子步骤S32,若是,则结束抽稀操作。
抽稀操作依据抽稀参数进行,可以依据具体的情况设定抽稀参数,也可以将预设的平行线间的距离作为抽稀参数。
进行抽稀参数的时候,首先针对起点,判断起点和起点后面的点之间的累积长度,是否小于抽稀参数,若小于,则判断下一个点与起点之间的累计长度,若还不满足则继续计算下一个点和起点间的累计长度,直到大于等于抽稀参数为止,并删除其中累计长度小于抽稀参数的点。对于起点之后未删除的点,将累计长度置于0,依次进行同样的判断。
例如,如图8a所示,抽稀参数为5,AB=6,BC=1,CD=1.5,DE=2,EF=2,FG=3,GH=3,HI=8。A为连续折线的起点,B为后继节点,AB的距离6记为累计长度,由于累计长度6大于抽稀参数5,说明B点满足条件,不用删除。
然后将C作为当前节点,则执行步骤S34,将累计长度置为0。由于C点不是终点,可计算C点与B点之间的距离1作为累积长度,并执行步骤S32;由于BC累计长度1小于抽稀参数5,则将C作为预删除节点, 并将D作为新的当前节点。
由于D不是终点,则将D与C之间的距离1.5加到累计长度中,累计长度为2.5,相当于BC+CD=2.5,仍小于抽稀参数5,将D点作为预删除节点,将E作为当前节点重复执行判断步骤,直至F点作为当前节点时,累计长度为6.5,大于抽稀参数5。删除C、D和E点,并将累积长度置为0,对后续的点进行抽稀操作,最后得到抽稀后剩余的节点为A、B、F、H和I,可见图8b。
步骤104、建立折线之间的连接关系。
在本申请的一种优选实施例中,所述步骤104可以包括:
子步骤S41、预置节点数据库,所述节点数据库包括节点和与该节点相连接的折线编号子数据库,所述节点包括节点编号,节点坐标;
子步骤S42、针对所述的每个折线,在节点数据库中查找是否存在该折线的起点的节点编号,若不存在,则把该折线的起点的节点编号和节点坐标插入到节点数据库;
子步骤S43、将该折线的折线编号插入到起点的相连接的折线编号子数据库;
子步骤S44、在节点数据库中查找是否存在该折线的终点的节点编号,若不存在,则把该折线的终点的节点编号和节点坐标插入到节点数据库;
子步骤S45、将该折线的折线编号插入到终点的相连接的折线编号子数据库。
针对整个路网,为建立所有折线的连接关系,需要一个存放该连接关系的节点数据库,可以在其中存入节点和与该节点相连接的折线编号子数据库,节点中存入节点编号,节点坐标。
预置节点数据库之后,将各折线的起点和终点插入数据库中,即建立了折线连接关系。针对某个连续折线,首先在预置节点数据库中搜索该节点是否已将起点存入节点数据库,即查找该节点的节点编号,若不 存在,则将起点插入预置节点数据库中,包括将起点的节点编号,节点坐标插入到节点数据库,然后将该起点所在折线的折线编号插入到该起点的相连接的折线编号子数据库,然后对该线段的终点进行同样的操作。
步骤105、在相邻线段之间利用角平分线法,生成相邻线段的邻接点在相应的平行线上的内点。
在本申请的一种优选实施例中,所述步骤105可以包括:
子步骤S51、寻找各线段的相邻线段,在相邻线段之间做角平分线;
子步骤S52、取角平分线上与相邻线段距离为预设平行线间距离的点,作为相应的平行线的内点。
生成连续折线的平行线,只需找到折线上各个点在平行线上的对应的点即可,折线上存在两种点,一种是连续折线的起点和终点,在平行线上对应的点称为端点;其余的是连续折线的节点,也即是相邻线段的邻接点,在平行线上对应的点称为内点。
在本申请中,内点依据相邻线段之间的角平分线法生成,内点即是相邻线段较平分线上到相邻线段的距离为预设平行线间距离的点。参考图9,AB和BC为相邻线段,BD为角平分线,角ABC的一半为θ,B′点到AB和BC的距离等于预设平行线间距离,记为d。在具体的实现中,可以由θ和d确定出BB′的长度r,在角平分线上取该长度即可得到B′点。由于AB和BC形成的角可以是内角也可以是外角,因此,可以在对各个线段添加属性,设置其平行线的位置是在线段的内侧还是外侧,还是两侧都有。
步骤106、生成该道路的起点和终点在相应平行线上的端点。
在本申请的一种优选实施例中,所述步骤106可以包括:
子步骤S61、判断所述起点和终点是否与其它线段无连接关系,若是,则执行子步骤S62,若否,则执行子步骤S63;
子步骤S62、取起点或终点所在线段的法向上到该点距离为所设定平 行线距离的点,为相应的平行线上的端点;
子步骤S63、将存在连接关系的线段按照向量角从小到大进行排序,在相邻线段间做角平分线,取角平分线上与相邻线段距离为预设平行线间距离的点,作为所述起点或终点在平行线上的端点。
由于复杂路网上有多条道路,各道路对应的连续折线的起点和终点可能会是其他道路的节点,因此,在建立某条道路的起点和终点对应在平行线上的端点的时候,需要判断所述起点和终点是否与其它线段无连接关系,若是,则可以按照现有技术中的方法,取起点或终点所在线段的法向上到该点距离为所设定平行线距离的点,为相应的平行线上的端点。
若否,则说明该起点或终点是多个线段的交点,若按照现有技术的方式做出端点,会使得此处的多个线段的平行线出现交错或断开的情况。
此时,可以将在连接关系的线段按照向量角从小到大进行排序,以得知哪些线段是相邻线段,在相邻的线段中利用两矢量夹角的平分线方法生成其交汇点坐标,以确保平行线的端点处不会相互交错。如图10所示,线段OA、OB、OC和OD相交与O点,向量(OA)→、(OB)→、(OC)→、(OD) →按其向量角排序后为(OA)→、(OB)→、(OC)→、(OD)→,由于(OD)→和(OA) →也具有邻接关系,所以我们把(OA)→再添加到向量序列的结尾,排序后的结果为(OA)→、(OB)→、(OC)→、(OD)→、(OA)→。在相邻向量间用角平分线法,取角平分线上与相邻线段距离为预设平行线间距离的点,作为所述起点或终点在平行线上的端点,O1,O2,O3,O4,分别为(OA)→和(OB) →、(OB)→和(OC)→、(OC)→和(OD)→、(OD)→和(OA)→间生成的平行线上的坐标点。
步骤107、判断所述内点中是否存在产生自交的内点,若存在,则去除产生自交的内点。
在本申请的一种优选实施例中,所述步骤107可以包括:
子步骤S71、依次连接平行线的内点和端点得到各道路的平行线;
子步骤S72、依次判断所述各道路的平行线的各线段,与原线段的夹角是否大于预设角度,若是,则删除该线段的终点。
折线中不相邻的线段存在交点的现象称为自交。理论上一条道路不应该有自交的情况,由该道路生成的平行线中也不应该存在自交的情况,但实际操作中由于生成的平行线中的线段必须与线段有一定距离,特别是当该距离较大时,会造成生成的平行线中存在自交的情形,如图11a所示,平行线A′B′C′D′E′F′G′H′I′中B′C′和D′E′不相邻,它们却有交点。
依次连接平行线的内点和端点得到各道路的平行线,遍历生成的平行线中每一条线段,和该线段对应于原始折线中的线段做比较,若两者夹角大于90度,说明已产生自交,舍弃该线段的终点。如图11a所示,CD与C′D′的夹角大于90度,即CD与C′D′的方向相反,舍去D′,FG与F′G′的夹角大于90度,即FG与F′G′的方向相反,舍去G’,去除自交后的平行线如图11b所示,去除这些自交点后,平行线和原折线的大致走向不会改变,且更加美观。
预设角度由用户自行设定,一般情况下,建议取90度,经过本步骤去除自交后,还可能存在自交的情况,可以在进行依次去除自交的操作,二次去自交的方法同第一次去自交相同。
步骤108、依次连接所述平行线去除自交内点后剩余的内点和端点,得到该道路在路网中的平行线。
内点和端点在原折线中是有序的,生成的平行线中的对应坐标点也是有序的,把这些有序的点连接起来,便得到一条折线,即该道路在路网中的平行线。
综上所述,本申请提供了一种路网中平行线的生成方法,依据本申请,针对复杂路网,生成每条道路的连续折线,避免了绘制的平行线可能会出现交错或断开的情况;对折线的节点进行抽稀删除折线中比较短 的一些线段,优化原始折线的质量,使得生成的平行线简洁、美观,同时也避免了一部分自交点的产生;依据角平分线法生平行线的内点解决了线段的交汇点互相交错的问题,使线段能够整齐地连接起来;去除产生自交的内点,避免生成的平行线出现交错、断开或自交的情况。综上所述,依据本申请生成各条道路的平行线,可以使得绘制的平行线更加合理、准确和美观。
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
参考图12,其示出了本申请的一种路网中平行线的生成装置实施例的结构框图,具体可以包括以下模块:
连续折线生成模块201,用于在二维地图网格中,针对每条道路,利用广度优先搜索该道路的每一条线段,并将搜索到的线段组成道路对应的连续折线;
抽稀判断模块202,用于判断所述道路对应的连续折线的节点是否需要抽稀,若是,则执行抽稀模块和连接关系建立模块,若否,则执行连接关系建立模块;
抽稀模块203,用于按照所述抽稀参数进行抽稀操作;
连接关系建立模块204,用于建立折线之间的连接关系;
内点生成模块205,用于在相邻线段之间利用角平分线法,生成相邻线段的邻接点在相应的平行线上的内点;
端点生成模块206,用于生成该道路的起点和终点在相应平行线上的端点;
自交点去除模块207,用于判断所述内点中是否存在产生自交的内 点,若存在,则去除产生自交的内点;
平行线生成模块208,用于依次连接所述平行线去除自交内点后剩余的内点和端点,得到该道路在路网中的平行线。
在本申请的一种优选实施例中,所述连续折线生成模块可以包括:
离散折线搜索子模块,用于在二维地图网格的各个网格中是否存在离散折线;
广度优先搜索子模块,用于若某一网格存在离散折线,搜索与该网格相邻的网格,找到与该离散折线存在连接关系的折线,并与该离散折线组成新的折线,直至所述新的折线为连续折线。
在本申请的一种优选实施例中,所述抽稀判断模块可以包括:
距离判断模块,用于判断预设平行线间距离是否大于所述连续折线中所有线段的平均长度。
在本申请的一种优选实施例中,所述抽稀模块可以包括:
子模块1,用于计算所述连续折线的起点与当前节点间的距离,并把该距离作为累计长度,所述当前节点为所述起点的后继节点;
子模块2,用于若所述累计长度小于抽稀参数,则把当前节点的作为预删除节点,并把当前节点的后继节点作为新的当前节点,并执行子模块3,若所述累计长度大于等于抽稀参数,并执行子模块4;
子模块3,用于若否计算新的当前节点与其节点之间的距离,加入到累积长度中,并执行子模块2;
子模块4,用于把累积长度置为0,并删除所有预删除节点,判断当前节点是否为所述连续折线的终点,若否,则计算当前节点与节点的距离作为累积长度,返回子模块2,若是,则结束抽稀操作。
在本申请的一种优选实施例中,所述连接关系建立模块可以包括:
节点数据库预置子模块,用于预置节点数据库,所述节点数据库包括节点和与该节点相连接的折线编号子数据库,所述节点包括节点编号,节点坐标;
起点查找子模块,用于针对所述的每个折线,在节点数据库中查找 是否存在该折线的起点的节点编号,若不存在,则把该折线的起点的节点编号和节点坐标插入到节点数据库;
第一线段编号插入子模块,用于将该折线的折线编号插入到起点的相连接的折线编号子数据库;
终点查找子模块,用于在节点数据库中查找是否存在该折线的终点的节点编号,若不存在,则把该折线的终点的节点编号和节点坐标插入到节点数据库;
第二线段编号插入子模块,用于将该线段的线段编号插入到终点的相连接的折线编号子数据库。
在本申请的一种优选实施例中,所述内点生成模块可以包括:
角平分线生成子模块,用于寻找各线段的相邻线段,在相邻线段之间做角平分线;
内点获取子模块,用于取角平分线上与相邻线段距离为预设平行线间距离的点,作为相应的平行线的内点。
在本申请的一种优选实施例中,所述端点生成模块可以包括:
连接关系判断子模块,用于判断所述起点和终点是否与其它线段无连接关系;
第一端点获取子模块,用于若是,则取起点或终点所在线段的法向上到该点距离为所设定平行线距离的点,为相应的平行线上的端点;
第二端点获取子模块,用于若否,则将存在连接关系的线段按照向量角从小到大进行排序,在相邻线段间做角平分线,取角平分线上与相邻线段距离为预设平行线间距离的点,作为所述起点或终点在平行线上的端点。
在本申请的一种优选实施例中,所述自交点去除模块可以包括:
平行线获取子模块,用于依次连接平行线的内点和端点得到各道路的平行线;
内交点判断子模块,用于依次判断所述各道路的平行线的各线段,与原线段的夹角是否大于预设角度,若是,则删除该线段的终点。
由于所述装置实施例基本相应于前述图6所示的方法实施例,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此就不赘述了。
本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
最后,还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种路网中平行线的生成方法,以及,一种路网中平行线的生成装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种路网中平行线的生成方法,其特征在于,包括:
在二维地图网格中,针对每条道路,利用广度优先搜索该道路的每一条线段,并将搜索到的线段组成道路对应的连续折线;
判断所述道路对应的连续折线的节点是否需要抽稀,若是则按照所述抽稀参数进行抽稀操作,并建立折线之间的连接关系,若否,则建立折线之间的连接关系;
在相邻线段之间利用角平分线法,生成相邻线段的邻接点在相应的平行线上的内点;
生成该道路的起点和终点在相应平行线上的端点;
判断所述内点中是否存在产生自交的内点,若存在,则去除产生自交的内点;
依次连接所述平行线去除自交内点后剩余的内点和端点,得到该道路在路网中的平行线。
2.如权利要求1所述的方法,其特征在于,所述在二维地图网格中,利用广度优先搜索目标道路的每一条线段,并将搜索到的线段组成一条连续折线的步骤包括:
在二维地图网格的各个网格中搜索是否存在离散折线,若某一网格存在离散折线,搜索与该网格相邻的网格,找到与该离散折线存在连接关系的折线,并与该离散折线组成新的折线,直至所述新的折线为连续折线。
3.如权利要求1所述的方法,其特征在于,所述判断道路对应的连续折线的节点是否需要抽稀的步骤包括:
判断预设平行线间距离是否大于所述连续折线中所有线段的平均长度。
4.如权利要求1所述的方法,其特征在于,所述按照抽稀参数进行抽稀操作的步骤包括:
步骤1、计算所述连续折线的起点与当前节点间的距离,并把该距离作为累计长度,所述当前节点为所述起点的后继节点;
步骤2、若所述累计长度小于抽稀参数,则把当前节点的作为预删除节点,并把当前节点的后继节点作为新的当前节点,并执行步骤3,若所述累计长度大于等于抽稀参数,把当前节点的后继节点作为新的当前节点,并执行步骤4;
步骤3、判断当前节点是否为所述连续折线的终点,若否,则计算新的当前节点与其前一节点之间的距离,加入到累积长度中,并执行步骤2;
步骤4、把累积长度置为0,并删除所有预删除节点,判断当前节点是否为所述连续折线的终点,若否,则计算当前节点与其前一节点的距离作为累积长度,返回步骤2,若是,则结束抽稀操作。
5.如权利要求1所述的方法,其特征在于,所述建立折线之间的连接关系的步骤包括:
预置节点数据库,所述节点数据库包括节点和与该节点相连接的折线编号子数据库,所述节点包括节点编号,节点坐标;
针对所述的每个折线,在节点数据库中查找是否存在该折线的起点的节点编号,若不存在,则把该折线的起点的节点编号和节点坐标插入到节点数据库;
将该折线的折线编号插入到起点的相连接的折线编号子数据库;
在节点数据库中查找是否存在该折线的终点的节点编号,若不存在,则把该折线的终点的节点编号和节点坐标插入到节点数据库;
将该折线的折线编号插入到终点的相连接的折线编号子数据库。
6.如权利要求1所述的方法,其特征在于,所述在相邻线段之间利用角平分线法,生成相邻线段的邻接点在相应的平行线上的内点的步骤包括:
寻找各线段的相邻线段,在相邻线段之间做角平分线;
取角平分线上与相邻线段距离为预设平行线间距离的点,作为相应的平行线的内点。
7.如权利要求1所述的方法,其特征在于,所述生成该道路的起点和终点在相应平行线上的端点的步骤包括:
判断所述起点和终点是否与其它线段无连接关系;
若是,则取起点或终点所在线段的法向上到该点距离为所设定平行线距离的点,为相应的平行线上的端点;
若否,则将存在连接关系的线段按照向量角从小到大进行排序,在相邻线段间做角平分线,取角平分线上与相邻线段距离为预设平行线间距离的点,作为所述起点或终点在平行线上的端点。
8.如权利要求1所述的方法,其特征在于,所述去除产生自交的内点的步骤包括:
依次连接平行线的内点和端点得到各道路的平行线;
依次判断所述各道路的平行线的各线段,与原线段的夹角是否大于预设角度,若是,则删除该线段的终点。
9.一种路网中平行线的生成装置,其特征在于,包括:
连续折线生成模块,用于在二维地图网格中,针对每条道路,利用广度优先搜索该道路的每一条线段,并将搜索到的线段组成道路对应的连续折线;
抽稀判断模块,用于判断所述道路对应的连续折线的节点是否需要抽稀,若是,则执行抽稀模块和连接关系建立模块,若否,则执行连接关系建立模块;
抽稀模块,用于按照所述抽稀参数进行抽稀操作;
连接关系建立模块,用于建立折线之间的连接关系;
内点生成模块,用于在相邻线段之间利用角平分线法,生成相邻线段的邻接点在相应的平行线上的内点;
端点生成模块,用于生成该道路的起点和终点在相应平行线上的端点;
自交点去除模块,用于判断所述内点中是否存在产生自交的内点,若存在,则去除产生自交的内点;
平行线生成模块,用于依次连接所述平行线去除自交内点后剩余的内点和端点,得到该道路在路网中的平行线。
10.如权利要求9所述的装置,其特征在于,所述内点生成模块包括:
角平分线生成子模块,用于寻找各线段的相邻线段,在相邻线段之间做角平分线;
内点获取子模块,用于取角平分线上与相邻线段距离为预设平行线间距离的点,作为相应的平行线的内点;
所述端点生成模块包括:
连接关系判断子模块,用于判断所述起点和终点是否与其它线段无连接关系;
第一端点获取子模块,用于若是,则取起点或终点所在线段的法向上到该点距离为所设定平行线距离的点,为相应的平行线上的端点;
第二端点获取子模块,用于若否,则将存在连接关系的线段按照向量角从小到大进行排序,在相邻线段间做角平分线,取角平分线上与相邻线段距离为预设平行线间距离的点,作为所述起点或终点在平行线上的端点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110440401.5A CN103177034B (zh) | 2011-12-23 | 2011-12-23 | 一种路网中平行线的生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110440401.5A CN103177034B (zh) | 2011-12-23 | 2011-12-23 | 一种路网中平行线的生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103177034A true CN103177034A (zh) | 2013-06-26 |
CN103177034B CN103177034B (zh) | 2016-03-30 |
Family
ID=48636915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110440401.5A Active CN103177034B (zh) | 2011-12-23 | 2011-12-23 | 一种路网中平行线的生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103177034B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103309859A (zh) * | 2012-03-06 | 2013-09-18 | 腾讯科技(深圳)有限公司 | 数据抽稀方法及装置 |
CN105426380A (zh) * | 2015-08-26 | 2016-03-23 | 中国人民解放军装甲兵工程学院 | 道路网络的区域裁剪方法及装置 |
CN106528572A (zh) * | 2015-09-14 | 2017-03-22 | 高德软件有限公司 | 一种电子地图线要素数据处理方法和装置 |
CN106682084A (zh) * | 2016-11-25 | 2017-05-17 | 北京掌行通信息技术有限公司 | 对电子地图路段进行定向拓宽的方法及装置 |
CN107764263A (zh) * | 2016-08-22 | 2018-03-06 | 高德信息技术有限公司 | 一种车道序号的生成方法和装置 |
CN108120443A (zh) * | 2016-11-28 | 2018-06-05 | 武汉四维图新科技有限公司 | 一种更新地图数据的方法、装置及设备 |
CN110197518A (zh) * | 2018-02-24 | 2019-09-03 | 高德软件有限公司 | 曲线抽稀方法及装置 |
CN110263110A (zh) * | 2019-05-30 | 2019-09-20 | 武汉智云集思技术有限公司 | 基于抽稀算法的地理空间数据加载方法、设备及存储介质 |
CN110619134A (zh) * | 2018-10-26 | 2019-12-27 | 湖南星图空间信息技术有限公司 | 解决路网数据飞点、点密度问题一体化检测及修复方法 |
CN110969900A (zh) * | 2019-11-21 | 2020-04-07 | 中国航空工业集团公司西安飞行自动控制研究所 | 一种基于航线管理的全航线水平偏置算法 |
CN111259555A (zh) * | 2020-01-20 | 2020-06-09 | 西北工业大学 | 一种基于线程池的石油管线等间距线生成方法 |
CN111435359A (zh) * | 2019-01-15 | 2020-07-21 | 阿里巴巴集团控股有限公司 | 电子地图的路口数据处理方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020075282A1 (en) * | 1997-09-05 | 2002-06-20 | Martin Vetterli | Automated annotation of a view |
CN101593455A (zh) * | 2008-10-23 | 2009-12-02 | 中国科学院地理科学与资源研究所 | 电子地图线状流动注记的配置方法及装置 |
CN102237010A (zh) * | 2011-07-28 | 2011-11-09 | 中国测绘科学研究院 | 一种复杂线状要素的注记方法 |
-
2011
- 2011-12-23 CN CN201110440401.5A patent/CN103177034B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020075282A1 (en) * | 1997-09-05 | 2002-06-20 | Martin Vetterli | Automated annotation of a view |
CN101593455A (zh) * | 2008-10-23 | 2009-12-02 | 中国科学院地理科学与资源研究所 | 电子地图线状流动注记的配置方法及装置 |
CN102237010A (zh) * | 2011-07-28 | 2011-11-09 | 中国测绘科学研究院 | 一种复杂线状要素的注记方法 |
Non-Patent Citations (1)
Title |
---|
顾保南等: "城市轨道交通路网结构研究", 《铁道学报》 * |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103309859B (zh) * | 2012-03-06 | 2016-08-17 | 腾讯科技(深圳)有限公司 | 数据抽稀方法及装置 |
CN103309859A (zh) * | 2012-03-06 | 2013-09-18 | 腾讯科技(深圳)有限公司 | 数据抽稀方法及装置 |
CN105426380A (zh) * | 2015-08-26 | 2016-03-23 | 中国人民解放军装甲兵工程学院 | 道路网络的区域裁剪方法及装置 |
CN105426380B (zh) * | 2015-08-26 | 2018-12-21 | 中国人民解放军装甲兵工程学院 | 道路网络的区域裁剪方法及装置 |
CN106528572B (zh) * | 2015-09-14 | 2019-08-20 | 高德软件有限公司 | 一种电子地图线要素数据处理方法和装置 |
CN106528572A (zh) * | 2015-09-14 | 2017-03-22 | 高德软件有限公司 | 一种电子地图线要素数据处理方法和装置 |
CN107764263A (zh) * | 2016-08-22 | 2018-03-06 | 高德信息技术有限公司 | 一种车道序号的生成方法和装置 |
CN107764263B (zh) * | 2016-08-22 | 2020-06-02 | 阿里巴巴(中国)有限公司 | 一种车道序号的生成方法和装置 |
CN106682084A (zh) * | 2016-11-25 | 2017-05-17 | 北京掌行通信息技术有限公司 | 对电子地图路段进行定向拓宽的方法及装置 |
CN106682084B (zh) * | 2016-11-25 | 2019-10-11 | 北京掌行通信息技术有限公司 | 对电子地图路段进行定向拓宽的方法及装置 |
CN108120443A (zh) * | 2016-11-28 | 2018-06-05 | 武汉四维图新科技有限公司 | 一种更新地图数据的方法、装置及设备 |
CN110197518A (zh) * | 2018-02-24 | 2019-09-03 | 高德软件有限公司 | 曲线抽稀方法及装置 |
CN110197518B (zh) * | 2018-02-24 | 2023-08-29 | 阿里巴巴(中国)有限公司 | 曲线抽稀方法及装置 |
CN110619134A (zh) * | 2018-10-26 | 2019-12-27 | 湖南星图空间信息技术有限公司 | 解决路网数据飞点、点密度问题一体化检测及修复方法 |
CN111435359A (zh) * | 2019-01-15 | 2020-07-21 | 阿里巴巴集团控股有限公司 | 电子地图的路口数据处理方法及装置 |
CN111435359B (zh) * | 2019-01-15 | 2023-06-20 | 阿里巴巴集团控股有限公司 | 电子地图的路口数据处理方法及装置 |
CN110263110A (zh) * | 2019-05-30 | 2019-09-20 | 武汉智云集思技术有限公司 | 基于抽稀算法的地理空间数据加载方法、设备及存储介质 |
CN110969900A (zh) * | 2019-11-21 | 2020-04-07 | 中国航空工业集团公司西安飞行自动控制研究所 | 一种基于航线管理的全航线水平偏置算法 |
CN111259555A (zh) * | 2020-01-20 | 2020-06-09 | 西北工业大学 | 一种基于线程池的石油管线等间距线生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103177034B (zh) | 2016-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103177034B (zh) | 一种路网中平行线的生成方法及装置 | |
Eastman | Representations for space planning | |
CN104142962A (zh) | 一种对电子地图的线要素进行处理的方法 | |
CN111090712A (zh) | 一种数据处理方法、装置、设备及计算机存储介质 | |
US20230147594A1 (en) | Method for integratedly updating map data, device and storage medium | |
CN105578043A (zh) | 一种相机拍照的构图方法和装置 | |
CN104217580B (zh) | 面向车辆群组动画的路网语义建模方法及系统 | |
CN109086515B (zh) | 基于svg的智能变电站ssd中一次设备绘图信息的建模方法 | |
CN104899908A (zh) | 生成事件组演化图的方法和装置 | |
CA2919051C (en) | Global grid building in reverse faulted areas by an optimized unfaulting method | |
CN106998489B (zh) | 一种焦点越界搜索方法及装置 | |
CN111858613A (zh) | 一种业务数据的检索方法 | |
CN109189524A (zh) | 一种图像资源的生成方法和装置 | |
CN105975139B (zh) | 触摸点提取方法、装置和显示设备 | |
Wang et al. | Orthogonal voronoi diagram and treemap | |
CN112529984B (zh) | 绘制多边形的方法、装置、电子设备及存储介质 | |
CN109344211B (zh) | 折线几何形状匹配更新具缺失属性的导航地图数据方法及计算机 | |
JP2014240920A (ja) | 地図更新装置、地図更新システム及び地図の更新管理方法 | |
CN110019984A (zh) | 空间索引建立方法、装置、电子设备及可读存储介质 | |
CN103593532A (zh) | 用于制图的数据处理方法和装置 | |
CN112948651B (zh) | 一种高效的od数据可视化方法及系统 | |
US11287274B1 (en) | Systems and methods to improve memory management for route optimization algorithms | |
CN113656653B (zh) | 网络疆域地图的构建方法、装置及电子设备 | |
Kundu et al. | An Efficient Method to Digitize Polygon Objects of a Black and White Raster Map | |
CN116337098A (zh) | 路径生成方法、装置和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20180115 Address after: 100193 room No. 303, building No. 27, building No. 27, No. 27, Zhongguancun Software Park, No. 8, Wanxi Road, northeast Haidian District, Beijing Patentee after: BEIJING PALMGO INFORMATION TECHNOLOGY CO., LTD. Address before: Room 1305, Fudan Science and Technology Park, No. 11, Guotai Road, Yangpu District, Shanghai, Shanghai Patentee before: Shanghai Yootu Information Technology Co., Ltd. |