一种建立三维路面和路口的方法及装置与流程

文档序号:19493388发布日期:2019-12-24 14:23阅读:314来源:国知局
一种建立三维路面和路口的方法及装置与流程

本发明涉及电子地图技术领域,尤其涉及一种建立三维路面和路口的方法及装置。



背景技术:

首先,介绍该技术领域的相关技术术语:

纹理:指用于表现三维可渲染对象表面色彩图案的渲染支持的图片文件。

渲染引擎:指对图形绘制接口包括2d/3d进行封装后形成的一种软件开发类库,它提供面向对象的高级接口,方面用户开发相关应用。

二维:指绘制时只在x,y平面上的一种绘制方法或者物体。

三维:指绘制时带有z的空间物体绘制方法或者绘制的对象。

3dmax:3dstudiomax,常简称为3dmax或3dsmax,是discreet公司开发的(后被autodesk公司合并)基于pc系统的三维动画渲染和制作软件。

maya:autodeskmaya是美国autodesk公司出品的世界顶级的三维动画软件,应用对象是专业的影视广告,角色动画,电影特技等。

传统地图在表现形式上太过单一,只有二维的点线面。这种表现形式与真实的路况相差较远。如果更直观真实地表现实际路况,则需要利用三维技术,真实地还原场景中的元素,并立体地表现这些元素之间的相对位置关系。

现有技术中,利用三维建模工具如:3dmax,maya等人工生产道路面与路口的模型数据。

但是这种方式需要提取二维数据中道路坐标点数据与路宽数据,通过专业的软件,生成道路面与路口的三维模型。

但是,这样方式虽然可以较为真实地显示三维道路场景,但是生成的数据量相当大,难于更新维护。



技术实现要素:

为了解决现有技术中存在的以上技术问题,本发明提供一种建立三维路面的方法及装置,能够三维路面,并且数据量小,更新维护方便。

本发明实施例提供一种建立三维路面的方法,包括:

获取道路左边线系列节点的三维坐标和右边线系列节点的三维坐标;

分别由所述左边线系列节点和右边线系列节点中相邻的三个节点作为三角形顶点将道路划分为相邻的多个三角形;

按照所述三角形的顶点构建三角形顶点索引;

由所述三角形的顶点索引和所述三角形顶点的三维坐标建立三维路面。

本发明实施例还提供一种建立三维路口的方法,包括:

获取组成路口区域的n条道路的路口左边线和路口右边线的始终点的三维坐标;

由每条道路的路口左边线始终点和路口右边线始终点构成路口连接区域,由相邻两条道路的两条相邻边线的始终点构成路口转弯区域,由n条道路的路口右边线终点或路口左边线终点构成路口交叉区域;所述n为大于或等于2的整数;

将所述路口连接区域、所述路口转弯区域和所述路口交叉区域分别划分为多个三角形;所述三角形的至少一个顶点为所述路口左边线或路口右边线的始终点;

由所述n条道路的路口左边线和路口右边线的始终点的三维坐标获得三角形顶点的三维坐标;

按照所述三角形顶点构建三角形顶点索引;

按照所述三角形顶点索引和所述三角形顶点的三维坐标建立三维路口。

本发明实施例提供一种建立三维路面的装置,包括:

获取三维坐标模块,用于获取道路左边线系列节点的三维坐标和右边线系列节点的三维坐标;

划分三角形模块,用于分别由所述左边线系列节点和右边线系列节点中相邻的三个节点作为三角形顶点将道路划分为相邻的多个三角形;

构建索引模块,用于按照所述三角形的顶点构建三角形顶点索引;

建立三维路面模块,用于由所述三角形的顶点索引和所述三角形顶点的三维坐标建立三维路面。

本发明实施例还提供一种建立三维路口的装置,包括:

三维坐标获取模块,用于获取组成路口区域的n条道路的路口左边线和路口右边线的始终点的三维坐标;

区域获取模块,用于由每条道路的路口左边线始终点和路口右边线始终点构成路口连接区域,由相邻两条道路的两条相邻边线的始终点构成路口转弯区域,由n条道路的路口右边线终点或路口左边线终点构成路口交叉区域;所述n为大于或等于2的整数;

三角形划分模块,用于将所述路口连接区域、所述路口转弯区域和所述路口交叉区域分别划分为多个三角形;所述三角形的至少一个顶点为所述路口左边线或路口右边线的始终点;

