CN114283247A - 渲染方法、装置和云服务 - Google Patents
渲染方法、装置和云服务 Download PDFInfo
- Publication number
- CN114283247A CN114283247A CN202010985181.3A CN202010985181A CN114283247A CN 114283247 A CN114283247 A CN 114283247A CN 202010985181 A CN202010985181 A CN 202010985181A CN 114283247 A CN114283247 A CN 114283247A
- Authority
- CN
- China
- Prior art keywords
- map
- data
- vector
- rendering
- line
- 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.)
- Pending
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本公开公开了渲染方法、装置和云服务。所述渲染方法包括:客户端向服务器请求地图渲染数据;客户端接收服务器根据请求返回的地图要素的矢量地图渲染数据;客户端根据地图要素的矢量表达形式,将地图要素的矢量地图渲染数据转换为三角网格数据,基于三角网格数据渲染地图要素。减小了客户端的计算量,降低了对客户端的性能要求;同时使得矢量图渲染算法的更新便捷高效,提升了用户感受度。
Description
技术领域
本公开涉及图像渲染和地图数据技术领域,特别涉及渲染方法、装置和云服务。
背景技术
栅格图是指无数个像素组成的位图图像,以矩阵形式排列,每个像素表示最小的单元点,图像放大会模糊;矢量图指基于贝赛尔曲线绘制的图像,可无限放大,清晰度不变。
以矢量电子地图渲染为例,本申请发明人发现,现有技术矢量电子地图的渲染通常是云端服务器下发地图数据至终端,由终端根据需要渲染成的效果基于相应的地图数据建模后渲染出矢量地图,比如,参见图6所示,地图渲染中需要将道路路口处渲染出包含路面、各道路连接情况和路口处的转向箭头等的效果,为实现该效果,终端需要根据地图数据创建路口三维模型后进行渲染。这种方式导致大量处理工作在客户端完成,对客户端的算力要求高,即,对客户端的硬件性能要求高。
发明内容
鉴于上述问题,提出了本公开以便提供一种克服上述问题或者至少部分地解决上述问题的渲染方法、装置和云服务。
第一方面,本公开实施例提供一种渲染方法,包括:
客户端向服务器请求地图渲染数据;
客户端接收所述服务器根据请求返回的地图要素的矢量地图渲染数据;
客户端根据所述地图要素的矢量表达形式,将所述地图要素的矢量地图渲染数据转换为三角网格数据,基于所述三角网格数据渲染所述地图要素。
在一些可选的实施例中,所述根据所述地图要素的矢量表达形式,将所述地图要素的矢量地图渲染数据转换为三角网格数据,具体包括:
若地图要素的矢量表达形式为线,则将所述地图要素的矢量地图渲染数据转换为三角网格数据;
若地图要素的矢量表达形式为矩形,则将所述地图要素的矢量地图渲染数据转换为三角网格数据;
若地图要素的矢量表达形式为三角网格,则从所述地图要素的矢量地图渲染数据中解析出三角网格数据。
在一些可选的实施例中,若地图要素的矢量表达形式为线,所述地图要素的矢量地图渲染数据包括特征点数据及特征点对应的第一侧的第一宽度和第二侧的第二宽度,所述特征点的连线平行于所述地图要素,所述第一宽度和第二宽度之和与所述地图要素的宽度匹配,所述将所述地图要素的矢量地图渲染数据转换为三角网格数据,具体包括:
根据所述第一宽度和第二宽度,分别确定各特征点的第一侧扩展点和第二侧扩展点;
连接两两相邻的第一侧扩展点、两两相邻的第二侧扩展点和同一特征点的第一侧扩展点与第二侧扩展点,形成多个四边形,按设定规则连接每个四边形的两个非相邻顶点,得到所述地图要素的三角网格数据。
在一些可选的实施例中,所述根据所述第一宽度和第二宽度,分别确定各特征点的第一侧扩展点和第二侧扩展点,具体包括:
针对首端或尾端的特征点,确定经过所述特征点,且与所述特征点和所述特征点的相邻特征点的连线垂直的第一扩展线,在第一扩展线上分别确定在所述特征点的第一侧且与所述特征点间的距离为第一宽度的点为所述特征点的第一侧扩展点,在所述特征点的第二侧且与所述特征点间的距离为第二宽度的点为所述特征点的第二侧扩展点;
针对中间特征点,确定所述中间特征点分别与相邻特征点的连线的夹角平分线,将所述夹角平分线所在的线确定为第二扩展线,在第二扩展线上分别确定在所述中间特征点的第一侧且与所述中间特征点间的距离为第一宽度的点为所述中间特征点的第一侧扩展点,在所述中间特征点的第二侧且与所述中间特征点间的距离为第二宽度的点为所述中间特征点的第二侧扩展点。
在一些可选的实施例中,若地图要素的矢量表达形式为矩形,所述地图要素的矢量地图渲染数据包括所述地图要素的两个非相邻顶点的第一顶点数据,所述将所述地图要素的矢量地图渲染数据转换为三角网格数据,具体包括:
根据所述第一顶点数据,确定所述地图要素的其他两个顶点的第二顶点数据;
根据所述第一顶点数据和第二顶点数据,按照预设的对角线原则,确定所述地图要素的两组三角网格数据。
第二方面,本公开实施例提供一种渲染方法,包括:
服务器根据地图要素的类型,获得矢量表达形式与所述类型匹配的所述地图要素的矢量地图渲染数据;
基于客户端的地图渲染数据获取请求,向客户端提供所述地图要素的矢量地图渲染数据。
在一些可选的实施例中,所述根据地图要素的类型,获得矢量表达形式与所述类型匹配的所述地图要素的矢量地图渲染数据,具体包括:
若确定地图要素的类型为线要素,根据地图数据获得所述地图要素的矢量表达形式为线的矢量地图渲染数据;
若确定地图要素的类型为矩形要素,根据地图数据获得所述地图要素的矢量表达形式为矩形的矢量地图渲染数据;
若确定地图要素的类型为面要素,根据地图数据获得所述地图要素的矢量表达形式为三角网格的矢量地图渲染数据。
在一些可选的实施例中,所述若确定地图要素的类型为线要素,根据地图数据获得所述地图要素的矢量表达形式为线的矢量地图渲染数据,具体包括:
确定地图要素中道路的车道线的类型为线要素;
根据地图数据包括的道路的位置信息、道路的宽度、道路的车道数和道路的单双向,获得所述道路的车道线的矢量表达形式为线的矢量地图渲染数据,所述矢量地图渲染数据包括所述车道线的特征点数据,和所述特征点对应的第一侧的第一宽度和第二侧的第二宽度,所述特征点的连线平行于所述车道线,所述第一宽度和第二宽度之和与所述车道线的宽度匹配。
在一些可选的实施例中,所述矢量地图渲染数据还包括车道线的下述任一项纹理信息:
黄色实线,黄色虚线,黄色双实线,黄色且第一侧为实线第二侧为虚线,白色实线,白色虚线,白色双实线,白色且第一侧为实线第二侧为虚线。
在一些可选的实施例中,所述若确定地图要素的类型为矩形要素,根据地图数据获得所述地图要素的矢量表达形式为矩形的矢量地图渲染数据,具体包括:
确定地图要素中道路的斑马线和/或路口转向箭头的类型为矩形要素;
根据地图数据中斑马线的位置信息和道路宽度,获得每条斑马线的矢量表达形式为矩形的矢量地图渲染数据;和/或,根据地图数据中路口转向箭头的位置信息和指向信息,获得所述路口转向箭头的矢量表达形式为矩形的矢量地图渲染数据。
在一些可选的实施例中,所述若确定地图要素的类型为面要素,根据地图数据获得所述地图要素的矢量表达形式为三角网格的矢量地图渲染数据,具体包括:
确定地图要素中的道路路面的类型为面要素;
根据地图数据中道路的位置信息、道路宽度和道路之间的连通关系,建立所述道路的路面的矢量表达形式为三角网格的矢量地图渲染数据。
第三方面,本公开实施例提供一种渲染方法,包括:
客户端向服务器请求图像渲染数据;
客户端接收所述服务器根据请求返回的图像要素的矢量图渲染数据;
客户端根据所述图像要素的矢量表达形式,将所述图像要素的矢量图渲染数据转换为三角网格数据,基于所述三角网格数据渲染所述图像要素。
第四方面,本公开实施例提供一种渲染方法,包括:
服务器根据图像要素的类型,获得矢量表达形式与所述类型匹配的所述图像要素的矢量地图渲染数据;
基于客户端的图像渲染数据获取请求,向客户端提供所述图像要素的矢量地图渲染数据。
第五方面,本公开实施例提供一种渲染装置,包括:
发送模块,用于向服务器请求地图渲染数据;
接收模块,用于接收所述服务器根据请求返回的地图要素的矢量地图渲染数据;
渲染模块,用于根据所述地图要素的矢量表达形式,将所述地图要素的矢量地图渲染数据转换为三角网格数据,基于所述三角网格数据渲染所述地图要素。
第六方面,本公开实施例提供一种渲染装置,包括:
获取模块,用于根据地图要素的类型,获得矢量表达形式与所述类型匹配的所述地图要素的矢量地图渲染数据;
发送模块,用于基于客户端的地图渲染数据获取请求,向客户端提供所述地图要素的矢量地图渲染数据。
第七方面,本公开实施例提供一种渲染系统,包括服务器和至少一个客户端;
所述服务器设置有上述第六方面所述的渲染装置,所述客户端设置有上述第五方面所述的渲染装置。
第八方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机指令,当该指令被处理器执行时实现上述渲染方法。
第八方面,本公开实施例提供一种云服务,所述云服务运行时执行上述第二方面和第四方面任一项所述的渲染方法。
本公开实施例提供的上述技术方案的有益效果至少包括:
(1)本公开实施例提供的渲染方法,客户端向服务器发送地图渲染数据获取请求;客户端接收服务器根据请求返回的地图要素的矢量地图渲染数据;客户端根据地图要素的矢量表达形式,将地图要素的矢量地图渲染数据转换为三角网格数据,基于三角网格数据渲染地图要素。客户端接收的不是服务器根据请求得到的地图数据,而是服务器根据地图数据进一步确定的地图要素的矢量地图渲染数据,客户端从矢量图数据中解析出三角网格数据后可以直接进行矢量图的渲染,矢量地图渲染数据的计算工作在服务器端执行,减小了客户端的计算量,降低了对客户端的性能要求。
(2)若矢量地图渲染数据的计算,即路网模型建立过程中的扩路算法都放在客户端执行,当渲染出的矢量图存在问题时,比如路型不好看,道路互相压盖等,需要更新算法并随客户端版本的发布来发布才可以解决;而本公开实施例提供的渲染方法,扩路算法由服务器来执行,可以直接在服务器端解决算法问题,可以使得包含了新算法的版本快速上线,提升用户体验。
本公开的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本公开而了解。本公开的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
附图用来提供对本公开的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开,并不构成对本公开的限制。在附图中:
图1为本公开实施例一中渲染方法的流程图;
图2为本公开实施例二中渲染方法的流程图;
图3为本公开实施例三中矢量地图渲染数据转换方法的具体实现流程图;
图4为本公开实施例三中矢量表达形式由线转换为三角网格的示例图;
图5为本公开实施例四中道路矢量图渲染方法的具体实现流程图;
图6为本公开实施例四中道路矢量图的示例图;
图7为本公开实施例中渲染装置的结构示意图;
图8为本公开实施例中另一渲染装置的结构示意图;
图9为本公开实施例中渲染系统的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为了解决现有技术中存在的道路矢量图的渲染过程中客户端的计算负担重且算法更新困难的问题,本公开实施例提供渲染方法、装置和云服务,减小了客户端的计算量,同时使得算法的更新便捷高效。
实施例一
本公开实施例一提供一种渲染方法,由执行地图要素矢量渲染的客户端执行,其流程如图1所示,包括如下步骤:
步骤S11:客户端向服务器请求地图渲染数据。
具体的,上述地图渲染数据获取请求用于服务器确定地图数据。例如,数据获取请求可以是包括待渲染为矢量图的地图范围信息,也可以是包括待渲染为矢量图的道路的标识和/或道路范围信息。
服务器根据请求首先获取的地图数据,以其中的道路数据为例,可以包括:道路的位置信息、道路的宽度、道路的车道数、道路的单双向、道路的通行方向和道路之间的连通关系等,进而根据获取到的数据确定地图要素的矢量地图渲染数据。
步骤S12:客户端接收服务器根据请求返回的地图要素的矢量地图渲染数据。
具体的,上述地图要素的矢量地图渲染数据的矢量表达形式可以是根据地图要素的类型确定:若地图要素的类型为线要素,则确定的地图要素的矢量地图渲染数据的矢量表达形式为线;若地图要素的类型为矩形要素,则确定的地图要素的矢量地图渲染数据的矢量表达形式为矩形;若地图要素的类型为面要素,则确定的地图要素的矢量地图渲染数据的矢量表达形式为三角网格。
即,线形地图要素是以线形数据格式表征;矩形地图要素是以矩形数据格式表征;面地图要素是以三角网格格式的数据表征,面地图要素可以是平面要素,也可以是多个面组成的立体要素。
在一个实施例中,还可以包括,客户端接收服务器根据请求返回的地图要素的矢量地图渲染数据,其矢量表达形式全部为三角网格数据,使得客户端可以从接收到的矢量地图渲染数据中直接解析出三角网格数据进行渲染,进一步减小了客户端的计算量。
由于将矢量表达形式为线或矩形的地图要素转换成三角网格形式,所耗用的计算量并不是很大,不会占用太多的CPU资源,较与将所有的地图要素的矢量地图渲染数据的矢量表达形式都确定为三角网格相比,减小了矢量地图渲染数据的数据量,减轻了数据传输过程中的宽带压力。故上述两种方式各有优势,可以视具体需要来选择。
比如一组矩形数据可以包括矩形要素的4个顶点,而对应的三角网格数据需要包括6个顶点;再比如一条道路线有100个特征点,扩展为三角网格后有200个特征点。故矢量地图渲染数据的矢量表达形式包括道路线、矩形和三角网格,减小了数据的数据量。
同时,由于线形数据、矩形数据和三角网格数据可以支持任意效果的扩展,故增加兴趣点的矢量渲染不需要客户端额外的开发量,比如添加一栋楼,在环岛加入一个大花坛等。
步骤S13:客户端根据地图要素的矢量表达形式,将地图要素的矢量地图渲染数据转换为三角网格数据,基于三角网格数据渲染地图要素。
在一个实施例中,可以包括,若地图要素的矢量表达形式为线,则将地图要素的矢量地图渲染数据转换为三角网格数据;若地图要素的矢量表达形式为矩形,则将地图要素的矢量地图渲染数据转换为三角网格数据;若地图要素的矢量表达形式为三角网格,则从地图要素的矢量地图渲染数据中解析出三角网格数据。
本公开实施例一提供的渲染方法,客户端向服务器发送地图渲染数据获取请求;客户端接收服务器根据请求返回的地图要素的矢量地图渲染数据;客户端根据地图要素的矢量表达形式,将地图要素的矢量地图渲染数据转换为三角网格数据,基于三角网格数据渲染地图要素。客户端接收的不是服务器根据请求得到的地图数据,而是服务器根据地图数据进一步确定的地图要素的矢量地图渲染数据,客户端从矢量图数据中解析出三角网格数据后可以直接进行矢量图的渲染,矢量地图渲染数据的计算工作在服务器端执行,减小了客户端的计算量,降低了对客户端的性能要求。
若矢量地图渲染数据的计算,即路网模型建立过程中的扩路算法都放在客户端执行,当渲染出的矢量图存在问题时,比如路型不好看,道路互相压盖等,需要更新算法并随客户端版本的发布来发布才可以解决;而本公开实施例提供的渲染方法,扩路算法由服务器来执行,可以直接在服务器端解决算法问题,可以使得包含了新算法的版本快速上线,提升用户体验。
实施例二
本公开实施例二提供一种渲染方法,由执行地图要素的矢量地图渲染的服务器执行,其流程如图2所示,包括如下步骤:
步骤S21:服务器根据地图要素的类型,获得矢量表达形式与类型匹配的地图要素的矢量地图渲染数据。
在一个实施例中,可以包括,若确定地图要素的类型为线要素,根据地图数据获得地图要素的矢量表达形式为线的矢量地图渲染数据;若确定地图要素的类型为矩形要素,根据地图数据获得地图要素的矢量表达形式为矩形的矢量地图渲染数据;若确定地图要素的类型为面要素,根据地图数据获得地图要素的矢量表达形式为三角网格的矢量地图渲染数据。
在一个实施例中,还可以包括,将所有地图要素的矢量地图渲染数据的矢量表达形式都确定为三角网格。
在一个实施例中,还可以包括,服务器将道路周围兴趣点展开为表达形式为三角网格的矢量地图渲染数据。
步骤S22:基于客户端的地图渲染数据获取请求,向客户端提供地图要素的矢量地图渲染数据。
具体的,可以是服务器预先获得指定地图范围内的所有地图要素的矢量地图渲染数据,或是获取指定地图范围内的所有地图要素的矢量地图渲染数据,根据客户端的数据获取请求,从预先获取的矢量地图渲染数据中提取客户端具体请求的数据发送给客户端;也可以是,服务器基于客户端的数据获取请求,被动的获取与数据获取请求对应的矢量地图渲染数据。
实施例三
本公开实施例三提供一种矢量地图渲染数据转换方法,用于将矢量地图渲染数据的矢量表达形式由线转换为三角网格。若地图要素的矢量表达形式为线,地图要素的矢量地图渲染数据包括特征点数据及特征点对应的第一侧的第一宽度和第二侧的第二宽度,特征点的连线平行于地图要素,第一宽度和第二宽度之和与地图要素的宽度匹配,将地图要素的矢量地图渲染数据转换为三角网格数据,参照图3所示,包括下述步骤:
步骤S31:根据第一宽度和第二宽度,分别确定各特征点的第一侧扩展点和第二侧扩展点。
针对首端或尾端的特征点,确定经过特征点,且与特征点和特征点的相邻特征点的连线垂直的第一扩展线,在第一扩展线上分别确定在特征点的第一侧且与特征点间的距离为第一宽度的点为特征点的第一侧扩展点,在特征点的第二侧且与特征点间的距离为第二宽度的点为特征点的第二侧扩展点。
针对中间特征点,确定中间特征点分别与相邻特征点的连线的夹角平分线,将夹角平分线所在的线确定为第二扩展线,在第二扩展线上分别确定在中间特征点的第一侧且与中间特征点间的距离为第一宽度的点为中间特征点的第一侧扩展点,在中间特征点的第二侧且与中间特征点间的距离为第二宽度的点为中间特征点的第二侧扩展点。
参照图4所示,针对首端的特征点A,确定经过特征点A,且与特征点A和特征点A的相邻特征点B的连线垂直的第一扩展线L1,在第一扩展线L1上分别确定在特征点A的第一侧且与特征点A间的距离为第一宽度的点A1为特征点A的第一侧扩展点,在特征点A的第二侧且与特征点A间的距离为第二宽度的点A2为特征点A的第二侧扩展点;针对尾端的特征点C,确定经过特征点C,且与特征点C和特征点C的相邻特征点B的连线垂直的第一扩展线L3,在第一扩展线L3上分别确定在特征点C的第一侧且与特征点C间的距离为第一宽度的点C1为特征点C的第一侧扩展点,在特征点C的第二侧且与特征点C间的距离为第二宽度的点C2为特征点C的第二侧扩展点;针对中间特征点B,确定中间特征点B分别与相邻特征点的连线的夹角平分线,将夹角平分线所在的线确定为第二扩展线L2,在第二扩展线L2上分别确定在中间特征点B的第一侧且与中间特征点B间的距离为第一宽度的点B1为中间特征点B的第一侧扩展点,在中间特征点B的第二侧且与中间特征点B间的距离为第二宽度的点B2为中间特征点B的第二侧扩展点。
步骤S32:连接两两相邻的第一侧扩展点、两两相邻的第二侧扩展点和同一特征点的第一侧扩展点与第二侧扩展点,形成多个四边形。
参照图4所示,连接两两相邻的第一侧扩展点A1B1和B1C1,连接两两相邻的第二侧扩展点A2B2和B2C2,连接同一特征点A的第一侧扩展点A1与第二侧扩展点A2,同一特征点B的第一侧扩展点B1与第二侧扩展点B2,以及同一特征点C的第一侧扩展点C1与第二侧扩展点C2。
步骤S33:按设定规则连接每个四边形的两个非相邻顶点,得到地图要素的三角网格数据。
参照图4所示,连接四边形的对角线B1A2和C1B2,得到4组三角网格数据。
在一个实施例中,若地图要素的矢量表达形式为矩形,地图要素的矢量地图渲染数据包括地图要素的两个非相邻顶点的第一顶点数据,将地图要素的矢量地图渲染数据转换为三角网格数据,具体可以包括:根据第一顶点数据,确定地图要素的其他两个顶点的第二顶点数据;根据第一顶点数据和第二顶点数据,按照预设的对角线原则,确定地图要素的两组三角网格数据。
现有的道路矢量图渲染的实现方案通常为:云上下发路口信息,客户端通过算法将二维link数据建模为三维模型进行渲染,这样建模工作还有对已有问题的修复和渲染效果的新增,工作量都集中在客户端。
实施例四
本公开实施例四提供一种道路矢量图渲染方法的具体实现,由执行道路矢量地图渲染的服务器执行,其流程如图5所示,包括如下步骤:
步骤S51:确定类型为线要素的道路要素,获得道路要素的矢量表达形式为线的矢量地图渲染数据。
具体的,可以是,确定道路要素中道路的车道线的类型为线要素,获得道路的车道线的矢量表达形式为线的矢量地图渲染数据。
根据道路数据包括的道路的位置信息、道路的宽度、道路的车道数和道路的单双向,获得道路的车道线的矢量表达形式为线的矢量地图渲染数据。车道线的矢量地图渲染数据包括车道线的特征点数据,和特征点对应的第一侧的第一宽度和第二侧的第二宽度,特征点的连线平行于车道线,第一宽度和第二宽度之和与车道线的宽度匹配。
具体的,上述道路的位置信息可以是道路中心线的经纬度值或坐标值。特征点的连线可以是车道线的中心线,即第一宽度和第二宽度的值相等。
在一个实施例中,车道线的矢量地图渲染数据还可以包括车道线的下述任一项纹理信息:
黄色实线,黄色虚线,黄色双实线,黄色且第一侧为实线第二侧为虚线,白色实线,白色虚线,白色双实线,白色且第一侧为实线第二侧为虚线。
步骤S52:确定类型为矩形要素的道路要素,获得道路要素的矢量表达形式为矩形的矢量地图渲染数据。
在一个实施例中,可以包括,确定道路要素中道路的斑马线和/或路口转向箭头的类型为矩形要素;根据道路数据中斑马线的位置信息和道路宽度,获得每条斑马线的矢量表达形式为矩形的矢量地图渲染数据;和/或,根据道路数据中路口转向箭头的位置信息和指向信息,获得路口转向箭头的矢量表达形式为矩形的矢量地图渲染数据。
可以是,服务器根据道路数据的道路的宽度和道路的位置信息,获得斑马线的矩形数据;根据道路数据中道路的通行方向和道路之间的连通关系,获得车道的路口转向箭头的矩形数据。
即,路口转向箭头的矩形数据和斑马线的矩形数据,可以是服务器根据获取到的路口转向箭头和斑马线的数据信息直接转换得到的;也可以是服务器根据道路的通行方向、道路之间的连通关系、道路的位置信息和道路宽度等计算得到的。
上述矩形数据包括矩形要素的两个非相邻顶点的第一顶点数据,这样可以使得矩形数据的数据量最小;可选的,也可以是包括矩形元素的四个顶点的顶点数据,这样矩形数据的数据量增大了一倍,加大了数据传输过程中的宽带压力,但是减小了客户端将矩形数据转换为三角网格数据的计算量。
步骤S53:确定类型为面要素的道路要素,获得道路要素的矢量表达形式为三角网格的矢量地图渲染数据。
在一个实施例中,可以包括,服务器确定道路要素中的道路路面的类型为面要素;根据道路数据中道路的位置信息、道路宽度和道路之间的连通关系,建立道路的路面的矢量表达形式为三角网格的矢量地图渲染数据。
具体的,可以是根据道路的位置信息和道路的宽度确定单条道路的路面的三角网格数据;根据道路的连通关系和预定的连接规则,确定路口连接处路面的三角网格数据,例如图6中的道路矢量图中的由道路路口处的斑马线等围成的路口连接处的路面。
步骤S54:服务器将道路周围兴趣点展开为矢量表达形式为三角网格的矢量地图渲染数据。
步骤S55:服务器将得到的矢量地图渲染数据组合,生成组合矢量地图渲染数据。
步骤S56:基于客户端的地图渲染数据获取请求,向客户端提供组合矢量地图渲染数据。
具体的,上述渲染方法并不仅仅适用于地图及地图中的道路的矢量图的渲染,还可以适用于其他类型的图像渲染,只要是通过客户端与服务器交互进行图像渲染就可以适用上述方法,例如游戏界面矢量图的渲染,景区矢量图的渲染等。
基于本公开的发明构思,本公开实施例还提供一种渲染方法,应用于渲染客户端,包括:
客户端向服务器请求图像渲染数据;
客户端接收所述服务器根据请求返回的图像要素的矢量图渲染数据;
客户端根据所述图像要素的矢量表达形式,将所述图像要素的矢量图渲染数据转换为三角网格数据,基于所述三角网格数据渲染所述图像要素。
基于本公开的发明构思,本公开实施例还提供一种渲染方法,应用于渲染服务器端,包括:
服务器根据图像要素的类型,获得矢量表达形式与所述类型匹配的所述图像要素的矢量地图渲染数据;
基于客户端的图像渲染数据获取请求,向客户端提供所述图像要素的矢量地图渲染数据。
基于本公开的发明构思,本公开实施例还提供一种渲染装置,设置于渲染客户端,其结构参照图7所示,包括:
发送模块71,用于向服务器请求地图渲染数据;
接收模块72,用于接收所述服务器根据求返回的地图要素的矢量地图渲染数据;
渲染模块73,用于根据所述地图要素的矢量表达形式,将所述地图要素的矢量地图渲染数据转换为三角网格数据,基于所述三角网格数据渲染所述地图要素。
在一个实施例中,渲染模块73,根据所述地图要素的矢量表达形式,将所述地图要素的矢量地图渲染数据转换为三角网格数据,具体用于:
若地图要素的矢量表达形式为线,则将所述地图要素的矢量地图渲染数据转换为三角网格数据;若地图要素的矢量表达形式为矩形,则将所述地图要素的矢量地图渲染数据转换为三角网格数据;若地图要素的矢量表达形式为三角网格,则从所述地图要素的矢量地图渲染数据中解析出三角网格数据。
在一个实施例中,若地图要素的矢量表达形式为线,所述地图要素的矢量地图渲染数据包括特征点数据及特征点对应的第一侧的第一宽度和第二侧的第二宽度,所述特征点的连线平行于所述地图要素,所述第一宽度和第二宽度之和与所述地图要素的宽度匹配,渲染模块73,将所述地图要素的矢量地图渲染数据转换为三角网格数据,具体用于:
根据所述第一宽度和第二宽度,分别确定各特征点的第一侧扩展点和第二侧扩展点;连接两两相邻的第一侧扩展点、两两相邻的第二侧扩展点和同一特征点的第一侧扩展点与第二侧扩展点,形成多个四边形,按设定规则连接每个四边形的两个非相邻顶点,得到所述地图要素的三角网格数据。
在一个实施例中,渲染模块73,根据所述第一宽度和第二宽度,分别确定各特征点的第一侧扩展点和第二侧扩展点,具体用于:
针对首端或尾端的特征点,确定经过所述特征点,且与所述特征点和所述特征点的相邻特征点的连线垂直的第一扩展线,在第一扩展线上分别确定在所述特征点的第一侧且与所述特征点间的距离为第一宽度的点为所述特征点的第一侧扩展点,在所述特征点的第二侧且与所述特征点间的距离为第二宽度的点为所述特征点的第二侧扩展点;针对中间特征点,确定所述中间特征点分别与相邻特征点的连线的夹角平分线,将所述夹角平分线所在的线确定为第二扩展线,在第二扩展线上分别确定在所述中间特征点的第一侧且与所述中间特征点间的距离为第一宽度的点为所述中间特征点的第一侧扩展点,在所述中间特征点的第二侧且与所述中间特征点间的距离为第二宽度的点为所述中间特征点的第二侧扩展点。
在一个实施例中,若地图要素的矢量表达形式为矩形,所述地图要素的矢量地图渲染数据包括所述地图要素的两个非相邻顶点的第一顶点数据,渲染模块73,将所述地图要素的矢量地图渲染数据转换为三角网格数据,具体用于:
根据所述第一顶点数据,确定所述地图要素的其他两个顶点的第二顶点数据;根据所述第一顶点数据和第二顶点数据,按照预设的对角线原则,确定所述地图要素的两组三角网格数据。
基于本公开的发明构思,本公开实施例还提供一种渲染装置,设置于渲染服务器端,其结构参照图8所示,包括:
获取模块81,用于根据地图要素的类型,获得矢量表达形式与所述类型匹配的所述地图要素的矢量地图渲染数据;
发送模块82,用于基于客户端的地图渲染数据获取请求,向客户端提供所述地图要素的矢量地图渲染数据。
在一个实施例中,获取模块81,根据地图要素的类型,获得矢量表达形式与所述类型匹配的所述地图要素的矢量地图渲染数据,具体用于:
若确定地图要素的类型为线要素,根据地图数据获得所述地图要素的矢量表达形式为线的矢量地图渲染数据;若确定地图要素的类型为矩形要素,根据地图数据获得所述地图要素的矢量表达形式为矩形的矢量地图渲染数据;若确定地图要素的类型为面要素,根据地图数据获得所述地图要素的矢量表达形式为三角网格的矢量地图渲染数据。
在一个实施例中,获取模块81,若确定地图要素的类型为线要素,根据地图数据获得所述地图要素的矢量表达形式为线的矢量地图渲染数据,具体用于:
确定地图要素中道路的车道线的类型为线要素;根据地图数据包括的道路的位置信息、道路的宽度、道路的车道数和道路的单双向,获得所述道路的车道线的矢量表达形式为线的矢量地图渲染数据,所述矢量地图渲染数据包括所述车道线的特征点数据,和所述特征点对应的第一侧的第一宽度和第二侧的第二宽度,所述特征点的连线平行于所述车道线,所述第一宽度和第二宽度之和与所述车道线的宽度匹配。
在一个实施例中,获取模块81,若确定地图要素的类型为矩形要素,根据地图数据获得所述地图要素的矢量表达形式为矩形的矢量地图渲染数据,具体用于:
确定地图要素中道路的斑马线和/或路口转向箭头的类型为矩形要素;根据地图数据中斑马线的位置信息和道路宽度,获得每条斑马线的矢量表达形式为矩形的矢量地图渲染数据;和/或,根据地图数据中路口转向箭头的位置信息和指向信息,获得所述路口转向箭头的矢量表达形式为矩形的矢量地图渲染数据。
在一个实施例中,获取模块81,若确定地图要素的类型为面要素,根据地图数据获得所述地图要素的矢量表达形式为三角网格的矢量地图渲染数据,具体用于:
确定地图要素中的道路路面的类型为面要素;根据地图数据中道路的位置信息、道路宽度和道路之间的连通关系,建立所述道路的路面的矢量表达形式为三角网格的矢量地图渲染数据。
基于本公开的发明构思,本公开实施例还提供一种渲染系统,其结构参照图9所示,包括服务器91和至少一个客户端92;
服务器91设置有上述二个道路矢量图渲染装置,客户端92设置有上述第一个道路矢量图渲染装置。
关于上述实施例中的装置和系统,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
基于本公开的发明构思,本公开实施例还提供一种计算机可读存储介质,其上存储有计算机指令,当该指令被处理器执行时实现上述渲染方法。
基于本公开的发明构思,本公开实施例还提供一种云服务,所述云服务运行时执行上述渲染方法。
除非另外具体陈述,术语比如处理、计算、运算、确定、显示等等可以指一个或更多个处理或者计算系统、或类似设备的动作和/或过程,所述动作和/或过程将表示为处理系统的寄存器或存储器内的物理(如电子)量的数据操作和转换成为类似地表示为处理系统的存储器、寄存器或者其他此类信息存储、发射或者显示设备内的物理量的其他数据。信息和信号可以使用多种不同的技术和方法中的任何一种来表示。例如,在贯穿上面的描述中提及的数据、指令、命令、信息、信号、比特、符号和码片可以用电压、电流、电磁波、磁场或粒子、光场或粒子或者其任意组合来表示。
应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。
在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本公开处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本公开单独的优选实施方案。
本领域技术人员还应当理解,结合本文的实施例描述的各种说明性的逻辑框、模块、电路和算法步骤均可以实现成电子硬件、计算机软件或其组合。为了清楚地说明硬件和软件之间的可交换性,上面对各种说明性的部件、框、模块、电路和步骤均围绕其功能进行了一般地描述。至于这种功能是实现成硬件还是实现成软件,取决于特定的应用和对整个系统所施加的设计约束条件。熟练的技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是,这种实现决策不应解释为背离本公开的保护范围。
结合本文的实施例所描述的方法或者算法的步骤可直接体现为硬件、由处理器执行的软件模块或其组合。软件模块可以位于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动磁盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质连接至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。该ASIC可以位于用户终端中。当然,处理器和存储介质也可以作为分立组件存在于用户终端中。
对于软件实现,本申请中描述的技术可用执行本申请所述功能的模块(例如,过程、函数等)来实现。这些软件代码可以存储在存储器单元并由处理器执行。存储器单元可以实现在处理器内,也可以实现在处理器外,在后一种情况下,它经由各种手段以通信方式耦合到处理器,这些都是本领域中所公知的。
上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
Claims (18)
1.一种渲染方法,包括:
客户端向服务器请求地图渲染数据;
客户端接收所述服务器根据请求返回的地图要素的矢量地图渲染数据;
客户端根据所述地图要素的矢量表达形式,将所述地图要素的矢量地图渲染数据转换为三角网格数据,基于所述三角网格数据渲染所述地图要素。
2.如权利要求1所述的方法,所述根据所述地图要素的矢量表达形式,将所述地图要素的矢量地图渲染数据转换为三角网格数据,具体包括:
若地图要素的矢量表达形式为线,则将所述地图要素的矢量地图渲染数据转换为三角网格数据;
若地图要素的矢量表达形式为矩形,则将所述地图要素的矢量地图渲染数据转换为三角网格数据;
若地图要素的矢量表达形式为三角网格,则从所述地图要素的矢量地图渲染数据中解析出三角网格数据。
3.如权利要求2所述的方法,若地图要素的矢量表达形式为线,所述地图要素的矢量地图渲染数据包括特征点数据及特征点对应的第一侧的第一宽度和第二侧的第二宽度,所述特征点的连线平行于所述地图要素,所述第一宽度和第二宽度之和与所述地图要素的宽度匹配,所述将所述地图要素的矢量地图渲染数据转换为三角网格数据,具体包括:
根据所述第一宽度和第二宽度,分别确定各特征点的第一侧扩展点和第二侧扩展点;
连接两两相邻的第一侧扩展点、两两相邻的第二侧扩展点和同一特征点的第一侧扩展点与第二侧扩展点,形成多个四边形,按设定规则连接每个四边形的两个非相邻顶点,得到所述地图要素的三角网格数据。
4.如权利要求3所述的方法,所述根据所述第一宽度和第二宽度,分别确定各特征点的第一侧扩展点和第二侧扩展点,具体包括:
针对首端或尾端的特征点,确定经过所述特征点,且与所述特征点和所述特征点的相邻特征点的连线垂直的第一扩展线,在第一扩展线上分别确定在所述特征点的第一侧且与所述特征点间的距离为第一宽度的点为所述特征点的第一侧扩展点,在所述特征点的第二侧且与所述特征点间的距离为第二宽度的点为所述特征点的第二侧扩展点;
针对中间特征点,确定所述中间特征点分别与相邻特征点的连线的夹角平分线,将所述夹角平分线所在的线确定为第二扩展线,在第二扩展线上分别确定在所述中间特征点的第一侧且与所述中间特征点间的距离为第一宽度的点为所述中间特征点的第一侧扩展点,在所述中间特征点的第二侧且与所述中间特征点间的距离为第二宽度的点为所述中间特征点的第二侧扩展点。
5.如权利要求2所述的方法,若地图要素的矢量表达形式为矩形,所述地图要素的矢量地图渲染数据包括所述地图要素的两个非相邻顶点的第一顶点数据,所述将所述地图要素的矢量地图渲染数据转换为三角网格数据,具体包括:
根据所述第一顶点数据,确定所述地图要素的其他两个顶点的第二顶点数据;
根据所述第一顶点数据和第二顶点数据,按照预设的对角线原则,确定所述地图要素的两组三角网格数据。
6.一种渲染方法,包括:
服务器根据地图要素的类型,获得矢量表达形式与所述类型匹配的所述地图要素的矢量地图渲染数据;
基于客户端的地图渲染数据获取请求,向客户端提供所述地图要素的矢量地图渲染数据。
7.如权利要求6所述的方法,所述根据地图要素的类型,获得矢量表达形式与所述类型匹配的所述地图要素的矢量地图渲染数据,具体包括:
若确定地图要素的类型为线要素,根据地图数据获得所述地图要素的矢量表达形式为线的矢量地图渲染数据;
若确定地图要素的类型为矩形要素,根据地图数据获得所述地图要素的矢量表达形式为矩形的矢量地图渲染数据;
若确定地图要素的类型为面要素,根据地图数据获得所述地图要素的矢量表达形式为三角网格的矢量地图渲染数据。
8.如权利要求7所述的方法,所述若确定地图要素的类型为线要素,根据地图数据获得所述地图要素的矢量表达形式为线的矢量地图渲染数据,具体包括:
确定地图要素中道路的车道线的类型为线要素;
根据地图数据包括的道路的位置信息、道路的宽度、道路的车道数和道路的单双向,获得所述道路的车道线的矢量表达形式为线的矢量地图渲染数据,所述矢量地图渲染数据包括所述车道线的特征点数据,和所述特征点对应的第一侧的第一宽度和第二侧的第二宽度,所述特征点的连线平行于所述车道线,所述第一宽度和第二宽度之和与所述车道线的宽度匹配。
9.如权利要求8所述的方法,所述矢量地图渲染数据还包括车道线的下述任一项纹理信息:
黄色实线,黄色虚线,黄色双实线,黄色且第一侧为实线第二侧为虚线,白色实线,白色虚线,白色双实线,白色且第一侧为实线第二侧为虚线。
10.如权利要求7所述的方法,所述若确定地图要素的类型为矩形要素,根据地图数据获得所述地图要素的矢量表达形式为矩形的矢量地图渲染数据,具体包括:
确定地图要素中道路的斑马线和/或路口转向箭头的类型为矩形要素;
根据地图数据中斑马线的位置信息和道路宽度,获得每条斑马线的矢量表达形式为矩形的矢量地图渲染数据;和/或,根据地图数据中路口转向箭头的位置信息和指向信息,获得所述路口转向箭头的矢量表达形式为矩形的矢量地图渲染数据。
11.如权利要求7所述的方法,所述若确定地图要素的类型为面要素,根据地图数据获得所述地图要素的矢量表达形式为三角网格的矢量地图渲染数据,具体包括:
确定地图要素中的道路路面的类型为面要素;
根据地图数据中道路的位置信息、道路宽度和道路之间的连通关系,建立所述道路的路面的矢量表达形式为三角网格的矢量地图渲染数据。
12.一种渲染方法,包括:
客户端向服务器请求图像渲染数据;
客户端接收所述服务器根据请求返回的图像要素的矢量图渲染数据;
客户端根据所述图像要素的矢量表达形式,将所述图像要素的矢量图渲染数据转换为三角网格数据,基于所述三角网格数据渲染所述图像要素。
13.一种渲染方法,包括:
服务器根据图像要素的类型,获得矢量表达形式与所述类型匹配的所述图像要素的矢量地图渲染数据;
基于客户端的图像渲染数据获取请求,向客户端提供所述图像要素的矢量地图渲染数据。
14.一种渲染装置,包括:
发送模块,用于向服务器请求地图渲染数据;
接收模块,用于接收所述服务器根据请求返回的地图要素的矢量地图渲染数据;
渲染模块,用于根据所述地图要素的矢量表达形式,将所述地图要素的矢量地图渲染数据转换为三角网格数据,基于所述三角网格数据渲染所述地图要素。
15.一种渲染装置,包括:
获取模块,用于根据地图要素的类型,获得矢量表达形式与所述类型匹配的所述地图要素的矢量地图渲染数据;
发送模块,用于基于客户端的地图渲染数据获取请求,向客户端提供所述地图要素的矢量地图渲染数据。
16.一种渲染系统,包括服务器和至少一个客户端;
所述服务器设置有如权利要求15所述的渲染装置,所述客户端设置有如权利要求14所述的渲染装置。
17.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,当该指令被处理器执行时实现权利要求1~13中任一项所述的渲染方法。
18.一种云服务,所述云服务运行时执行所述权利要求6-11和13中任一项所述的渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010985181.3A CN114283247A (zh) | 2020-09-18 | 2020-09-18 | 渲染方法、装置和云服务 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010985181.3A CN114283247A (zh) | 2020-09-18 | 2020-09-18 | 渲染方法、装置和云服务 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114283247A true CN114283247A (zh) | 2022-04-05 |
Family
ID=80867358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010985181.3A Pending CN114283247A (zh) | 2020-09-18 | 2020-09-18 | 渲染方法、装置和云服务 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114283247A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117112950A (zh) * | 2023-10-19 | 2023-11-24 | 腾讯科技(深圳)有限公司 | 电子地图中对象的渲染方法、装置、终端及存储介质 |
-
2020
- 2020-09-18 CN CN202010985181.3A patent/CN114283247A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117112950A (zh) * | 2023-10-19 | 2023-11-24 | 腾讯科技(深圳)有限公司 | 电子地图中对象的渲染方法、装置、终端及存储介质 |
CN117112950B (zh) * | 2023-10-19 | 2024-02-02 | 腾讯科技(深圳)有限公司 | 电子地图中对象的渲染方法、装置、终端及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110163064B (zh) | 一种道路标志物的识别方法、装置及存储介质 | |
CN113819890B (zh) | 测距方法、装置、电子设备及存储介质 | |
JP4284644B2 (ja) | 3次元モデル構築システム及び3次元モデル構築プログラム | |
EP3660704B1 (en) | Rendering map images using modifications of non-raster map data | |
US9330495B2 (en) | Extending DX11 GPU for programmable vector graphics | |
EP1927954B1 (en) | Terrain modeling based on curved surface area | |
CN108981734B (zh) | 电子地图道路拓展方法、装置、电子设备及存储介质 | |
JP5562439B2 (ja) | 空間データ処理方法及び装置 | |
US9483872B2 (en) | Graphical representation of roads and routes using hardware tessellation | |
CN111238504B (zh) | 道路地图的道路线段建模数据生成方法、装置及相关系统 | |
CN111501496B (zh) | 一种道路高程的确定方法和装置 | |
CN112102489A (zh) | 导航界面显示方法、装置、计算设备和存储介质 | |
KR101552827B1 (ko) | 3차원 객체 모델의 분할 방법 | |
CN110910504A (zh) | 区域的三维模型的确定方法及装置 | |
CN111238502A (zh) | 一种道路地图生成方法、装置及相关系统 | |
CN114283247A (zh) | 渲染方法、装置和云服务 | |
CN113808243B (zh) | 一种可形变雪地网格的绘制方法和装置 | |
CN111238498A (zh) | 车道级显示的道路地图生成方法、装置及相关系统 | |
CN116721230A (zh) | 一种三维实景模型的构建方法、装置、设备及存储介质 | |
EP2076850A2 (en) | Systems and methods for visualizing and measuring real world 3-d spatial data | |
CN118279516A (zh) | 一种基于激光点云和影像的建筑物结构化模型重建方法 | |
CN113066176B (zh) | 一种地图数据处理方法、装置、设备及存储介质 | |
JP2003132353A (ja) | 中心線生成プログラム | |
CN115186341B (zh) | 一种基于局部坐标变换的边缘构件参数计算方法 | |
CN111431953A (zh) | 一种数据处理方法、终端、服务器及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |