电子地图处理方法、装置和计算机设备与流程

文档序号:16254008发布日期:2018-12-12 00:17阅读:139来源:国知局
电子地图处理方法、装置和计算机设备与流程

本发明涉及数据处理技术,特别是涉及一种电子地图处理方法、装置和计算机设备。

背景技术

随着计算机技术的迅猛发展,各种数据的处理都依赖于计算机的处理,并为用户提供了方便。随着电子地图的兴起和广泛的应用,现在很多电子地图的绘制同样也依赖于计算机的处理。

电子地图的绘制过程中,为了使的电子地图更加真实,需要在电子地图中添加虚拟物体。传统的虚拟物体添加过程中,为了减少虚拟物体相交,需要通过严格的计算才能确定虚拟物体的添加位置,每添加一个虚拟物体都要经过大量的计算,导致需要花费较长时间去计算,降低了虚拟物体的添加效率。



技术实现要素:

基于此,有必要针对在电子地图中添加虚拟物体的添加效率低下的问题,提供一种电子地图处理方法、装置和计算机设备。

一种电子地图处理方法,所述方法包括:

确定三维电子地图中待添加三维虚拟物体的目标地图元素;

获取所述目标地图元素的定位点;

在所述三维电子地图中,生成从天空区指向所述定位点的射线;

沿所述射线的方向,确定所述射线在所述三维电子地图中的交点;

按照所述交点添加与所述目标地图元素匹配的三维虚拟物体。

一种电子地图处理装置,所述装置包括:

元素确定模块,用于确定三维电子地图中待添加三维虚拟物体的目标地图元素;

定位点获取模块,用于获取所述目标地图元素的定位点;

射线生成模块,用于在所述三维电子地图中,生成从天空区指向所述定位点的射线;

交点确定模块,用于沿所述射线的方向,确定所述射线在所述三维电子地图中的交点;

物体添加模块,用于按照所述交点添加与所述目标地图元素匹配的三维虚拟物体。

一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行以下步骤:

确定三维电子地图中待添加三维虚拟物体的目标地图元素;

获取所述目标地图元素的定位点;

在所述三维电子地图中,生成从天空区指向所述定位点的射线;

沿所述射线的方向,确定所述射线在所述三维电子地图中的交点;

按照所述交点添加与所述目标地图元素匹配的三维虚拟物体。

上述电子地图处理方法、装置和计算机设备,确定三维电子地图中待添加三维虚拟物体的目标地图元素,获取目标地图元素的定位点,无需通过严格的计算才能确定三维虚拟物体的添加位置,只需通过在三维电子地图中生成从天空区指向定位点的射线,沿射线的方向确定射线在三维电子地图中的交点,根据交点添加与目标地图元素匹配的三维虚拟物体即可减少添加的三维虚拟物体出现相交的情况。在整个三维虚拟物体的添加过程中,降低了添加三维虚拟物体的计算量,节省了计算所耗费的时间,提高了三维虚拟物体的添加效率。

附图说明

图1为一个实施例中电子地图处理方法的应用环境图;

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

图3为一个实施例中电子地图处理方法的流程示意图;

图4为一个实施例中选取定位点的步骤的流程示意图;

图5为一个实施例中确定线状属性的目标地图元素的边缘线的示意图;

图6为一个实施例中确定多边形属性的目标地图元素的子区域的示意图;

图7为一个实施例中添加三维虚拟物体的三维电子地图的示意图;

图8为一个实施例中根据三维电子地图中的定位点确定射线交点的示意图;

图9为另一个实施例中电子地图处理方法的流程示意图;

图10为一个实施例中电子地图处理装置的结构框图;

图11为一个实施例中定位点获取模块的结构框图;

图12为一个实施例中物体添加模块的结构框图。

具体实施方式

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

图1为一个实施例中电子地图处理方法的应用环境图。参照图1,该电子地图处理方法应用于电子地图处理系统。电子地图处理系统包括终端110和服务器120,其中终端110通过网络与服务器120连接。终端110可以是固定终端或移动终端,固定终端具体可以是台式电脑、显示屏和监控器中的至少一种,移动终端具体可以是平板电脑、智能手机和个人数字助理的至少一种。

图2为一个实施例中计算机设备的内部结构示意图。该计算机设备可以是图1中的终端110。如图2所示,该计算机设备包括通过系统总线连接的处理器、非易失性存储介质、内存储器、网络接口、显示屏和输入设备。其中,计算机设备的非易失性存储介质存储有操作系统和计算机可读指令,该计算机可读指令被执行时,可使得处理器执行一种电子地图处理方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该内存储器执行中存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种电子地图处理方法。计算机设备的网络接口用于进行网络通信。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸屏,也可以是计算机设备外壳上设备的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。触摸层和显示屏构成触控屏。

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

如图3所示,在一个实施例中,提供一种电子地图处理方法。本实施例以该方法应用于上述图1中的终端110来举例说明。该方法具体包括以下步骤:

s302,确定三维电子地图中待添加三维虚拟物体的目标地图元素。

其中,三维虚拟物体为三维电子地图中未包括的,需要另外添加的虚拟物体,比如树木、汽车和小船等。地图元素为三维电子地图中固有的元素,包括草地、湖泊、河流、道路和建筑物等。

具体地,终端110获取三维电子地图的电子地图数据,根据获取到的电子地图数据绘制三维电子地图,将绘制的三维电子地图显示在显示屏中。终端110在显示的三维电子地图中查询待添加三维虚拟物体的地图元素,以查询到的地图元素作为目标地图元素。其中,三维电子地图的电子地图数据可以存储在终端110中,还可以存储在服务器120中。

在一个实施例中,三维电子地图的电子地图数据存储在服务器120中。终端110在检测到三维电子地图的显示指令时,向服务器120发送地图数据获取请求。服务器120根据地图数据获取请求将三维电子地图的电子地图数据发送至终端110。终端110根据接收到服务器120发送的电子地图数据,根据接收到的电子地图数据绘制三维电子地图。

在一个实施例中,终端110获取当前位置信息,获取当前位置信息对应电子地图数据,根据获取到的电子地图数据绘制三维电子地图。

在一个实施例中,终端110根据电子地图数据在三维电子地图中查询符合待添加三维虚拟物体条件的地图元素,以查询到的地图元素为目标地图元素。

在一个实施例中,s302具体包括:获取待添加三维虚拟物体的地图元素类型;按照地图元素类型,从三维电子地图中选取目标地图元素。

具体地,其中待添加三维虚拟物体的地图元素类型为需要添加三维虚拟物体的地图元素所述的类型,例如待添加三维虚拟物体的地图元素类型包括道路、河流、湖泊和建筑物等。终端110识别三维电子地图中地图元素的地图元素类型,获取属于待添加三维虚拟物体的地图元素类型的地图元素,以获取到的地图元素作为目标地图元素。

s304,获取目标地图元素的定位点。

具体地,终端110在三维电子地图中查询到目标地图元素后,在三维电子地图中与目标地图元素匹配区域中确定定位点。

在一个实施例中,终端110获取目标地图元素的元素信息,根据元素信息确定定位点,获取定位点的坐标。

s306,在三维电子地图中,生成从天空区指向定位点的射线。

具体地,终端110在三维电子地图中,从天空区中选取高度高于定位点的一点作为射线的起点,生成指向定位点的射线。其中,终端110在空中可以是随机选取高度高于定位点的射线起点,也可以根据定位点的坐标选取匹配、且高度高于定位点的射线起点,还可以是从无限高处的一点向定位点引出射线。

在一个实施例中,终端110在三维电子地图中,根据定位点的坐标确定映射到天空区的坐标点,以确定的坐标点作为射线的起点,向定位点引出射线。其中引出的射线可以与地面垂直或近似垂直。

在另一个实施例中,定位点的坐标三维坐标,终端110将定为点的三维坐标中表示高度的坐标值修改为三维电子地图中的最大高度值或大于三维电子地图中的最大高度值,以修改后的三维坐标对应的点作为射线的起点,向定位点引出垂直于地面的射线。

举例说明,若定位点的坐标为(x,y,h),h用于表示定位点的高度,若定位点处于建筑物顶部,h可以是建筑物的高度,若点位点处于地面上h的取值为0。终端110获取定位点的坐标(x,y,h),获取三维电子地图中的最大高度值maxh,以坐标为(x,y,maxh)的点为射线的起点,向定位点(x,y,h)引出射线。

s308,沿射线的方向,确定射线在三维电子地图中的交点。

具体地,终端110沿射线的方向,确定射线于三维电子地图中的地图元素或三维虚拟物体的交点。

在一个实施例中,终端110可沿射线的方向,确定射线在三维电子地图中的首个交点。

s310,按照交点添加与目标地图元素匹配的三维虚拟物体。

具体地,终端110确定目标地图元素匹配的三维虚拟物体类型,获取与确定的三维虚拟物体类型对应的资源数据文件,根据获取到的资源数据文件构建三维虚拟物体,将构建的三维虚拟物体添加到确定的交点的位置。其中,终端110以确定的交点作为三维虚拟物体底部面的中点或任意一点,将三维虚拟物体放置在交点的位置。

在一个实施例中,s310具体还包括:在交点对应的地图空余空间中,添加与目标地图元素的地图元素类型匹配的三维虚拟物体。

具体地,终端110查询与目标地图元素的地图元素类型匹配的三维虚拟物体,获取三维虚拟物体所占空间的尺寸信息。终端110根据所占空间的尺寸信息在交点所在位置确定空余空间,将查询到的三维虚拟物体添加到确定的空余空间中。

本实施例中,确定三维电子地图中待添加三维虚拟物体的目标地图元素,获取目标地图元素的定位点,无需通过严格的计算才能确定三维虚拟物体的添加位置,只需通过在三维电子地图中生成从天空区指向定位点的射线,沿射线的方向确定射线在三维电子地图中的交点,根据交点添加与目标地图元素匹配的三维虚拟物体即可减少添加的三维虚拟物体出现相交的情况。在整个三维虚拟物体的添加过程中,降低了添加三维虚拟物体的计算量,节省了计算所耗费的时间,提高了三维虚拟物体的添加效率。

如图4所示,在一个实施例中,s304具体包括选取定位点的步骤,该步骤具体包括以下内容:

s402,获取目标地图元素的几何属性。

具体地,在三维电子地图中的地图元素,每个地图元素都有各自所属的几何属性。三维电子地图中的地图元素的几何属性包括点状属性、线状属性和多边形属性。

举例说明,在三维电子地图中,点状属性的地图元素包括公交车站点、自动取款机和自动售货机等;线状属性的地图元素包括道路、河流、桥梁和隧道等;多边形属性的地图元素包括建筑物、湖泊、海洋和草地等。

s404,确定获取的几何属性所对应的定位点选取方式。

具体地,终端110中存储着每种几何属性对应的定位点选取方式。终端110确定目标地图元素的几何属性,获取确定的几何属性对应的定位点选取方式。

s406,按照定位点选取方式选取目标地图元素的定位点。

具体地,终端110获取到目标地图元素的几何属性,当获取到的几何属性为点状属性时,将目标地图元素所在点作为目标地图元素的定位点,获取定位点的坐标。目标地图元素的几何属性为点状属性时,则存储的目标地图元素的位置信息为点信息。当获取到的几何属性为线状属性时,终端110确定目标地图元素的边缘线,在边缘线上选取目标地图元素的定位点。当获取到的几何属性为多边形属性时,确定目标地图元素的多边形区域,在多边形区域中选取包含于多边形区域的子区域,在选取的子区域中选取目标地图元素的定位点。

在一个实施例中,当目标地图元素的几何属性为线状属性时,获取目标地图元素的宽度;根据宽度生成大于宽度的一半的第一偏移距离;分别向目标地图元素的中线两侧偏移第一偏移距离,形成目标地图元素的两条边缘线。

其中,在三维电子地图中以目标地图元素中的中线信息和宽度表示目标地图元素,中线信息包括至少一条线段的端点坐标,其中每条线段对应的宽度可能不同。