三角形顶点坐标获取模块,用于由所述n条道路的路口左边线和路口右边线的始终点的三维坐标获得三角形顶点的三维坐标;

构建顶点索引模块,用于按照所述三角形顶点构建三角形顶点索引;

三维路口建立模块,用于按照所述三角形顶点索引和所述三角形顶点的三维坐标建立三维路口。

与现有技术相比,本发明至少具有以下优点:

将路面数据进行矢量化,利用道路的左边线系列节点和右边线系列节点将道路划分为三角形,由于三角形的三个顶点可以确定一个面,并且三角形的顶点坐标为三维坐标,因此,可以建立每个三角形确定的三维立体面,最后将所有三角形对应的三维立体面组合在一起形成最终的三维路面。由于本实施例中完全利用矢量数据建立三维路面,与道路的具体形状没有关系,不论路面是平面还是曲面,均可以建立符合实际场景的三维路面。并且建立三维路面过程中使用的数据均为点和线的数据,数据量较小,方便更新维护。

附图说明

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

图1为本发明提供的建立三维路面的方法实施例一流程图;

图2为本发明提供的道路中心线示意图;

图3为本发明提供的获得道路左边线和右边线系列节点的三维坐标的具体示意图;

图4为本发明提供的确定三角形顶点的示意图;

图5为本发明提供的建立三角形顶点索引示意图;

图6为本发明提供的建立纹理坐标示意图;

图7为本发明提供的建立三维路口的方法实施例一流程图;

图8为本发明提供的路口打断点处理示意图;

图9为本发明提供的路口区域分割示意图;

图10为本发明提供的三岔路口转弯区域分割三角形示意图;

图11为本发明提供的三岔路口三角形分割示意图;

图12是本发明提供的建立三维路口的效果图。

具体实施方式

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

本发明提供的方法采用矢量数据来表达道路的各个参数,任何形状的道路均可以分解为矢量数据,因此不必保存具体的道路形状,相当于与形状无关,该方法通用性较好。本发明实施例中将道路划分为多个三角形,每个三角形的三个顶点确定一个平面,由多个三角形建立对应的三角面,多个三角面组成三维路面。

道路面是根据道路线和道路宽度利用几何变换生成的沿道路线方向的贴有道路面纹理的三维条带。

参见图1,该图为本发明提供的建立三维路面的方法实施例一流程图。

本发明实施例提供的建立三维路面的方法,包括以下步骤:

s101:获取道路左边线系列节点的三维坐标和右边线系列节点的三维坐标;

已有的数据是道路的中心线系列节点如图2所示。由于三维道路的路面需要具有宽度,因此,需要由中心线系列节点和道路宽度获得道路左边线系列节点和右边线系列节点。

s102:分别由所述左边线系列节点和右边线系列节点中相邻的三个节点作为三角形顶点将道路划分为相邻的多个三角形;

由于三个点可以确定一个面,因此将道路划分为多个相邻的三角形。

s103:按照所述三角形的顶点构建三角形顶点索引;

每个三角形的顶点索引作为一个数组,最终建立道路时需要根据三角形顶点索引建立。例如,三角形的三个顶点编号分别为0、1和2,则三角形顶点索引为(0,1,2)。

s104:由所述三角形的顶点索引和所述三角形顶点的三维坐标建立三维路面。

由于三角形的顶点坐标为三维坐标,包括x,y和z三个坐标轴的数据,因此,利用三角形的三维坐标确定的三角面为三维立体的,最后由多个立体三角面组成三维路面。

本实施例提供的方法,将路面数据进行矢量化,利用道路的左边线系列节点和右边线系列节点将道路划分为三角形,由于三角形的三个顶点可以确定一个面,并且三角形的顶点坐标为三维坐标,因此,可以建立每个三角形确定的三维立体面,最后将所有三角形对应的三维立体面组合在一起形成最终的三维路面。由于本实施例中完全利用矢量数据建立三维路面,与道路的具体形状没有关系,不论路面是平面还是曲面,均可以建立符合实际场景的三维路面。并且建立三维路面过程中使用的数据均为点和线的数据,数据量较小,方便更新维护。由于本方法定义了一种适用于所有道路通用的模型,利用本方法完全可以利用已有的路网数据,自动生成三维的路面数据并由渲染系统进行渲染呈现。该方法解决了数据生产效率低、数据更新频率快、数据生产成本高的技术问题;并且由于数据采用矢量化表示,也节省了用户在线请求时的流量消耗。

