掌桥专利:专业的专利平台
掌桥专利
首页

地图道路绘制方法、装置、计算机设备和存储介质

文献发布时间:2024-04-18 19:58:21


地图道路绘制方法、装置、计算机设备和存储介质

技术领域

本申请涉及地图绘制技术领域,特别是涉及一种地图道路绘制方法、装置、计算机设备、存储介质和计算机程序产品。

背景技术

随着计算机技术的发展,出现了地图道路绘制技术,地图道路绘制技术是用于绘制地图中道路的技术。在需要绘制地图的场景中通过需要绘制地图中的道路,例如,在地图制作的过程中通过需要绘制道路。

传统技术中,为了绘制地图道路,通常多次调用绘制接口来绘制道路中的每条线。然而,由于道路中的线通常比较多,则需要频繁的调用绘制接口,耗时长,导致地图道路绘制效率低。

发明内容

基于此,有必要针对上述技术问题,提供一种能够提高地图道路绘制效率的地图道路绘制方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。

一方面,本申请提供了一种地图道路绘制方法,包括:获取地图中多个道路标线的轨迹线,每个所述轨迹线包括多个轨迹点;将所述多个道路标线的轨迹线进行拼接,生成拼接轨迹线;生成所述拼接轨迹线对应的边界信息;所述边界信息,用于从拼接轨迹线中识别出不同轨迹线的轨迹点;根据所述拼接轨迹线中各轨迹点进行点的扩充,生成各所述轨迹点分别对应的用于绘制的扩充点;根据所述边界信息从各所述扩充点中获取多个扩充点组合;所述扩充点组合包括至少三个扩充点,所述扩充点组合中扩充点分别对应的轨迹点属于同一轨迹线;根据各所述扩充点组合绘制出各所述道路标线。

另一方面,本申请还提供了一种地图道路绘制装置,包括:轨迹线获取模块,用于获取地图中多个道路标线的轨迹线,每个所述轨迹线包括多个轨迹点;轨迹线拼接模块,用于将所述多个道路标线的轨迹线进行拼接,生成拼接轨迹线;边界信息生成模块,用于生成所述拼接轨迹线对应的边界信息;所述边界信息,用于从拼接轨迹线中识别出不同轨迹线的轨迹点;扩充点生成模块,用于根据所述拼接轨迹线中各轨迹点进行点的扩充,生成各所述轨迹点分别对应的用于绘制的扩充点;扩充点组合模块,用于根据所述边界信息从各所述扩充点中获取多个扩充点组合;所述扩充点组合包括至少三个扩充点,所述扩充点组合中扩充点分别对应的轨迹点属于同一轨迹线;道路标线绘制模块,用于根据各所述扩充点组合绘制出各所述道路标线。

在一些实施例中,所述边界信息生成模块,还用于:为所述拼接轨迹线中每个轨迹点生成标签值;所述拼接轨迹线中相邻且属于不同轨迹线的轨迹点的标签值为第一标签值,所述拼接轨迹线中剩余的轨迹点的标签值为第二标签值,所述第一标签值与所述第二标签值不同;根据所述拼接轨迹线中每个轨迹点的标签值,生成所述拼接轨迹线对应的边界信息。

在一些实施例中,所述扩充点组合模块,还用于:从所述边界信息中获取所述拼接轨迹线中每个轨迹点的标签值;针对每个所述轨迹点,将所述轨迹点的标签值作为所述轨迹点对应的扩充点的标签值;按照所述拼接轨迹线中轨迹点的排列顺序,对各所述轨迹点分别对应的各扩充点进行排列,生成扩充点序列;从所述扩充点序列中获取多个扩充点组合;所述扩充点组合包括所述扩充点序列中连续的至少三个扩充点,所述扩充点组合中至少一个扩充点的标签值为第二标签值。

在一些实施例中,所述扩充点组合模块,还用于:按照所述拼接轨迹线中轨迹点的排列顺序,对所述拼接轨迹线中各轨迹点的标签值进行排列,得到所述拼接轨迹线对应的边界信息;针对所述拼接轨迹线中每个轨迹点,从边界信息中确定与所述轨迹点的排列顺序一致的标签值,得到所述轨迹点的标签值。

在一些实施例中,所述扩充点组合模块,还用于:从所述扩充点序列中获取连续的至少三个扩充点;在获取的所述至少三个扩充点中至少一个扩充点的标签值为第二标签值的情况下,将所述至少三个扩充点组成扩充点组合;返回从所述扩充点序列中获取连续的至少三个扩充点的步骤,直到遍历所述扩充点序列,得到多个扩充点组合。

在一些实施例中,所述扩充点组合模块,还用于:在获取的所述至少三个扩充点的标签值均为所述第一标签值的情况下,返回从所述扩充点序列中获取连续的至少三个扩充点的步骤。

在一些实施例中,所述轨迹线拼接模块,还用于:根据所述多个道路标线各自的宽度,确定所述多个道路标线的轨迹线各自的拼接顺序;按照各所述轨迹线的拼接顺序对各所述轨迹线进行拼接,生成拼接轨迹线。

在一些实施例中,所述轨迹线获取模块,还用于:在浏览器中显示地图阅览区域;所述地图阅览区域用于显示地图中的地图区域;确定在所述地图阅览区域中需要显示的地图区域的地理范围;获取所述地理范围内多个道路标线的轨迹线;所述装置还用于:在所述地图阅览区域内显示绘制出的各所述道路标线。

在一些实施例中,所述轨迹线获取模块,还用于:接收针对所述地图阅览区域的地理区域变更操作;响应于所述地理区域变更操作,基于所述地理区域变更操作对所述地图阅览区域中参考点的地理坐标进行更新,得到所述参考点的更新后地理坐标;根据所述参考点的更新后地理坐标,确定所述地图阅览区域中需要显示的地理区域的地理范围。

在一些实施例中,所述地图预先划分为多个单位地理范围;所述轨迹线获取模块,还用于:确定与所述地理范围相交的单位地理范围,得到至少一个目标单位地理范围;获取所述至少一个目标单位地理范围内各道路标线的轨迹线;从所述至少一个目标单位地理范围内各道路标线的轨迹线中,获取所述地理范围内各道路标线的轨迹线。

在一些实施例中,所述轨迹线获取模块,还用于:针对每个所述目标单位地理范围,从所述目标单位地理范围中确定与所述地理范围相重叠的范围,得到重叠范围;从每个所述目标单位地理范围的路网数据中获取对应的重叠范围内各道路标线的轨迹线,得到所述地理范围内各道路标线的轨迹线。

在一些实施例中,所述装置还用于:获取所述拼接轨迹线中各轨迹点各自的颜色值;根据所述轨迹点的颜色值确定根据所述轨迹点生成的扩充点的颜色值;所述道路标线绘制模块,还用于:针对每个所述扩充点组合,确定所述扩充点组合中各扩充点连接形成的几何图形;根据各所述几何图形和各所述几何图形中各扩充点的颜色值绘制出各所述道路标线。

另一方面,本申请还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述地图道路绘制方法中的步骤。

另一方面,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述地图道路绘制方法中的步骤。

另一方面,本申请还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述地图道路绘制方法中的步骤。

上述地图道路绘制方法、装置、计算机设备、存储介质和计算机程序产品,由于边界信息,用于从拼接轨迹线中识别出不同轨迹线的轨迹点,故在渲染绘制过程中,可以根据边界信息从拼接轨迹线中区分属于不同轨迹线的轨迹点,从而可以将属于同一轨迹线的轨迹点生成扩充点组合,并基于各扩充点组合绘制各道路标线,故在一次渲染过程中可以绘制多个道路标线,提高了地图道路的绘制效率。

附图说明

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

图1为一个实施例中地图道路绘制方法的应用环境图;

图2为一个实施例中地图道路绘制方法的流程示意图;

图3为一个实施例中道路标线的示意图;

图4为一个实施例中生成扩充点的原理图;

图5为另一个实施例中道路标线的示意图;

图6为一个实施例中轨迹点与标签值之间的关系图;

图7为一个实施例中扩充点与标签值之间的关系图;

图8为一个实施例中扩充点与标签值之间的关系图;