请参照图5,图5为确定几何属性为线状属性的目标地图元素的边缘线的示意图。其中,目标地图元素的几何属性为线状属性,502a和502b为目标地图元素的两边,504为目标地图元素的中线,506a和506b为目标地图元素的边缘线。

终端110获取目标地图元素的宽度或预设距离,用d表示宽度,用l表示预设距离,则以s表示第一偏移距离,根据s=d/2+l计算得到第一偏移距离。终端110确定目标地图元素的中线,将中线以分别垂直于目标地图元素的两边502a和502b的方向向两侧移动,移动的距离为第一偏移距离s,分别得到边缘线506a和506b。其中,中线可以有至少一条线段构成,每条线段对应的宽度可以不同。终端110在分别在边缘线上按预设定位间距选取定位点。

在一个实施例中,当几何属性为多边形属性时,确定目标地图元素的多边形区域;获取第二偏移距离;将多边形区域各边分别向多边形的内侧偏移第二偏移距离,形成包含于多边形区域的子区域;在子区域中选取目标地图元素的定位点。

请参照图6,图6为确定几何属性为多边形属性的目标地图元素的子区域的示意图。图6中包括目标地图元素的多边形区域602和包含于多边形区域的子区域604,以k表示第二偏移距离。当目标地图元素的几何属性为多边形属性时,存储的目标地图元素的信息为多边形的边信息。终端110获取目标地图元素的边信息,根据边信息确定目标地图元素的多边形区域的各边,从而确定多边形区域。终端110获取第二偏移距离k,将确定的多边性区域的各边向多边形内测偏移第二偏移距离k,确定相邻两条边的交点,按顺序将交点进行连接构成的包含于多边形区域的子区域。终端110在子区域中选取定位点。其中k小于多边形区域的中点到各边距离中的最短距离。

本实施例中,根据目标地图元素的几何属性,选取合适的定位点选取方式,采用合适的定位点选取方式选取目标地图元素的定位点,避免错误选取定位点,提高了目标地图元素的定位点的选取准确率。

在一个实施例中,s310具体包括调整添加的三维虚拟物体的位置的步骤,该步骤具体包括以下内容:在交点处添加与目标地图元素匹配的、且具有碰撞触发器的三维虚拟物体;当碰撞触发器触发时,调整添加的三维虚拟物体的位置,直至碰撞触发器停止触发时停止调整添加的三维虚拟物体的位置。

具体地,终端110查询与目标地图元素匹配的、且具有碰撞触发器的三维虚拟物体。碰撞触发器用于检测三维虚拟物体是否与三维电子地图中障碍物发生重叠的情况;当碰撞触发器触发时,表示三维虚拟物体与障碍物存在重叠的情况;当碰撞触发器未触发时,表示三维虚拟物体与障碍物不存在重叠的情况。

终端110将查询到的三维虚拟物体添加在交点处之后,当碰撞触发器触发时,对添加的三维虚拟物体的位置进行调整,直至碰撞触发器停止触发时,停止调整添加的三维虚拟物体的位置。

在一个实施例中,当碰撞触发器触发时,调整添加的三维虚拟物体的位置,直至碰撞触发器停止触发时停止调整添加的三维虚拟物体的位置,包括:当碰撞触发器被第一障碍物触发时,向背离第一障碍物的方向调整添加的三维虚拟物体的位置;调整添加的三维虚拟物体的位置时,若碰撞触发器被第二障碍物触发,则放弃添加的三维虚拟物体;调整添加的三维虚拟物体的位置时,若碰撞触发器停止触发,则停止调整添加的三维虚拟物体的位置。

具体地,终端110在将三维虚拟物体添加在交点处后,当添加的三维虚拟物体的碰撞触发器被第一障碍物触发时,将添加的三维虚拟物体向背离第一障碍物的方向调整,在调整添加的三维虚拟物体的位置的过程中,若碰撞触发器被第二障碍物触发,丢弃添加的三维虚拟物体,放弃添加三维虚拟物体;若在调整添加的三维虚拟物体的位置的过程中,若碰撞触发器停止触发,则停止调整添加的三维虚拟物体的位置,将添加的三维虚拟物体添加在当前位置。其中,障碍物可以是三维虚拟物体或地图元素。

本实施例中,通过三维虚拟物体中的碰撞触发器,可以检测到三维虚拟物体的添加过程中是否与三维电子地图中的障碍物存在相交的情况,在检测到添加的三维虚拟物体与三维电子地图中的障碍物存在相交时,调整添加的三维虚拟物体的位置,从而避免在添加的三维虚拟物体与障碍物存在相交的情况,提高了在三维电子地图中添加三维虚拟物体的准确性。

图7为一个实施例中添加三维虚拟物体的三维电子地图的示意图。如图7所示,三维电子地图700中的地图元素包括建筑物702、道路704和湖泊706,其中的添加的三维虚拟物体为树708和小船710。

终端110在三维电子地图700中确定待添加三维虚拟物体的目标地图元素为道路704和湖泊706,识别道路704和湖泊706的几何属性。对于道路704,道路704的几何属性为线状属性,终端110在三维电子地图中确定道路704的两侧的边缘线,在边缘线上选取定位点;对于湖泊706,湖泊706的几何属性为多边形属性,终端110在多边形区域中确定子区域,在子区域中选取定位点。终端110以选取的定位点映射到天空区的点作为射线的起点,指向定位点引出垂直于地面的射线,沿射线方向在射线上选取射线在三维电子地图700中的首个交点,以选取的交点作为三维虚拟物体的添加位置。终端110查询到与道路704匹配的三维虚拟物体为树708,将树708添加到根据道路704选取的交点对应的位置。终端110查询到与湖泊706匹配的三维虚拟物体为小船710,将小船710添加到根据湖泊706选取的交点对应的位置。

图8为一个实施例中根据三维电子地图中的定位点确定射线交点的示意图。如图8所示,终端110在三维电子地图800中确定了定位点802和定位点804,在这两个定位点所处位置需要添加三维虚拟物体。定位点802在建筑物818的顶部,以h1表示建筑物818在三维电子地图800中离地面的高度,以(x1,y1,h1)表示定位点802。其中,建筑物818顶部放置有障碍物816。定位点804在三维电子地图800中的地面处,以(x2,y2,0)表示定位点804。以maxh表示三维电子地图800中的天空区的无限高度。

对于定位点802,以(x1,y1,maxh)作为射线的起点,向定位点802引出垂直于三维电子地图800中地面的射线812,沿射线812的方向,选取射线812上的首个交点808,交点808处为添加三维虚拟物体的位置。

对于定位点804,以(x2,y2,maxh)作为射线的起点,向定位点804引出垂直于三维电子地图中800中地面的射线814,沿射线814的方向,选取射线814上的首个交点。其中,因为定位点804处于地面,且定位点804处没有障碍物阻碍射线814,则选取的交点可以与定位点804重合。

如图9所示,在一个实施例中,提供一种电子地图处理方法,该方法具体包括以下步骤:

s902,确定三维电子地图中待添加三维虚拟物体的目标地图元素。

s904,获取目标地图元素的几何属性。

s906,当几何属性为线状属性时,确定目标地图元素的边缘线;在边缘线上选取目标地图元素的定位点。

s908,当几何属性为点状属性时,将目标地图元素所在点作为目标地图元素的定位点。

s910,当几何属性为多边形属性时,确定目标地图元素的多边形区域;选取包含于多边形区域的子区域;在子区域中选取目标地图元素的定位点。

s912,在三维电子地图中,生成从天空区指向定位点的射线。

s914,沿射线的方向,确定射线在三维电子地图中的交点。

s916,在交点处添加与目标地图元素匹配的、且具有碰撞触发器的三维虚拟物体。

s918,当碰撞触发器触发时,调整添加的三维虚拟物体的位置,直至碰撞触发器停止触发时停止调整添加的三维虚拟物体的位置。

本实施例中,在确定三维电子地图中待添加三维虚拟物体的目标地图元素后,根据目标地图元素的几何属性,采取相应的定位点确定方式确定定位点,以提高定位点的确定准确率。通过从天空区引出指向定位点的射线,沿射线的方向确定射线在三维电子地图中的交点,按照交点添加与目标地图元素匹配的三维虚拟物体,减少了在添加三维虚拟物体时出现相交的情况。在碰撞触发器触发时,调整添加的三维虚拟物体的位置,进一步避免了添加三维虚拟物体出现相交的情况,提高了添加三维虚拟物体的添加准确率。

如图10所示,在一个实施例中,提供一种电子地图处理装置1000,该装置具体包括:元素确定模块1002、定位点获取模块1004、射线生成模块1006、交点确定模块1008和物体添加模块1010。

元素确定模1002,用于确定三维电子地图中待添加三维虚拟物体的目标地图元素。

定位点获取模块1004,用于获取目标地图元素的定位点。

射线生成模块1006,用于在三维电子地图中,生成从天空区指向定位点的射线。

交点确定模块1008,用于沿射线的方向,确定射线在三维电子地图中的交点。

物体添加模块1010,用于按照交点添加与目标地图元素匹配的三维虚拟物体。

在一个实施例中,元素确定模块1002还用于获取待添加三维虚拟物体的地图元素类型;按照地图元素类型,从三维电子地图中选取目标地图元素。

物体添加模块1010还用于在交点对应的地图空余空间中,添加与目标地图元素的地图元素类型匹配的三维虚拟物体。

本实施例中,确定三维电子地图中待添加三维虚拟物体的目标地图元素,获取目标地图元素的定位点,无需通过严格的计算才能确定三维虚拟物体的添加位置,只需通过在三维电子地图中生成从天空区指向定位点的射线,沿射线的方向确定射线在三维电子地图中的交点,根据交点添加与目标地图元素匹配的三维虚拟物体即可减少添加的三维虚拟物体出现相交的情况。在整个三维虚拟物体的添加过程中,降低了添加三维虚拟物体的计算量,节省了计算所耗费的时间,提高了三维虚拟物体的添加效率。

如图10所示,在一个实施例中,定位点获取模块1004具体包括:几何属性获取模块1004a、选取方式确定模块1004b和定位点选取模块1004c。

几何属性获取模块1004a,用于获取目标地图元素的几何属性。

选取方式确定模块1004b,用于确定获取的几何属性所对应的定位点选取方式。

定位点选取模块1004c,用于按照定位点选取方式选取目标地图元素的定位点。

在一个实施例中,定位点选取模块1004c还用于当几何属性为点状属性时,将目标地图元素所在点作为目标地图元素的定位点。

在一个实施例中,定位点选取模块1004c还用于当几何属性为线状属性时,确定目标地图元素的边缘线;在边缘线上选取目标地图元素的定位点。

在一个实施例中,定位点选取模块1004c还用于获取目标地图元素的宽度;根据宽度生成大于宽度的一半的第一偏移距离;分别向目标地图元素的中线两侧偏移第一偏移距离,形成目标地图元素的两条边缘线。

在一个实施例中,定位点选取模块1004c还用于当几何属性为多边形属性时,确定目标地图元素的多边形区域;选取包含于多边形区域的子区域;在子区域中选取目标地图元素的定位点。

在一个实施例中,定位点选取模块1004c还用于获取第二偏移距离;将多边形区域各边分别向多边形的内侧偏移第二偏移距离,形成包含于多边形区域的子区域。

本实施例中,根据目标地图元素的几何属性,选取合适的定位点选取方式,采用合适的定位点选取方式选取目标地图元素的定位点,避免错误选取定位点,提高了目标地图元素的定位点的选取准确率。

如图10所示,在一个实施例中,物体添加模块1010具体还包括:虚拟物体添加模块1010a和添加位置调整模块1010b。

虚拟物体添加模块1010a,用于在交点处添加与目标地图元素匹配的、且具有碰撞触发器的三维虚拟物体。

添加位置调整模块1010b,用于当碰撞触发器触发时,调整添加的三维虚拟物体的位置,直至碰撞触发器停止触发时停止调整添加的三维虚拟物体的位置。

在一个实施例中,添加位置调整模块1010b还用于当碰撞触发器被第一障碍物触发时,向背离第一障碍物的方向调整添加的三维虚拟物体的位置;调整添加的三维虚拟物体的位置时,若碰撞触发器被第二障碍物触发,则放弃添加的三维虚拟物体;调整添加的三维虚拟物体的位置时,若碰撞触发器停止触发,则停止调整添加的三维虚拟物体的位置。

本实施例中,通过三维虚拟物体中的碰撞触发器,可以检测到三维虚拟物体的添加过程中是否与三维电子地图中的障碍物存在相交的情况,在检测到添加的三维虚拟物体与三维电子地图中的障碍物存在相交时,调整添加的三维虚拟物体的位置,从而避免在添加的三维虚拟物体与障碍物存在相交的情况,提高了在三维电子地图中添加三维虚拟物体的准确性。

在一个实施例中,提供一种计算机设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行以下步骤:确定三维电子地图中待添加三维虚拟物体的目标地图元素;获取目标地图元素的定位点;在三维电子地图中,生成从天空区指向定位点的射线;沿射线的方向,确定射线在三维电子地图中的交点;按照交点添加与目标地图元素匹配的三维虚拟物体。

在一个实施例中,确定三维电子地图中待添加三维虚拟物体的目标地图元素包括:获取待添加三维虚拟物体的地图元素类型;按照地图元素类型,从三维电子地图中选取目标地图元素;按照交点添加与目标地图元素匹配的三维虚拟物体,包括:在交点对应的地图空余空间中,添加与目标地图元素的地图元素类型匹配的三维虚拟物体。

在一个实施例中,获取目标地图元素的定位点包括:获取目标地图元素的几何属性;确定获取的几何属性所对应的定位点选取方式;按照定位点选取方式选取目标地图元素的定位点。

在一个实施例中,按照定位点选取方式选取目标地图元素的定位点,包括:当几何属性为点状属性时,将目标地图元素所在点作为目标地图元素的定位点。

在一个实施例中,按照定位点选取方式选取目标地图元素的定位点,包括:当几何属性为线状属性时,确定目标地图元素的边缘线;在边缘线上选取目标地图元素的定位点。

在一个实施例中,确定目标地图元素的边缘线,包括:获取目标地图元素的宽度;根据宽度生成大于宽度的一半的第一偏移距离;分别向目标地图元素的中线两侧偏移第一偏移距离,形成目标地图元素的两条边缘线。

在一个实施例中,按照定位点选取方式选取目标地图元素的定位点,包括:当几何属性为多边形属性时,确定目标地图元素的多边形区域;选取包含于多边形区域的子区域;在子区域中选取目标地图元素的定位点。

在一个实施例中,选取包含于多边形区域的子区域,包括:获取第二偏移距离;将多边形区域各边分别向多边形的内侧偏移第二偏移距离,形成包含于多边形区域的子区域。

在一个实施例中,按照交点添加与目标地图元素匹配的三维虚拟物体,包括:在交点处添加与目标地图元素匹配的、且具有碰撞触发器的三维虚拟物体;当碰撞触发器触发时,调整添加的三维虚拟物体的位置,直至碰撞触发器停止触发时停止调整添加的三维虚拟物体的位置。

在一个实施例中,当碰撞触发器触发时,调整添加的三维虚拟物体的位置,直至碰撞触发器停止触发时停止调整添加的三维虚拟物体的位置,包括:当碰撞触发器被第一障碍物触发时,向背离第一障碍物的方向调整添加的三维虚拟物体的位置;调整添加的三维虚拟物体的位置时,若碰撞触发器被第二障碍物触发,则放弃添加的三维虚拟物体;调整添加的三维虚拟物体的位置时,若碰撞触发器停止触发,则停止调整添加的三维虚拟物体的位置。

本实施例中,确定三维电子地图中待添加三维虚拟物体的目标地图元素,获取目标地图元素的定位点,无需通过严格的计算才能确定三维虚拟物体的添加位置,只需通过在三维电子地图中生成从天空区指向定位点的射线,沿射线的方向确定射线在三维电子地图中的交点,根据交点添加与目标地图元素匹配的三维虚拟物体即可减少添加的三维虚拟物体出现相交的情况。在整个三维虚拟物体的添加过程中,降低了添加三维虚拟物体的计算量,节省了计算所耗费的时间,提高了三维虚拟物体的添加效率。

在一个实施例中,提供一种计算机可读存储介质,其上存储有计算机可读指令,该计算机可读指令被处理器执行时实现以下步骤:确定三维电子地图中待添加三维虚拟物体的目标地图元素;获取目标地图元素的定位点;在三维电子地图中,生成从天空区指向定位点的射线;沿射线的方向,确定射线在三维电子地图中的交点;按照交点添加与目标地图元素匹配的三维虚拟物体。

在一个实施例中,确定三维电子地图中待添加三维虚拟物体的目标地图元素包括:获取待添加三维虚拟物体的地图元素类型;按照地图元素类型,从三维电子地图中选取目标地图元素;按照交点添加与目标地图元素匹配的三维虚拟物体,包括:在交点对应的地图空余空间中,添加与目标地图元素的地图元素类型匹配的三维虚拟物体。

在一个实施例中,获取目标地图元素的定位点包括:获取目标地图元素的几何属性;确定获取的几何属性所对应的定位点选取方式;按照定位点选取方式选取目标地图元素的定位点。

在一个实施例中,按照定位点选取方式选取目标地图元素的定位点,包括:当几何属性为点状属性时,将目标地图元素所在点作为目标地图元素的定位点。

在一个实施例中,按照定位点选取方式选取目标地图元素的定位点,包括:当几何属性为线状属性时,确定目标地图元素的边缘线;在边缘线上选取目标地图元素的定位点。

在一个实施例中,确定目标地图元素的边缘线,包括:获取目标地图元素的宽度;根据宽度生成大于宽度的一半的第一偏移距离;分别向目标地图元素的中线两侧偏移第一偏移距离,形成目标地图元素的两条边缘线。

在一个实施例中,按照定位点选取方式选取目标地图元素的定位点,包括:当几何属性为多边形属性时,确定目标地图元素的多边形区域;选取包含于多边形区域的子区域;在子区域中选取目标地图元素的定位点。

在一个实施例中,选取包含于多边形区域的子区域,包括:获取第二偏移距离;将多边形区域各边分别向多边形的内侧偏移第二偏移距离,形成包含于多边形区域的子区域。

在一个实施例中,按照交点添加与目标地图元素匹配的三维虚拟物体,包括:在交点处添加与目标地图元素匹配的、且具有碰撞触发器的三维虚拟物体;当碰撞触发器触发时,调整添加的三维虚拟物体的位置,直至碰撞触发器停止触发时停止调整添加的三维虚拟物体的位置。

在一个实施例中,当碰撞触发器触发时,调整添加的三维虚拟物体的位置,直至碰撞触发器停止触发时停止调整添加的三维虚拟物体的位置,包括:当碰撞触发器被第一障碍物触发时,向背离第一障碍物的方向调整添加的三维虚拟物体的位置;调整添加的三维虚拟物体的位置时,若碰撞触发器被第二障碍物触发,则放弃添加的三维虚拟物体;调整添加的三维虚拟物体的位置时,若碰撞触发器停止触发,则停止调整添加的三维虚拟物体的位置。

本实施例中,确定三维电子地图中待添加三维虚拟物体的目标地图元素,获取目标地图元素的定位点,无需通过严格的计算才能确定三维虚拟物体的添加位置,只需通过在三维电子地图中生成从天空区指向定位点的射线,沿射线的方向确定射线在三维电子地图中的交点,根据交点添加与目标地图元素匹配的三维虚拟物体即可减少添加的三维虚拟物体出现相交的情况。在整个三维虚拟物体的添加过程中,降低了添加三维虚拟物体的计算量,节省了计算所耗费的时间,提高了三维虚拟物体的添加效率。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)等非易失性存储介质,或随机存储记忆体(randomaccessmemory,ram)等。

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

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

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