下面结合附图详细介绍以上各个步骤的具体实现方式。

参见图3,该图为本发明提供的获得道路左边线和右边线系列节点的三维坐标的具体示意图。

获取道路左边线系列节点的三维坐标和右边线系列节点的三维坐标,具体包括:

由道路中心线系列节点生成中心线上每个节点对应的路面扩边变换矩阵;

例如图3所示的中心线303上的节点a、b和c。可以理解的是,中心线上的节点包括很多,下面以a、b和c为例进行说明。

由于路面可能是弯曲的,a、b和c对应的方向也是不同的。因此,中心线上每个节点a、b和c均对应一个路面扩边变换矩阵。

由a、b和c的坐标获得扩边变化矩阵是现有技术,在此不再赘述。

由所述每个节点对应的路面扩边变换矩阵和道路的左侧路宽获得道路的左边线系列节点的三维坐标,由所述每个节点对应的路面扩边变换矩阵和道路的右侧路宽获得道路的右边线系列节点的三维坐标。

由于左侧路宽和右侧路宽为已知数据,因此将左侧路宽向量表示为(leftwidth,0,0),将右侧路宽向量表示为(rightwidth,0,0)。将路面扩边变换矩阵与左侧路宽向量相乘获得左边线系列节点的三维坐标。将路面扩边变换矩阵与右侧路宽向量相乘获得右边线系列节点的三维坐标。

例如,由中心线上的节点a对应的路面扩边变换矩阵乘以(leftwidth,0,0)获得左边线上的节点a2的三维坐标,同理将a的路面扩边变换矩阵乘以(rightwidth,0,0)获得右边线上的节点a1的三维坐标。同理,可以获得b1、b2、c1和c2的三维坐标。

需要说明的是,道路是存在方向,图3所示的道路的方向为从a向c。

下面结合附图介绍三角形顶点的确定过程。

参见图4,该图为本发明提供的确定三角形顶点的示意图。

分别由所述左边线系列节点和右边线系列节点中相邻的三个节点作为三角形顶点,具体包括:

沿着道路方向将所述左边线系列节点和右边线系列节点依次按照左-右-左-右的顺序进行编号;

图4中对于左边线系列节点和右边线系列节点进行了编码,分别为0、1、2、3、4、5等,以此类推。

将相邻的三个编号对应的节点作为三角形顶点。

即将0、1、2作为一个三角形的三个顶点,将1、2、3作为一个三角形的三个顶点,将2、3、4作为一个三角形的三个顶点,将3、4、5作为一个三角形的三个顶点。

对应图3,a1、a2、b1可以作为一个三角形的三个顶点。a2、b1、b2可以作为一个三角形的三个顶点。

组成三角形的三个顶点的节点的三维坐标便是三角形顶点的三维坐标。

其中,按照所述三角形的顶点构建三角形顶点索引,具体包括:

将所述三角形顶点对应的三个编号作为三角形顶点索引。即参见图5,2个三角形顶点索引分别为(0、1、2)和(1、2、3)。

另外,由于双向道路包括左车道和右车道,因此,也可以将车道的特征在建立的路面上进行显示。

即本实施例提供的方法,还可以包括:获取所述道路的左侧车道数和右侧车道数;

根据所述左侧车道数和右侧车道数生成路面背景纹理;

由所述三角形顶点索引和所述三角形顶点的三维坐标建立三维路面,具体包括:

按照所述三角形顶点索引、路面背景纹理和所述三角形顶点的三维坐标建立三维路面。

例如,左侧车道数为3,右侧车道数为3。

另外,如果显卡需要显示三维路面,则需要利用渲染引擎进行渲染,渲染引擎渲染三维路面时,还需要根据左边线系列节点和右边线系列节点建立纹理坐标,具体如图6所示,纹理坐标分别为(0,0),(0,1),(1,0),(1,1),(2,0),(2,1),以此类推。

渲染引擎利用三角形顶点的三维坐标、纹理坐标和顶点索引渲染显示三维路面。

本发明以上实施例提供的建立三维路面的方法,将路面划分为三角形,根据三角形的三个顶点的三维坐标以及三角形的顶点索引建立三维路面,并且可以添加左侧车道数和右侧车道数。该方法数据量下,更新维护容易,而且适用于所有道路。

本发明实施例提供一种建立三维路口的方法,下面结合附图对其进行详细的介绍。

参见图7,该图为本发明提供的建立三维路口的方法实施例一流程图。

本实施例提供的建立三维路口方法,包括以下步骤:

s701:获取组成路口区域的n条道路的路口左边线和路口右边线的始终点的三维坐标;

需要说明的是,路口是由多条道路交叉时构成的,因此获得路口区域首先需要将多条道路的连接区域进行打断点处理,如图8所示,断点o、p、q、r组成路口区域。

例如n为4时,对应四岔路口;n为3时,对应三岔路口;n为5时,对应五岔路口。

s702:由每条道路的路口左边线始终点和路口右边线始终点构成路口连接区域,由相邻两条道路的两条相邻边线的始终点构成路口转弯区域,由n条道路的路口右边线终点或路口左边线终点构成路口交叉区域;所述n为大于或等于2的整数;

当n为2时对应两叉路口(如车道变化、路宽变化形成的路口);当n为3时,对应三岔路口;当n为4时,对应四岔路口;当n为5时,对应五岔路口。

可以理解的是,路口左边线和右边线指的是以道路进入路口的方向确定右边线和左边线。当然也可以根据其他规则来定,例如离开路口的方向确定右边线和左边线。本实施例中统一以进入路口的方向确定道路的右边线和左边线,并且确定路口边线的起点和终点。

为了更方便理解本发明提供的方案,下面结合附图9介绍路口连接区域、路口转弯区域和路口交叉区域的形式。

以四岔路口为例,该路口涉及的道路包括道路11、22、33、和44。以道路11为例进行说明,道路11的路口左边线始点为u,终点为n;道路11的路口右边线始点为v,终点为m;由u、v、m和n顺序相连构成路口连接区域,即uvmn组成的四边形为路口连接区域。每条道路对应一个路口连接区域。

道路11和道路22的路口转弯区域为道路11的边线11vm和道路22的边线wm形成的路口转弯区域。四岔路口包括四个路口转弯区域。

路口交叉区域是各个道路边线的终点依次相连形成交叉区域,如图所示的nmef形成四边形为路口交叉区域。每个路口仅包括一个路口交叉区域。

另外,每条道路有道路索引号,即道路id,以区别各条道路。

s703:将所述路口连接区域、所述路口转弯区域和所述路口交叉区域分别划分为多个三角形;所述三角形的至少一个顶点为所述路口左边线或路口右边线的始终点;

其中,将所述路口连接区域划分为多个三角形,具体包括:

将路口连接区域的路口右边线始终点和路口左边线始终点顺序相连形成路口连接区域四边形;

将所述路口连接区域四边形划分为两个路口连接区域三角形。

例如,图9中路口连接区域uvmn形成的四边形可以划分为两个三角形,分别为uvm和umn。

其中,将所述路口交叉区域分别划分为多个三角形,具体包括:

将所述n条道路的路口右边线终点顺序相连形成多边形;

将所述多边形划分为多个三角形。

例如,如9中路口交叉区域nmef形成的四边形可以划分为两个三角形,分别为nme和nef。

由于路口转弯区域的三角形划分相对于路口连接区域和路口交叉区域有所区别,因此,对于路口转弯区域的三角形划分后续再进行详细介绍。

s704:由所述n条道路的路口左边线和路口右边线的始终点的三维坐标获得三角形顶点的三维坐标;

s705:按照所述三角形顶点构建三角形顶点索引;

s706:按照所述三角形顶点索引和所述三角形顶点的三维坐标建立三维路口。

由于三角形的顶点坐标为三维坐标,包括x,y和z三个坐标轴的数据,因此,利用三角形的三维坐标确定的三角面为三维立体的,最后由多个立体三角面组成三维路面。

本实施例提供的方法,将路口数据进行矢量化,利用路口区域的n条道路的路口左边线和右边线的始终点将路口划分为路口连接区域、路口交叉区域和路口转弯区域,并且将路口连接区域、路口转弯区域和路口交叉区域分别划分为多个三角形。由于三角形的三个顶点可以确定一个面,并且三角形的顶点坐标为三维坐标,因此,可以建立每个三角形确定的三维立体面,最后将所有三角形对应的三维立体面组合在一起形成最终的三维路面。由于本实施例中完全利用矢量数据建立三维路口,与路口的具体形状没有关系,不论路口是平面还是曲面,均可以建立符合实际场景的三维路口。并且建立三维路口过程中使用的数据均为点和线的数据,数据量较小,方便更新维护。

下面以三岔路口介绍路口转弯区域的三角形划分。四岔路口和五岔路口对应的路口转弯区域的划分方式与三岔路口相同,在此不再赘述。

参见图10,该图为本发明提供的路口转弯区域划分三角形的示意图。

该三岔路口由三条道路组成,分别为道路1101、道路1102和道路1103。

该三岔路口的路口交叉区域为s1,路口连接区域包括s2、s3和s4。

下面主要介绍道路1102和道路1103之间的路口转弯区域。

将路口转弯区域划分为多个三角形,具体包括:

利用相邻两条道路的两条相邻边线的始终点以及b样条生成转弯弯线;如图10所示,即利用p1、p0和p2以及b样条生成转弯弯线。

将所述相邻两条道路的两条相邻边线的终点和转弯弯线上的坐标点顺序相连形成转弯多边形;

本实施例中以转弯弯线上包括六个坐标点为例进行介绍,即转弯弯线p1p2包括六个坐标点分别为:p1、p3、p4、p5、p6和p2。

将p0与转弯弯线上的六个坐标点顺序相连构成多边形。

所述两条相邻边线的终点分别与所述转弯弯线上的每个坐标点的连线将所述转弯多边形划分为多个三角形。

即p0与p1连线,p0与p3连线,p0与p4连线,p0与p5连线,p0与p6连线,这些连线将该路口转弯区域划分为以下五个三角形:p0、p1、p3;p0、p3、p4;p0、p4、p5;p0、p5、p6;p0、p6、p2。

需要说明的是,转弯弯线上的坐标点的数目可以根据实际需要来选择,本实施例中不具体限定转弯弯线上坐标点的具体数目。例如,根据数据量以及显示效果来确定坐标点的数目。坐标点的数目越多显示效果越好,但是数据量会增加。

对于三岔路口划分后的示意图参见图11所示。

另外,本发明实施例提供的建立三维路口的方法还包括针对路口不同的区域设置不同的背景纹理。

所述按照所述三角形顶点索引和所述三角形顶点的三维坐标建立三维路口之前,还包括:

针对所述路口连接区域、所述路口转弯区域和所述路口交叉区域设置不同的路口背景纹理;

所述按照所述三角形顶点索引和所述三角形顶点的三维坐标建立三维路口,具体包括:

按照所述三角形顶点索引、所述路口背景纹理和所述三角形顶点的三维坐标建立三维路口。

本实施例建立的四岔路口的效果图参见图12所示。

下面对本申请实施例提供的建立三维路面装置进行描述,下文描述的建立三维路面装置与上文描述的建立三维路面方法可相互对应参照。

本发明实施例提供一种建立三维路面的装置,包括:

获取三维坐标模块,用于获取道路左边线系列节点的三维坐标和右边线系列节点的三维坐标;

划分三角形模块,用于分别由所述左边线系列节点和右边线系列节点中相邻的三个节点作为三角形顶点将道路划分为相邻的多个三角形;

构建索引模块,用于按照所述三角形的顶点构建三角形顶点索引;

建立三维路面模块,用于由所述三角形的顶点索引和所述三角形顶点的三维坐标建立三维路面。

本发明实施例还提供一种建立三维路口的装置,包括:

三维坐标获取模块,用于获取组成路口区域的n条道路的路口左边线和路口右边线的始终点的三维坐标;

区域获取模块,用于由每条道路的路口左边线始终点和路口右边线始终点构成路口连接区域,由相邻两条道路的两条相邻边线的始终点构成路口转弯区域,由n条道路的路口右边线终点或路口左边线终点构成路口交叉区域;所述n为大于或等于2的整数;

三角形划分模块,用于将所述路口连接区域、所述路口转弯区域和所述路口交叉区域分别划分为多个三角形;所述三角形的至少一个顶点为所述路口左边线或路口右边线的始终点;

三角形顶点坐标获取模块,用于由所述n条道路的路口左边线和路口右边线的始终点的三维坐标获得三角形顶点的三维坐标;

构建顶点索引模块,用于按照所述三角形顶点构建三角形顶点索引;

三维路口建立模块,用于按照所述三角形顶点索引和所述三角形顶点的三维坐标建立三维路口。

以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。

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