图9为一个实施例中地理范围与单位地理范围相交的示意图;

图10为一个实施例中根据扩充点组合生成几何图形的原理图;

图11为另一个实施例中地图道路绘制方法的流程示意图;

图12为另一个实施例中地图道路绘制方法的系统架构图;

图13为一个实施例中地图道路绘制装置的结构框图;

图14为一个实施例中计算机设备的内部结构图;

图15为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请实施例提供的地图道路绘制方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。

具体地,终端102获取地图中多个道路标线的轨迹线,每个轨迹线包括多个轨迹点,将多个道路标线的轨迹线进行拼接,生成拼接轨迹线。终端102生成拼接轨迹线对应的边界信息。边界信息,用于从拼接轨迹线中识别出不同轨迹线的轨迹点。终端102根据拼接轨迹线中各轨迹点进行点的扩充,生成各轨迹点分别对应的用于绘制的扩充点,并根据边界信息从各扩充点中获取多个扩充点组合。扩充点组合包括至少三个扩充点,扩充点组合中扩充点分别对应的轨迹点属于同一轨迹线。终端102根据各扩充点组合绘制出各道路标线。道路标线的轨迹线可以是终端102从服务器104获取的,也可以是从终端102本地获取的。

其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、智能语音交互设备、智能家电、车载终端、飞行器、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现,还可以是云服务器,云服务器用于提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content DeliveryNetwork,内容分发网络)以及大数据和人工智能平台等基础云计算服务。终端102以及服务器104可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。

在一些实施例中,如图2所示,提供了一种地图道路绘制方法,该方法可以由终端执行,还可以由终端和服务器共同执行,以该方法应用于图1中的终端102为例进行说明,包括以下步骤202至步骤210。其中:

步骤202,获取地图中多个道路标线的轨迹线,每个轨迹线包括多个轨迹点。

其中,地图可以是真实世界的地图,例如可以是真实世界中的标清地图(SD地图,Standard Definition Map)、高精地图(HD地图,High Definition Map)、增强现实地图(AR地图,AugmentedReality Map)等类型的地图。该多个道路标线可以是在单帧的图像中所需要绘制出的各道路标线。

地图也可以是虚拟场景中的地图,虚拟场景是指虚构的场景,包括但不限于是虚拟的动漫场景或虚拟的游戏场景,道路标线可以是虚拟场景的地图中的道路标线。虚拟场景中的地图,可以是对真实的地面场景进行绘制所生成的地图,也可以是虚构的地图,例如可以是通过仿真的方法生成的并非真实存在的地图。

道路标线是指对道路或道路中的车道起到标志性作用的线,道路标线包括但不限于是道路边界线、车道边界线或车道中心线中的至少一种。道路标线是具有宽度的线,不同类型的道路标线所具有的宽度可以相同也可以不同。如图3所示,展示了地图中的多条道路标线,包括道路边界线、车道边界线和车道中心线。

多个道路标线是指至少两个道路标线,每个道路标线具有轨迹线。道路标线的轨迹线是用于表示道路标线的轨迹的线,轨迹点是指道路标线的轨迹上的点,轨迹线包括多个轨迹点,多个轨迹点串连成的线即为轨迹线。由于轨迹线可以反应出道路标线的形状,从而轨迹点也可以称为形状点。例如,一个具有6个轨迹点的轨迹线可以表示为(a1,a2,a3,a4,a5,a6),其中,a1,a2,a3, a4,a5,a6代表6个轨迹点。轨迹可以通过坐标来表示,一个坐标代表一个轨迹点,例如a1,a2,a3, a4,a5,a6为6个不同的坐标。该坐标可以是地理坐标或者屏幕坐标。地理坐标是指采用经纬度坐标系来表示的坐标。屏幕坐标是指采用屏幕坐标系来表示的坐标,屏幕坐标系是二维坐标系,屏幕坐标系与经纬度坐标系之间具有转换关系,屏幕坐标系中的坐标可以转换为经纬度坐标系中的坐标,经纬度坐标系中的坐标也可以转换为屏幕坐标系中的坐标。

具体地,终端可以确定需要在地图阅览页面中显示的地图的地理范围,从地图中确定该地理范围中的多个道路标线,并获取该多个道路标线的轨迹线,以根据该多个道路标线的轨迹线绘制各道路标线,并在地图阅览页面显示绘制出的各道路标线。其中,地理范围是通过经纬度表示的地图中的范围,地理范围是在经纬度坐标系表示的地图中的范围。经纬度坐标系可以是任意的采用经纬度表示地图的坐标系,例如可以是GCJ-02坐标系,G表示Guojia即国家,C表示Cehui即测绘,J表示Ju即局。

在一些实施例中,终端可以显示地图阅览页面,在地图阅览页面中显示地理范围输入区域,终端获取向该地理范围输入区域中输入的地理范围,从地图中确定该地理范围中的多个道路标线,并获取该多个道路标线的轨迹线,以根据该多个道路标线的轨迹线绘制各道路标线,并在地图阅览页面显示绘制出的各道路标线。

在一些实施例中,终端可以获取地图中的部分的路网数据,路网数据是真实的道路数据,路网数据为地图的基础数据,路网数据可以包括表示道路的形态的数据以及与道路关联的附属属性信息。路网数据还可以包括道路的边界数和车道中心线。路网数据还可以包括设施数据,设施数据是用于对真实世界设施形态和相应属性进行描述的数据,路网数据中可以包括地图中各道路标线的轨迹线。终端可以从地图的路网数据中获取多个道路标线的轨迹线。

步骤204,将多个道路标线的轨迹线进行拼接,生成拼接轨迹线。

其中,拼接轨迹线,是将该多个道路标线各自的轨迹线进行拼接生成的。

具体地,终端可以依次将该多个道路标线各自的轨迹线进行拼接,生成拼接轨迹线。例如,该多个道路标线为3个道路标线,这3个道路标线各自的轨迹线分别为(a1,a2,a3),(b1,b2,b3)和(c1,c2,c3),则拼接轨迹线可以为(a1,a2,a3, b1,b2,b3, c1,c2,c3)。

在一些实施例中,终端可以确定各轨迹线的拼接顺序,按照各轨迹线的拼接顺序对各轨迹线进行拼接,生成拼接轨迹线。拼接顺序越靠前,则轨迹线在拼接轨迹线中的位置越靠前。

在一些实施例中,该多个道路标线的轨迹线各自的拼接顺序各不相同。各轨迹线各自的拼接顺序可以是任意且各不相同的顺序。例如,终端获取的该多个道路标线的轨迹线是通过列表存储的,则终端可以将轨迹线在该列表中的顺序,作为该轨迹线的拼接顺序。

在一些实施例中,终端可以按照轨迹线的长度确定轨迹线的拼接顺序,例如,终端可以按照长度从大到小的顺序,确定轨迹线的拼接顺序,长度越大,则拼接顺序越靠前。或者,终端可以按照长度从小到大的顺序,确定轨迹线的拼接顺序,长度越小,则拼接顺序越靠前。

步骤206,生成拼接轨迹线对应的边界信息;边界信息,用于从拼接轨迹线中识别出不同轨迹线的轨迹点。

其中,边界信息可以包括每个轨迹线的至少一个端点的标识,端点包括轨迹线的首个轨迹点和最后一个轨迹点。端点的标识可以为特定的标签值,具有该特定的标签值的轨迹点则为端点。终端可以根据拼接轨迹线中每个轨迹点的标签值,生成拼接轨迹线对应的边界信息。边界信息中包括每个轨迹点的标签值。

具体地,终端可以为拼接轨迹线中每个轨迹点生成标签值,并且将拼接轨迹线中各轨迹线的每个端点的标签值设置为第一标签值,将拼接轨迹线中剩余的轨迹点的标签值设置为第二标签值。在一些实施例中,终端可以为拼接轨迹线中每个轨迹点生成标签值,并且将拼接轨迹线中相邻且属于不同轨迹线的轨迹点的标签值设置为第一标签值,将拼接轨迹线中剩余的轨迹点的标签值设置为第二标签值,第一标签值与第二标签值不同。终端可以根据拼接轨迹线中每个轨迹点的标签值,生成拼接轨迹线对应的边界信息。可以理解,相邻且属于不同轨迹线的轨迹点是轨迹线的端点。边界信息中包括每个轨迹点的标签值。

步骤208,根据拼接轨迹线中各轨迹点进行点的扩充,生成各轨迹点分别对应的用于绘制的扩充点。

其中,边界信息和拼接轨迹线是在渲染之前生成的,生成边界信息和拼接轨迹线的过程,可以是终端中的CPU(Central Processing Unit,中央处理器)执行的。渲染即绘制的过程可以是终端中的GPU(Graphics Processing Unit,图形处理器)执行的。

具体地,终端中的CPU在生成边界信息和拼接轨迹线后,将边界信息和拼接轨迹线输入至GPU中进行渲染,以绘制各道路标线。在渲染即绘制过程中,终端为拼接轨迹线中的每个轨迹点生成对应的多个扩充点,多个是指至少两个。

在一些实施例中,道路标线是具有宽度的线,轨迹线可以是道路标线的中心线,轨迹线可以理解为没有宽度的线,每个轨迹点均对应有宽度,轨迹点的宽度是根据道路标线在该轨迹点处的宽度,即轨迹点的宽度,是经过该轨迹点且垂直于道路标线的直线中与该道路标线相交的线段的长度。在渲染即绘制过程中,终端可以为拼接轨迹线中的每个轨迹点生成对应的多个扩充点,多个是指至少两个。轨迹点对应的扩充点可以是根据该轨迹点和该轨迹点对应的宽度生成的。

以生成一个轨迹点对应的多个扩充点为例,终端可以确定经过该轨迹点且垂直于该轨迹点所属轨迹线的第一方向和第二方向,第一方向与第二方向是相反的两个方向。终端可以将轨迹点对应的宽度的一半作为偏移距离。终端可以将轨迹点沿着第一方向移动该偏移距离,得到该轨迹点对应的扩充点,并将轨迹点沿着第二方向移动该偏移距离,得到该轨迹点对应的扩充点。

在一些实施例中,终端还可以根据轨迹点对应的扩充点,生成轨迹点的对应的新的扩充点。例如,终端可以将扩充点沿着平行于轨迹线的方向进行移动预设距离,得到新的扩充点。预设距离可以根据需要设置。轨迹线中轨迹点可以是均匀分布的,相邻轨迹点之间的距离一致,预设距离小于轨迹点与轨迹点之间的距离。如图4所示,展示了具有3个轨迹点,无填充的圆圈代表轨迹点,有填充的圆圈代表扩充点,每个轨迹点对应4个扩充点,以轨迹点1为例,通过将轨迹点1进行移动,生成扩充点1_1和扩充点1_2,通过移动扩充点1_1生成扩充点1_3,通过移动扩充点1_2生成扩充点1_4。

步骤210,根据边界信息从各扩充点中获取多个扩充点组合;扩充点组合包括至少三个扩充点,扩充点组合中扩充点分别对应的轨迹点属于同一轨迹线。

其中,扩充点组合中包括至少三个扩充点,例如包括三个扩充点。扩充点组合中扩充点分别对应的轨迹点属于同一轨迹线。

具体地,终端可以依次从根据边界信息从各扩充点中获取扩充点组合,并根据扩充点组合绘制出各道路标线。获取扩充点组合的过程,可以与根据扩充点组合进行绘制的过程并行进行。例如,在获取下一个扩充点组合的同时,可以根据上一个扩充点组合进行绘制。

在一些实施例中,终端可以先执行根据边界信息从各扩充点中获取多个扩充点组合的过程,当得到各扩充点组合后,再根据各扩充点组合绘制出各道路标线。

在一些实施例中,边界信息中包括每个轨迹点的标签值。针对拼接轨迹线中每个轨迹点,终端可以将轨迹点的标签值,作为轨迹点对应的每个扩充点的标签值,例如,轨迹点的标签值为1,则轨迹点对应的每个扩充点的标签值均为1。拼接轨迹线可以理解为轨迹点排列而成的序列。终端可以按照轨迹点在拼接轨迹线中的排列顺序,对各轨迹点分别对应的扩充点进行排列,生成扩充点序列。终端可以从扩充点序列中获取连续的至少三个扩充点,在获取的该至少三个扩充点中至少一个扩充点的标签值为第二标签值的情况下,将该至少三个扩充点组成扩充点组合。

步骤212,根据各扩充点组合绘制出各道路标线。

具体地,终端可以确定扩充点组合中各扩充点连接成的几何图形,几何图形是根据扩充点组合中的各扩充点连接而成的图形,在扩充点组合中包括三个扩充点的情况下,该几何图形为三角形,在该扩充点组合中包括四个扩充点的情况下,该几何图形为四边形。

在一些实施例中,终端可以对几何图形进行光栅化处理生成多个片元,根据片元和扩充点的颜色值确定片元在地图显示屏幕区域中对应的像素点,根据扩充点的颜色值对确定出的像素点进行着色,从而在屏幕区域中显示出道路标线。具体地,终端可以将几何图形和几何图形中扩充点的颜色值输入到片元着色器中,通过片元着色器对几何图形进行光栅化处理并对确定出的像素点进行着色,从而在屏幕区域中显示出道路标线。如图5所示,展示了绘制出的各道路标线,包括道路边界线、车道边界线和车道中心线。需要说明的是,图5仅仅是示意图,并不代表真实绘制出的道路标线。

在一些实施例中,该多个道路标线是需要在单帧的图像中所需要绘制的各道路标线,终端可以根据各扩充点组合绘制出各道路标线,从而单帧的图像绘制中可以一次性的绘制多个道路标线,提高了绘制效率,节省了绘制过程中所占用的计算机资源。

上述地图道路绘制方法中,由于边界信息,用于从拼接轨迹线中识别出不同轨迹线的轨迹点,故在渲染绘制过程中,可以根据边界信息从拼接轨迹线中区分属于不同轨迹线的轨迹点,从而可以将属于同一轨迹线的轨迹点生成扩充点组合,并基于各扩充点组合绘制各道路标线,故在一次渲染过程中可以绘制多个道路标线,提高了地图道路的绘制效率。

从而本申请提供的地图道路绘制方法,实现了一种批量渲染的方法。批量渲染是指将所需要渲染的所有数据进行数据处理、整合、接口封装,一次性绘制多条道路标线的方法,批量渲染,可以在保证渲染效果的同时,减少绘制性能开销,提高绘制的效率。

在一些实施例中,生成拼接轨迹线对应的边界信息,包括:为拼接轨迹线中每个轨迹点生成标签值;拼接轨迹线中相邻且属于不同轨迹线的轨迹点的标签值为第一标签值,拼接轨迹线中剩余的轨迹点的标签值为第二标签值,第一标签值与第二标签值不同;根据拼接轨迹线中每个轨迹点的标签值,生成拼接轨迹线对应的边界信息。

其中,边界信息中包括拼接轨迹线中每个轨迹点分别对应的标签值。剩余的轨迹点是指拼接轨迹线中相邻且属于不同轨迹线的轨迹点之外的轨迹点。第一标签值和第二标签值是预设的两个不同的数值,第一标签值和第二标签值可以根据需要设置对应的数值,例如,第一标签值为1,第二标签值为-1,或者,第一标签值为-1,第二标签值为1,或者,第一标签值为0,第二标签值为1,或者,第一标签值为1,第二标签值为0等。

具体地,终端可以从拼接轨迹线中确定相邻且属于不同轨迹线的轨迹点,将相邻且属于不同的轨迹线的轨迹点的标签值确定为第一标签值,将拼接轨迹线中剩余的轨迹点的标签值确定为第二标签值。以第一标签值为-1,第二标签值为1为例,如图6所示,拼接轨迹线为(a1,a2,a3, b1,b2,b3, c1,c2,c3),(a1,a2,a3),(b1,b2,b3)和(c1,c2,c3)为3条轨迹线,由于a3与b1相邻且属于不同的轨迹线,故将a3和b1的标签值均设置为第一标签值即-1,同样的,由于b3和c1相邻且属于不同的轨迹线,故将b3和c1的标签值均设置为第一标签值即-1,并将剩余的a1,a2,b2,c2,c3的标签值均设置为第二标签值即1。

本实施例中,由于拼接轨迹线中相邻且属于不同轨迹线的轨迹点的标签值为第一标签值,拼接轨迹线中剩余的轨迹点的标签值为第二标签值,第一标签值与第二标签值不同,从而通过第一标签值和第二标签值,可以快速的从拼接轨迹线中识别出属于不同道路标线的轨迹点,提高了处理效率。

在一些实施例中,根据边界信息从各扩充点中获取多个扩充点组合,包括:从边界信息中获取拼接轨迹线中每个轨迹点的标签值;针对每个轨迹点,将轨迹点的标签值作为轨迹点对应的扩充点的标签值;按照拼接轨迹线中轨迹点的排列顺序,对各轨迹点分别对应的各扩充点进行排列,生成扩充点序列;从扩充点序列中获取多个扩充点组合;扩充点组合包括扩充点序列中连续的至少三个扩充点,扩充点组合中至少一个扩充点的标签值为第二标签值。

其中,轨迹点在拼接轨迹线中的位置越靠前,则轨迹点对应的扩充点在扩充点序列中的位置越靠前,同一轨迹点对应的各个扩充点之间的排列顺序可以是任意的。例如,轨迹点1排列在轨迹点2之前,轨迹点1有2个扩充点分别为扩充点1和扩充点2,轨迹点2具有2个扩充点,分别为扩充点3和扩充点4,则扩充点1和扩充点2排列在扩充点3和扩充点4之前,扩充点1可以排列在扩充点2之前或之后,扩充点3可以排列在扩充点4之前或之后。

其中,每个轨迹点生成至少两个扩充点,例如,每个轨迹点生成3个或4个扩充点。

具体地,终端可以依次从扩充点序列中获取连续的至少三个扩充点,在获取的至少三个扩充点中至少一个扩充点的标签值为第二标签值的情况下,将至少三个扩充点组成扩充点组合。

在一些实施例中,终端可以按照扩充点序列中各扩充点的排列顺序,对各扩充点的标签值进行排列,生成扩充点标签序列。扩充点在扩充点序列中的位置越靠前,则扩充点的标签值在扩充点标签序列中的位置越靠前。如图6所示,展示了拼接轨迹线为(a1,a2,a3,b1,b2,b3,c1,c2,c3)对应的边界信息(1,1,-1,-1,1,-1,-1,1,1)。如图7所示,拼接轨迹线为(a1,a2,a3, b1,b2,b3, c1,c2,c3),中每个轨迹点生成4个扩充点,例如,a1生成a11~a14,b3生成b31~b34,c1生成c11~c14,并将轨迹点的标签值作为轨迹点生成的扩充点的标签值,根据各个扩充点的标签值排列成扩充点标签序列,如图7所示,展示了扩充点标签序列,由于a1的标签值为1,故a1生成的扩充点a11~a14各自的标签值也均为1,且扩充点在扩充点序列中的位置越靠前,则扩充点的标签值在扩充点标签序列中的位置越靠前。针对扩充点序列中每个扩充点,终端可以从扩充点标签序列中确定与该扩充点的排列顺序一致的标签值,得到扩充点的标签值。

本实施例中,由于扩充点组合中至少一个扩充点的标签值为第二标签值,故可以使得扩充点组合中各扩充点分别对应的轨迹点属于同一轨迹线,即使得扩充点组合中各扩充点是用于绘制同一道路标线的点,从而在根据扩充点组合绘制过程中,可以绘制出对应的道路标线。

在一些实施例中,从边界信息中获取拼接轨迹线中每个轨迹点的标签值,包括:按照拼接轨迹线中轨迹点的排列顺序,对拼接轨迹线中各轨迹点的标签值进行排列,得到拼接轨迹线对应的边界信息;针对拼接轨迹线中每个轨迹点,从边界信息中确定与轨迹点的排列顺序一致的标签值,得到轨迹点的标签值。

具体地,终端可以按照拼接轨迹线中轨迹点的排列顺序,对拼接轨迹线中各轨迹点的标签值进行排列,将排列成的序列作为边界信息。如图6所示,拼接轨迹线为(a1,a2,a3, b1,b2,b3, c1,c2,c3),(a1,a2,a3,b1,b2,b3, c1,c2,c3)对应的边界信息为序列(1,1,-1,-1,1,-1,-1,1,1)。

本实施例中,从边界信息中确定与轨迹点的排列顺序一致的标签值,得到轨迹点的标签值,可以快速且准确的确定轨迹点的标签值,提高了绘制效率。

在一些实施例中,从扩充点序列中获取多个扩充点组合,包括:从扩充点序列中获取连续的至少三个扩充点;在获取的至少三个扩充点中至少一个扩充点的标签值为第二标签值的情况下,将至少三个扩充点组成扩充点组合;返回从扩充点序列中获取连续的至少三个扩充点的步骤,直到遍历扩充点序列,得到多个扩充点组合。

具体地,终端可以按照从前到后的顺序,从扩充点序列中获取连续的至少三个扩充点。例如,终端可以按照从前到后的顺序,从扩充点序列中获取连续的三个扩充点。终端可以每间隔预设数量个扩充点,从扩充点序列中获取连续的三个扩充点,预设数量可以根据需要设置,预设数据大于等于1,例如预设数量为1或2。

以图7中的扩充点序列为例,a22生成的4个扩充点为a21~a24且在扩充点序列中的按照a21~a24排列,若预设数量为1,则终端首先获取a11~a13,然后获取a12~a14,接着获取a13~a21,再获取a14~a22,不断循环,直到遍历扩充点序列为止。将至少三个扩充点组成扩充点组合,是指将该至少三个扩充点组成的集合作为扩充点组合,扩充点组合中包括该至少三个扩充点中的每个扩充点。

在一些实施例中,终端每次获取到三个扩充点后,获取该三个扩充点各自的标签值,在该三个扩充点中至少一个扩充点的标签值为第二标签值的情况下,将该三个扩充点组成扩充点组合。例如,图7中,若获取的该三个扩充点为a11~a13,由于a11~a13各自的标签值均为第二标签值,故将a11~a13组成扩充点组合;例如图8中,若获取的三个扩充点为b24、b31、b32,由于b24的标签值为第二标签值即1,故将b24、b31、b32组成扩充点组合;例如图7中,若获取的该三个扩充点为b33、b34、c11中各自的标签值均为第一标签值,故不会根据b33、b34、c11生成扩充点组合,从而在绘制时,并不会根据b33、b34、c11连接成的几何图形进行绘制,从而使得绘制出的多条道路标线是相互独立的,符合实际情况,提高了绘制的准确度。

本实施例中,在获取的至少三个扩充点中至少一个扩充点的标签值为第二标签值的情况下,将至少三个扩充点组成扩充点组合,从而根据扩充点组合进行绘制,使得绘制出的多条道路标线是相互独立的,符合实际情况,提高了绘制的准确度。

在一些实施例中,方法还包括:在获取的至少三个扩充点的标签值均为第一标签值的情况下,返回从扩充点序列中获取连续的至少三个扩充点的步骤。

具体地,在获取的至少三个扩充点的标签值均为第一标签值的情况下,终端不会根据该三个扩充点生成扩充点组合。例如图8中,若该三个扩充点为b33、b34、c11,则终端不会根据b33、b34、c11生成扩充点组合。需要说明的是,在该至少三个扩充点分别对应的轨迹点属于同一轨迹线的情况下,终端也有可能不会根据该至少三个扩充点生成扩充点组合。例如图8中,b31、b32、b33分别对应的轨迹点属于同一轨迹线,但b31、b32、b33各自的标签值均为第一标签值即-1,故终端不会根据该三个扩充点生成扩充点组合。在实际生成扩充点的过程中,可以灵活调整生成的扩充点的位置,从而使得即便边缘处的多个扩充点不会生成扩充点组合,也同样可以使得绘制出的道路标线具有较好的效果。

本实施例中,在获取的至少三个扩充点的标签值均为第一标签值的情况下,返回从扩充点序列中获取连续的至少三个扩充点的步骤,而不根据该至少三个扩充点组成扩充点组合,从而使得绘制出的多条道路标线是相互独立的,符合实际情况,提高了绘制的准确度。

在一些实施例中,将多个道路标线的轨迹线进行拼接,生成拼接轨迹线,包括:根据多个道路标线各自的宽度,确定多个道路标线的轨迹线各自的拼接顺序;按照各轨迹线的拼接顺序对各轨迹线进行拼接,生成拼接轨迹线。

具体地,终端可以根据道路标线的宽度,确定道路标线的拼接顺序。例如,宽度越大,则拼接顺序越靠前。或者,宽度越小,则拼接顺序越靠前。对于宽度相同的至少两个道路标线,该至少两个道路标线的轨迹线之间的拼接顺序可以是任意的。

本实施例中,按照根据道路标线的宽度确定道路标线的拼接顺序,以使得相同宽度的道路标线在渲染时间上接近,从而相同宽度的道路标线的显示时间上接近,提高了显示效果。

在一些实施例中,获取地图中多个道路标线的轨迹线,包括:在浏览器中显示地图阅览区域;地图阅览区域用于显示地图中的地图区域;确定在地图阅览区域中需要显示的地图区域的地理范围;获取地理范围内多个道路标线的轨迹线;方法还包括:在地图阅览区域内显示绘制出的各道路标线。

其中,浏览器是用来检索、显示以及传递Web信息资源的应用程序。本实施例中的浏览器可以是任意的支持绘制地图的浏览器,绘制可以是通过渲染实现的,故浏览器可以是支持渲染的浏览器。例如,本实施例中的浏览器是支持WebGL和threejs的浏览器。WebGL是一种3D(3 Dimensions,三维)绘图协议,可以提供硬件3D加速渲染,为数据量大、性能要求高、需要三维场景操作等场景提供了绘制接口。Threejs为一种WebGL引擎,可以用于创建三维场景以及三维场景中的各种对象,三维场景中的对象包括摄像机、光影、材质等对象。地图阅览区域是用于显示地图的区域。地图区域是指地图中的区域。地图区域的地理范围代表了地图区域在地图中的位置。

具体地,终端可以在浏览器中显示地图阅览页面,并在地图阅览页面中显示地图阅览区域。地图阅览页面提供阅览地图的功能,地图阅览页面还可以提供编辑地图中道路的功能。

在一些实施例中,终端确定在地图阅览区域中需要显示的地图区域的地理范围,确定该地理范围的地图区域内包括的各道路标线,并获取地理区域内包括的各道路标线各自的轨迹线。

本实施例中,在浏览器中显示地图阅览区域,确定在地图阅览区域中需要显示的地图区域的地理范围,获取地理范围内多个道路标线的轨迹线,从而可以在浏览器即Web端一次性绘制多个道路标线,提高了在Web端中绘制地图道路的效率,从而可以快速的在地图阅览区域内显示绘制出的各道路标线,提升了浏览器中阅览地图道路的效果。

在一些实施例中,确定在地图阅览区域中需要显示的地图区域的地理范围,包括:接收针对地图阅览区域的地理区域变更操作;响应于地理区域变更操作,基于地理区域变更操作对地图阅览区域中参考点的地理坐标进行更新,得到参考点的更新后地理坐标;根据参考点的更新后地理坐标,确定地图阅览区域中需要显示的地理区域的地理范围。

其中,地理区域变更操作,是用于指示更新地图阅览区域中显示的地理区域的操作,例如,从显示一个地理范围的地理区域更新为显示另一个地理范围的地理区域。地理区域变更操作例如可以是比例尺变更操作,比例尺变更操作,是用于变更地图阅览区域中显示地图所采用的比例尺的操作,例如,将采用一种比例尺显示地图变更为采用另一种比例尺显示地图。变更比例尺会使得地图阅览区域中显示的地图区域更新。地理区域变更操作可以是通过地图阅览区域触发的,包括但不限于是在地图阅览区域中触发的滑动、拖动、双击等操作,滑动或拖动可以触发对地图区域的移动,例如,向上滑动或拖动,可以将当前显示的地图区域的全部或部分移除地图阅览区域,并将当前显示的地图区域的下方部分区域显示在地图阅览区域中,从而实现了地图阅览区域中地图区域的更新。

参考点属于像素点,是指地图阅览区域占用的屏幕区域中的像素点,将地图阅览区域占用的屏幕区域称为地图显示屏幕区域。参考点可以是地图显示屏幕区域中的任一像素点,例如可以是地图显示屏幕区域的中心位置的像素点,中心位置的像素点称为中心像素点。参考点还可以是地图显示屏幕区域中的边界位置处的像素点,例如,在地图显示屏幕区域为矩形的情况下,参考点可以是地图显示屏幕区域的角点处的像素点,矩形的角点,是指矩形的4个顶点。

地图显示屏幕区域中的像素点的坐标可以采用屏幕坐标系中的坐标。屏幕坐标系中的坐标与经纬度坐标系中的坐标之间具有坐标转换关系,通过坐标转换关系,可以将屏幕坐标系中的坐标转换为经纬度坐标系中的坐标。在屏幕坐标系中的坐标可以称为屏幕坐标,在经纬度坐标系中的坐标可以称为地理坐标。

具体地,终端可以记录当前时间该地图显示屏幕区域中该参考点的屏幕坐标,作为参考点的当前屏幕坐标,并记录该参考点的屏幕坐标对应的地理坐标,作为参考点的当前地理坐标。在终端接收到针对地图阅览区域的地理区域变更操作的情况下,终端根据地理区域变更操作,确定经纬度偏移量,根据经纬度偏移量对参考点的当前地理坐标进行偏移,得到参考点的更新后地理坐标,终端可以根据参考点的更新后地理坐标确定需要显示的地理区域的地理范围。

在一些实施例中,终端可以根据参考点的更新后地理坐标以及地图显示屏幕区域的尺寸,确定需要显示的地理区域的地理范围。具体地,终端可以根据参考点的更新后地理坐标,确定地图显示屏幕区域中至少两个角点处像素点的地理坐标,根据至少两个角点处像素点的地理坐标,确定需要显示的地理区域的地理范围。该至少两个角点可以包括地图显示屏幕区域的对角线上的两个角点,或者,该至少两个角点为地图显示屏幕区域中的任意三个角点,或者,该至少两个角点为地图显示屏幕区域中的全部角点即四个角点。以参考点为中心像素点为例,终端可以根据如下公式确定需要显示的地理区域的地理范围:

ptGeo.x=geo_center_.x+(ptWnd.x-see_center_.x)*resolution_;

ptGeo.y=geo_center_.y+(ptWnd.y-see_center_.y)*resolution_;

其中,屏幕坐标为二维坐标,可以用(x,y)表示屏幕坐标,x为横坐标,y为纵坐标。see_center_.x为中心像素点的屏幕坐标中的横坐标,see_center_.y为中心像素点的屏幕坐标中的纵坐标。geo_center_.x和geo_center_.y代表中心像素点的地理坐标,resolution_代表比例尺。ptWnd代表地图显示屏幕区域中的角度处的像素点,ptGeo代表像素点ptWnd的屏幕坐标对应的地理坐标。ptWnd.x和ptWnd.y代表角点处像素点ptWnd的屏幕坐标,ptGeo.x和ptGeo.y代表像素点ptWnd的屏幕坐标对应的地理坐标。

在一些实施例中,终端还可以采用偏移后所得到的地理坐标更新当前屏幕坐标,即将当前屏幕坐标更新为偏移后所得到的地理坐标,从而实现了对参考点的当前屏幕坐标的更新。

本实施例中,接收针对地图阅览区域的地理区域变更操作,响应于地理区域变更操作,基于地理区域变更操作对地图阅览区域中参考点的地理坐标进行更新,得到参考点的更新后地理坐标,根据参考点的更新后地理坐标,确定地图阅览区域中需要显示的地理区域的地理范围,提高了确定地理范围的效率。

在一些实施例中,地图预先划分为多个单位地理范围;获取地理范围内多个道路标线的轨迹线,包括:确定与地理范围相交的单位地理范围,得到至少一个目标单位地理范围;获取至少一个目标单位地理范围内各道路标线的轨迹线;从至少一个目标单位地理范围内各道路标线的轨迹线中,获取地理范围内各道路标线的轨迹线。

其中,地图可以是预先通过二维网格划分为多个单位地理范围的,二维网格中包括多个单元格,每个单元格在地图中占用的地理范围为一个单位地理范围。单元格的大小决定了单位地理范围的大小。如图9所示,虚线的二维网格中每个单元格对应一个单位地理范围。

具体地,终端可以确定与地理范围相交的单位地理范围,该地理范围的大小有可能小于、大于或等于单位地理范围的大小。可以存在至少一个与地理范围相交的单位地理范围,与地理范围相交的单位地理范围,可以包括位于地理范围中的单位地理范围、与该地理范围存在部分重叠的单位地理范围。如图9中,实线的矩形框代表需要展示的地理区域的地理范围,可以看出该地理范围与4个单位地理范围相交即存在重叠,故这4个单位地理范围均为目标单位地理范围。

在一些实施例中,针对每个目标单位地理范围,终端确定该地理范围与该目标单位地理范围之间重叠的范围,得到重叠范围,从目标单位地理范围的路网数据中获取位于该重叠范围的各道路标线的轨迹线,多个该地理范围内各道路标线的轨迹线。

本实施例中,由于地图预先划分为多个单位地理范围,从而确定与地理范围相交的单位地理范围,得到目标单位地理范围,获取目标单位地理范围内各道路标线的轨迹线,从目标单位地理范围内各道路标线的轨迹线中,获取地理范围内各道路标线的轨迹线,可以快速的获取地理范围内各道路标线的轨迹线,提高了获取轨迹线的效率。

在一些实施例中,从至少一个目标单位地理范围内各道路标线的轨迹线中,获取地理范围内各道路标线的轨迹线,包括:针对每个目标单位地理范围,从目标单位地理范围中确定与地理范围相重叠的范围,得到重叠范围;从每个目标单位地理范围的路网数据中获取对应的重叠范围内各道路标线的轨迹线,得到地理范围内各道路标线的轨迹线。

具体地,在确定目标单位地理范围之后,终端可以获取目标单位地理范围的路网数据,从目标单位地理范围的路网数据中确定各道路标线的轨迹线。在终端本地存储有目标单位地理范围的路网数据的情况下,终端可以从本地获取目标单位地理范围的路网数据。在终端本地未存储目标单位地理范围的路网数据的情况下,终端可以向服务器发送携带该目标单位地理范围的路网数据获取请求,服务器响应于路网数据获取请求,将目标单位地理范围的路网数据返回至终端,终端接收到目标单位地理范围的路网数据后,可以在本地存储例如缓存该路网数据。

在一些实施例中,终端获取目标单位地理范围的路网数据后,可以采用rtree结构存储路网数据。在地图阅览区域中不断触发地理区域变更操作的过程中,终端可以获取多个单位地理范围的路网数据并存储至rtree中。并且,终端每次在响应于地理区域变更操作时,确定目标单位地理范围,判断rtree中是否存储有该目标单位地理范围的路网数据,若存在,在从rtree中查找地理范围内的道路标线的轨迹线,若未查找到,则可以从服务器获取目标单位地理范围的路网数据,再从获取的路网数据中获取地理范围内的各个道路标线的轨迹线。

本实施例中,从每个目标单位地理范围的路网数据中获取对应的重叠范围内各道路标线的轨迹线,得到地理范围内各道路标线的轨迹线,从而可以快速得到地理范围内各道路标线的轨迹线,提高了得到轨迹线的效率。

在一些实施例中,方法还包括:获取拼接轨迹线中各轨迹点各自的颜色值;根据轨迹点的颜色值确定根据轨迹点生成的扩充点的颜色值;根据各扩充点组合绘制出各道路标线,包括:针对每个扩充点组合,确定扩充点组合中各扩充点连接形成的几何图形;根据各几何图形和各几何图形中各扩充点的颜色值绘制出各道路标线。

其中,几何图形是根据扩充点组合中的各扩充点连接而成的图形,在扩充点组合中包括三个扩充点的情况下,该几何图形为三角形,在该扩充点组合中包括四个扩充点的情况下,该几何图形为四边形。

具体地,在绘制即渲染之前,终端可以获取拼接轨迹线中各轨迹点各自的颜色值,并可以按照拼接轨迹线中轨迹点的排列顺序,对各轨迹点的颜色值进行排列,得到颜色值序列。在绘制过程中,终端可以将颜色值序列输入至GPU中进行渲染,在渲染过程中,终端可以从颜色值序列中获取与轨迹点在拼接轨迹线中位置一致的颜色值,得到该轨迹点的颜色值。终端可以将轨迹点的颜色值确定为根据该轨迹点生成的扩充点的颜色值。

在一些实施例中,在得到各个扩充点的颜色值后,终端可以按照扩充点在扩充点序列中的排列顺序,对各扩充点的颜色值进行排列,生成扩充点颜色值序列。终端可以根据扩充点在扩充点序列中的位置,从扩充点颜色值中获取同一位置处的颜色值,得到该扩充点的颜色值。

在一些实施例中,每个扩充点组合中包括三个扩充点,扩充点组合生成的几何图形为三角形。如图10所示,展示了具有三个轨迹点的轨迹线,根据该轨迹线中的每个轨迹点生成6个扩充点,假如这6个扩充点的排列顺序分别为1-6(图6中扩充点旁边的数字代表排列顺序),则第1-3个扩充点组成扩充点组合,第2-4个扩充点组成扩充点组合,第3-5个扩充点组成扩充点组合,第4-6个扩充点组成扩充点组合,从而生成4个三角形。

在一些实施例中,终端可以对几何图形进行光栅化处理生成多个片元,根据片元和扩充点的颜色值确定片元在地图显示屏幕区域中对应的像素点,根据扩充点的颜色值对确定出的像素点进行着色,从而在屏幕区域中显示出道路标线。具体地,终端可以将几何图形和几何图形中扩充点的颜色值输入到片元着色器中,通过片元着色器对几何图形进行光栅化处理并对确定出的像素点进行着色,从而在屏幕区域中显示出道路标线。

本实施例中,根据各扩充点组合进行绘制,可以在一次渲染的过程中,绘制出多条没有连接关系的道路标线,提高了绘制道路标线的效率。

在一些实施例中,如图11所示,提供了一种地图道路绘制方法,该方法可以由终端执行,还可以由终端和服务器共同执行,以该方法应用于图1中的终端为例进行说明,包括以下步骤1102至步骤1128。其中:

步骤1102,在浏览器中显示地图阅览区域。

其中,地图阅览区域用于显示地图中的地图区域。

步骤1104,确定在地图阅览区域中需要显示的地图区域的地理范围。

步骤1106,获取地理范围内多个道路标线的轨迹线。

步骤1108,将多个道路标线的轨迹线进行拼接,生成拼接轨迹线。

步骤1110,将拼接轨迹线中相邻且属于不同轨迹线的轨迹点的标签值设置为第一标签值,并将拼接轨迹线中剩余的轨迹点的标签值设置为第二标签值,根据拼接轨迹线中每个轨迹点的标签值,生成拼接轨迹线对应的边界信息。

其中,第一标签值与第二标签值不同。

步骤1112,在单帧绘制中,根据拼接轨迹线中各轨迹点进行点的扩充,生成各轨迹点分别对应的用于绘制的扩充点。

步骤1114,从边界信息中获取拼接轨迹线中每个轨迹点的标签值。

步骤1116,针对每个轨迹点,将轨迹点的标签值作为轨迹点对应的扩充点的标签值。

步骤1118,按照拼接轨迹线中轨迹点的排列顺序,对各轨迹点分别对应的各扩充点进行排列,生成扩充点序列。

步骤1120,从扩充点序列中获取连续的至少三个扩充点。

步骤1122,判断获取的至少三个扩充点中是否至少一个扩充点的标签值为第二标签值,若是,则执行步骤1124,若否,则进入步骤1126。

步骤1124,将获取的至少三个扩充点组成扩充点组合,并进入步骤1126。

步骤1126,判断是否已遍历完扩充点序列,若否,则返回步骤1120,若是,则进入步骤1128。

步骤1128,根据各扩充点组合绘制出各道路标线,并在地图阅览区域内显示绘制出的各道路标线。

其中,终端可以在得到扩充点组合后,即可根据扩充点组合进行绘制。无需在得到所有的扩充点组合后再进行绘制。或者,终端可以在所有的扩充点组合后再进行绘制。

本实施例中,通过标签值来将不同道路标线的轨迹点进行区分,从而在渲染绘制的过程中,可以根据标签值来确定具体所需要绘制的内容,在单帧绘制中,可以一次性的视线多种类型的道路标志线(道路边界线、车道边界线、车道中心线)等的绘制,当然,除了绘制道路标志线还可以绘制道路上的设施,从而降低了绘制的次数,提高了绘制效率,节省了绘制过程中所消耗的计算机资源。

在一些实施例中,如图12所示,展示了本申请提供的地图道路绘制方法对应的系统架构图,系统架构图包括4个环节,分别是数据拉取、范围裁剪、数据聚合和渲染绘制。数据拉取、范围裁剪、数据聚合是在CPU中执行的,渲染绘制是在GPU中执行的。数据拉取环节中,终端根据需要显示的地理范围,从服务器中动态的拉取单位地理范围的路网数据,并将拉取的路网数据进行存储例如通过构建rtree存储路网数据,当需要使用的路网数据已经拉取过即已经存储在本地,则终端无需从服务器重复的拉取。范围裁剪环节中,计算屏幕范围需要展示的经纬度范围,屏幕范围是指地理阅览区域所占的屏幕区域即地图显示屏幕区域,经纬度范围是指需要展示的地理范围。范围裁剪环节中,还获取地理范围中的路网数据,并从地理范围的路网数据中获取地理范围中各道路标线的轨迹线。数据聚合环节中,根据位置数据生成位置数组,位置数据包括范围裁剪环节中获取的地理范围中各道路标线的轨迹线,轨迹线中的每个轨迹点采用坐标(即位置)表示,位置数组是指拼接轨迹线,可以通过数组存储拼接轨迹线,故称为位置数组。数据聚合环节中,还获取不连接标识,不连接标识是指第一标签值,即在该环节中,还为拼接轨迹线中各个轨迹点生成标签值,即生成边界信息。数据聚合环节中,还获取样式数据,样式数据中包括各种类型的道路标线分别对应的颜色值或宽度等信息,需要显示的地理范围中各道路标线可以是任意类型的,从而可以为需要绘制的各道路标线匹配对应的样式例如样式值和宽度,并且可以为拼接轨迹线生成对应的颜色值序列和宽度序列,颜色值序列中包括拼接轨迹线中每个轨迹点的颜色值,宽度序列中包括拼接轨迹线中每个轨迹点对应的宽度。数据聚合环节中,还可以实例化数组数据结构共享,即将拼接轨迹线、边界信息、样式相关的序列例如颜色值序列和宽度序列进行打包,将打包所得到的数据传入到GPU中进行渲染绘制。渲染绘制环节中,GPU通过顶点着色器生成扩充点,并为扩充点设置对应的标签值,连续和不连续的特殊处理,是值为扩充点设置对应的标签值,顶点着色器处理带宽度的扩充点,是指根据轨迹点的宽度生成扩充点。样式相关的序列还可以包括透明度序列,透明度序列中包括拼接轨迹线中每个轨迹点对应的透明度。顶点着色器将生成的扩充点、扩充点的标签值以及样式相关的序列传入至片元着色器中。片元着色器中不连续点之间不绘制,即获取至少三个扩充点,在该至少三个扩充点中存在至少两个扩充点对应的轨迹点属于不同的轨迹线的情况下,不将该至少三个扩充点生成扩充点组合,从而该至少三个扩充点构成的几何图形不会被绘制。片元着色器中根据传输的样式相关的序列绘制出各种样本的道路标线。渲染绘制环节中还可以包括透视投影和三维裁剪的过程,渲染绘制环节确定了单帧图像中每个像素点的颜色值,即确定了地图显示屏幕区域中各像素点的颜色值,通过为像素点着色可以显示出各道路标线。

本申请提供的地图道路绘制方法,提升了渲染能力,在同等环境条件的情况下,绘制要素量级由10万扩充到30万,绘制帧率从20提升到了50,体验更流程,由于数据对象更单一,对内存的存储量级也有所降低,从而可以提升GPU和内存空间的利用率。

本申请提供的地图道路绘制方法,可以应用于多种应用场景中,包括但不限于绘制真实世界中的地图例如适用于大出行场景的地图、或虚拟场景中的地图例如游戏场景中的地图。

以制作真实世界中的高精度地图为例,终端可以在浏览器中显示地图阅览区域,并在地图阅览区域中显示预设的地理范围中的道路标线,预设的地理范围可以根据需要设置,预设的地理范围用于确定地图阅览区域中初始显示的地理范围。在制作高精度地图的过程中,通常会调整显示的地理范围,从而在制作高精度地图的过程中,终端接收针对地图阅览区域的地理区域变更操作,响应于地理区域变更操作,基于地理区域变更操作对地图阅览区域中参考点的地理坐标进行更新,得到参考点的更新后地理坐标,根据参考点的更新后地理坐标,并确定在地图阅览区域中需要显示的该高精度地图中地理范围,获取地理范围内多个道路标线的轨迹线,将多个道路标线的轨迹线进行拼接,生成拼接轨迹线,将拼接轨迹线中相邻且属于不同轨迹线的轨迹点的标签值设置为第一标签值,并将拼接轨迹线中剩余的轨迹点的标签值设置为第二标签值,根据拼接轨迹线中每个轨迹点的标签值,生成拼接轨迹线对应的边界信息,在单帧绘制中,根据拼接轨迹线中各轨迹点进行点的扩充,生成各轨迹点分别对应的用于绘制的扩充点,从边界信息中获取拼接轨迹线中每个轨迹点的标签值,按照拼接轨迹线中轨迹点的排列顺序,对各轨迹点分别对应的各扩充点进行排列,生成扩充点序列,从扩充点序列中获取扩充点组合,根据各扩充点组合绘制出高精度地图中该地理范围中的各道路标线,并在地图阅览区域内显示绘制出的高精度地图中的道路标线。本申请提供的地图道路绘制方法,在制作高精度地图过程中,可以在一次渲染绘制过程中一次性绘制出多个道路标线,可以提高制作或编辑真实世界中地图的效率。以制作游戏场景中的虚拟地图为例,终端可以在浏览器中显示地图阅览区域,并在地图阅览区域中显示预设的地理范围中的道路标线,预设的地理范围可以根据需要设置,预设的地理范围用于确定地图阅览区域中初始显示的地理范围。在制作高精度地图的过程中,通常会调整显示的地理范围,从而在制作高精度地图的过程中,终端接收针对地图阅览区域的地理区域变更操作,响应于地理区域变更操作,基于地理区域变更操作对地图阅览区域中参考点的地理坐标进行更新,得到参考点的更新后地理坐标,根据参考点的更新后地理坐标,并确定在地图阅览区域中需要显示的该虚拟地图中地理范围,获取地理范围内多个道路标线的轨迹线,将多个道路标线的轨迹线进行拼接,生成拼接轨迹线,将拼接轨迹线中相邻且属于不同轨迹线的轨迹点的标签值设置为第一标签值,并将拼接轨迹线中剩余的轨迹点的标签值设置为第二标签值,根据拼接轨迹线中每个轨迹点的标签值,生成拼接轨迹线对应的边界信息,在单帧绘制中,根据拼接轨迹线中各轨迹点进行点的扩充,生成各轨迹点分别对应的用于绘制的扩充点,从边界信息中获取拼接轨迹线中每个轨迹点的标签值,按照拼接轨迹线中轨迹点的排列顺序,对各轨迹点分别对应的各扩充点进行排列,生成扩充点序列,从扩充点序列中获取扩充点组合,根据各扩充点组合绘制出虚拟地图中该地理范围中的各道路标线,并在地图阅览区域内显示绘制出的虚拟地图中的道路标线。本申请提供的地图道路绘制方法,可以提高制作或编辑虚拟地图的效率。

在制作地图(例如高精度地图或虚拟地图)的过程中,通常需要对道路标线进行编辑,编辑包括但不限于是删除、添加、调整道路标线中的至少一种操作,在终端已显示出绘制出的地图中的道路标线的情况下,终端可以响应于道路标线编辑操作,根据道路标线编辑操作生成更新数据,通过更新数据对本地存储的路网数据进行更新,更新后,重复步骤:获取地理范围内多个道路标线的轨迹线,到步骤:绘制出地图中该地理范围中的各道路标线,并在地图阅览区域内显示绘制出的地图中的道路标线,从而完成一次新的渲染绘制,实现了对地图阅览区域中地图的刷新。其中,若道路标线编辑操作为删除显示的一个或多个道路标线的操作,则更新数据中包括该需删除的一个或多个道路标线的标识;若道路标线编辑操作为新增道路标线的操作,则更新数据中包括该需新增的道路标线的信息例如位置信息和轨迹点等;若道路标线编辑操作为调整道路标线,例如调整道路标线的位置信息或长度等,则更新数据中包括该道路标线需调整到的位置信息或长度等。终端还可以根据更新数据对服务器存储的路网数据进行更新,终端可以实时的根据更新数据对服务器存储的路网数据进行更新,或者,在地图中的道路标线制作完成后,利用本地缓存的路网数据对服务器中存储的路网数据进行批量的更新。在完成对地图中的道路标线的制作后,且服务器中的路网数据也更新完成后,服务器可以根据更新后的路网数据生成地图的升级数据,并向用户的终端推送升级提示信息,在确定同意升级后,将地图的升级数据发送至用户的终端,以使得用户的终端根据该升级数据对安装的地图进行更新。

应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。

基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的地图道路绘制方法的地图道路绘制装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个地图道路绘制装置实施例中的具体限定可以参见上文中对于地图道路绘制方法的限定,在此不再赘述。

在一些实施例中,如图13所示,提供了一种地图道路绘制装置,包括:轨迹线获取模块1302、轨迹线拼接模块1304、边界信息生成模块1306、扩充点生成模块1308、扩充点组合模块1310和道路标线绘制模块1312,其中:

轨迹线获取模块1302,用于获取地图中多个道路标线的轨迹线,每个轨迹线包括多个轨迹点。

轨迹线拼接模块1304,用于将多个道路标线的轨迹线进行拼接,生成拼接轨迹线。

边界信息生成模块1306,用于生成拼接轨迹线对应的边界信息;边界信息,用于从拼接轨迹线中识别出不同轨迹线的轨迹点。

扩充点生成模块1308,用于根据拼接轨迹线中各轨迹点进行点的扩充,生成各轨迹点分别对应的用于绘制的扩充点。

扩充点组合模块1310,用于根据边界信息从各扩充点中获取多个扩充点组合;扩充点组合包括至少三个扩充点,扩充点组合中扩充点分别对应的轨迹点属于同一轨迹线。

道路标线绘制模块1312,用于根据各扩充点组合绘制出各道路标线。

在一些实施例中,边界信息生成模块1306,还用于:为拼接轨迹线中每个轨迹点生成标签值;拼接轨迹线中相邻且属于不同轨迹线的轨迹点的标签值为第一标签值,拼接轨迹线中剩余的轨迹点的标签值为第二标签值,第一标签值与第二标签值不同;根据拼接轨迹线中每个轨迹点的标签值,生成拼接轨迹线对应的边界信息。

在一些实施例中,扩充点组合模块1310,还用于:从边界信息中获取拼接轨迹线中每个轨迹点的标签值;针对每个轨迹点,将轨迹点的标签值作为轨迹点对应的扩充点的标签值;按照拼接轨迹线中轨迹点的排列顺序,对各轨迹点分别对应的各扩充点进行排列,生成扩充点序列;从扩充点序列中获取多个扩充点组合;扩充点组合包括扩充点序列中连续的至少三个扩充点,扩充点组合中至少一个扩充点的标签值为第二标签值。

在一些实施例中,扩充点组合模块1310,还用于:按照拼接轨迹线中轨迹点的排列顺序,对拼接轨迹线中各轨迹点的标签值进行排列,得到拼接轨迹线对应的边界信息;针对拼接轨迹线中每个轨迹点,从边界信息中确定与轨迹点的排列顺序一致的标签值,得到轨迹点的标签值。

在一些实施例中,扩充点组合模块1310,还用于:从扩充点序列中获取连续的至少三个扩充点;在获取的至少三个扩充点中至少一个扩充点的标签值为第二标签值的情况下,将至少三个扩充点组成扩充点组合;返回按照从前到后的顺序,从扩充点序列中获取连续的至少三个扩充点的步骤,直到遍历扩充点序列,得到多个扩充点组合。

在一些实施例中,扩充点组合模块1310,还用于:在获取的至少三个扩充点的标签值均为第一标签值的情况下,返回按照从前到后的顺序,从扩充点序列中获取连续的至少三个扩充点的步骤。

在一些实施例中,轨迹线拼接模块1304,还用于:根据多个道路标线各自的宽度,确定多个道路标线的轨迹线各自的拼接顺序;按照各轨迹线的拼接顺序对各轨迹线进行拼接,生成拼接轨迹线。

在一些实施例中,轨迹线获取模块1302,还用于:在浏览器中显示地图阅览区域;地图阅览区域用于显示地图中的地图区域;确定在地图阅览区域中需要显示的地图区域的地理范围;获取地理范围内多个道路标线的轨迹线;装置还用于:在地图阅览区域内显示绘制出的各道路标线。

在一些实施例中,轨迹线获取模块1302,还用于:接收针对地图阅览区域的地理区域变更操作;响应于地理区域变更操作,基于地理区域变更操作对地图阅览区域中参考点的地理坐标进行更新,得到参考点的更新后地理坐标;根据参考点的更新后地理坐标,确定地图阅览区域中需要显示的地理区域的地理范围。

在一些实施例中,地图预先划分为多个单位地理范围;轨迹线获取模块1302,还用于:确定与地理范围相交的单位地理范围,得到至少一个目标单位地理范围;获取至少一个目标单位地理范围内各道路标线的轨迹线;从至少一个目标单位地理范围内各道路标线的轨迹线中,获取地理范围内各道路标线的轨迹线。

在一些实施例中,轨迹线获取模块1302,还用于:针对每个目标单位地理范围,从目标单位地理范围中确定与地理范围相重叠的范围,得到重叠范围;从每个目标单位地理范围的路网数据中获取对应的重叠范围内各道路标线的轨迹线,得到地理范围内各道路标线的轨迹线。

在一些实施例中,装置还用于:获取拼接轨迹线中各轨迹点各自的颜色值;根据轨迹点的颜色值确定根据轨迹点生成的扩充点的颜色值;道路标线绘制模块1312,还用于:针对每个扩充点组合,确定扩充点组合中各扩充点连接形成的几何图形;根据各几何图形和各几何图形中各扩充点的颜色值绘制出各道路标线。

上述地图道路绘制装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一些实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图14所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储地图道路绘制方法中所涉及到的数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种地图道路绘制方法。

在一些实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图15所示。该计算机设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种地图道路绘制方法。该计算机设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置。显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图14和图15中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一些实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述地图道路绘制方法中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述地图道路绘制方法中的步骤。

在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述地图道路绘制方法中的步骤。

需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要符合相关规定。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random AccessMemory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random AccessMemory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

相关技术
  • Activiti流程图的重绘制方法、装置、计算机设备及存储介质
  • 视图控件的绘制方法、装置、计算机设备及可读存储介质
  • 用于获得地图的方法、装置、设备和计算机可读存储介质
  • 地图构建方法、装置、计算机设备及存储介质
  • 地图数据显示方法、装置、电子设备及计算机存储介质
  • 电子地图中道路的绘制方法、装置及绘制设备、存储介质
  • 电子地图中道路的绘制方法、装置及绘制设备、存储介质
技术分类

06120116480270