一种地理信息系统渲染方法及系统技术方案

技术编号:8563520 阅读:140 留言:0更新日期:2013-04-11 05:23
本发明专利技术公开了地理信息系统GIS渲染方法,包括:将需要显示的地图层划分为若干个子层,所述子层包括一个底图层和一个以上热点层,分别为底图层和每个热点层创建基于OpenGL的显示列表;需要渲染地图时,通过调用底图层和热点层对应的显示列表,绘制底图层和热点层。本发明专利技术实施例还提供相应的系统。本发明专利技术技术方案进行地图显示或更新时,只需要处理数据有变化的子层即可,而不必处理处理所有子层,从而可以减少绘图耗时,提高绘图效率,进而提高显示效果。

【技术实现步骤摘要】

本专利技术涉及地图
,具体涉及一种地理信息系统渲染方法及系统
技术介绍
地理信息系统(Geographic Information System,GIS)的渲染系统用于在拼接墙上显示底图,矢量,图标,文字等各种地图要素。目前行业内的GIS渲染系统按照地图层来管理数据,地图层内包含了各种需要渲染的地图要素。地图层的每次数据更新都可能会触发渲染系统的重绘,重新处理地图层的所有数据。在一个分辨率较大的拼接墙上进行GIS显示时,如果需要绘制的地图层较多,每个地图层又包含大量地图要素时,绘制过程耗时很长,效率很低,严重影响显示效果。
技术实现思路
本专利技术实施例提供一种地理信息系统渲染方法及系统,以解决现有技术在进行GIS渲染时耗时长,效率低的技术问题。本专利技术实施例采用的技术方案如下—种地理信息系统GIS渲染方法,其特征在于,包括将需要显示的地图划分为若干个子层,所述子层包括一个底图层和一个以上热点层,分别为底图层和每个热点层创建基于OpenGL的显示列表;需要渲染地图时,通过调用底图层和热点层对应的显示列表,绘制底图层和热点层。一种地理信息系统GIS渲染系统,包括数据管理模块,用于将需要显示的地图层划分为若干个子层,所述子层包括一个底图层和一个以上热点层,分别为底图层和每个热点层创建基于OpenGL的显示列表;渲染模块,用于通过调用底图层和热点层对应的显示列表,绘制底图层和热点层。本专利技术实施例采用预先将地图划分为若干个子层,并分别为其中的底图层和每个热点层创建基于OpenGL的显示列表,后续通过调用显示列表,绘制底图层和热点层的技术方案,使得进行地图显示或更新时,只需要处理数据有变化的子层即可,而不必处理处理所有子层,从而可以减少绘图耗时,提高绘图效率,进而提高显示效果。附图说明图1是本专利技术实施例提供的GIS渲染方法的流程图;图2是本专利技术实施例提供的GIS渲染系统的示意图。具体实施例方式本专利技术实施例提供一种地理信息系统渲染方法,可以减少地图绘制时间,解决现有技术在进行GIS渲染时耗时长,效率低的技术问题。本专利技术实施例还提供相应的系统。以下分别进行详细说明。实施例一、请参考图1,本专利技术实施例还提供一种GIS渲染方法,包括110、将需要显示的地图层划分为若干个子层,所述子层包括一个底图层和一个以上热点层,分别为底图层和每个热点层创建基于OpenGL的显示列表。本实施例中,将需要显示的地图层划分为若干个子层,所说的子层至少包括底图层和热点层这两种类型,可选的,还可以包括第三种类型动态层。底图层包含需要显示的地图层的底图切片数据;热点层包括相对稳定的地图要素,具体包括点、线、面、图标及文字标注等要素;动态层包括需要频繁更新的地图要素,具体可以包括点、线、面、图标及文字。一次显示任务最多而且只有一个底图层,若干个热点层,以及零个或一个动态层。每个子层都包含了若干需要显示的地图要素,系统为每个底图层和热点层申请创建一个基于OpenGL的显示列表,并在该显示列表中绘制该子层的所有地图要素。因为动态层更新数据的频率很高,每次重绘都需重新绘制地图要素,所以不为动态层创建显示列表。需要说明的是,所说的OpenGL (Open GraphicsLibrary)是个专业的图形程序接口,是一个功能强大,调用方便的底层图形库;所说的显示列表是OpenGL的对象,该对象创建以后可以用整形数的ID标识。120、需要渲染地图时,通过调用底图层和热点层对应的显示列表,绘制底图层和热点层。具体应用中,需要渲染地图时,按照以下流程绘制各个子层首先调用底图层对应的显示列表,绘制底图层;然后调用每个热点层对应的显示列表,绘制各个热点层;最后直接绘制动态层的各个地图要素。当需要更新地图时,更新流程如下首先确定需要更新的子层并判断该子层的类型;如果需要更新的子层是底图层或热点层,则删除该子层对应的显示列表,根据更新后的地图要素重新创建该子层的显示列表;如果需要更新的子层是动态层,则根据更新后的地图要素重新绘制动态层。其中,重新创建某子层的显示列表时,首先为该子层创建新的显示列表,在该新的显示列表中绘制该子层的所有地图要素,包括更新后的地图要素。更新后的新的显示列表用新的ID进行标识,没有更新的显示列表的ID保持不变。可见,更新操作只对系统的某些子层的地图要素进行重新处理绘制,而没有变化的子层,则无需重复处理,这样就提高了 GIS渲染的效率。综上,本专利技术实施例提供了一种地理信息系统渲染方法,以子层为单位组织数据,为各子层创建显示列表,该显示列表实质上是一个渲染指令的集合,当系统进行刷新时,对于没有数据变化的子层直接调用该渲染指令的集合,而对应有数据变化的子层则更新该渲染指令的集合。从而,本专利技术技术方案在进行地图显示或更新时,只需要处理数据有变化的子层即可,而不必处理处理所有子层,从而可以减少绘图耗时,提高绘图效率,从而提高显示效果。实施例二、请参考图2,本专利技术实施例还提供一种GIS渲染系统,包括数据管理模块210,用于将需要显示的地图层划分为若干个子层,所述子层包括一个底图层和一个以上热点层,分别为底图层和每个热点层创建基于OpenGL的显示列表;渲染模块220,用于通过调用底图层和热点层对应的显示列表,绘制底图层和热点层。可选的,所述子层还可以包括动态层;所述渲染模块220还可以用于直接绘制动态层的各个地图要素。可选的,其它实施方式中,所述系统还可以包括更新模块;所述更新模块,用于确定需要更新的子层并判断该子层的类型;所述数据管理模块,还用于如果需要更新的子层是底图层或热点层,删除该子层对应的显示列表,根据更新后的地图要素重新创建该子层的显示列表;所述渲染模块,还用于如果需要更新的是动态层,根据更新后的地图要素重新绘制动态层。综上本专利技术实施例提供了一种GIS渲染系统,该系统预先将地图划分为若干个子层,并分别为其中的底图层和每个热点层创建基于OpenGL的显示列表,后续通过调用显示列表,绘制底图层和热点层,使得进行地图显示或更新时,只需要处理数据有变化的子层即可,而不必处理处理所有子层,从而可以减少绘图耗时,提高绘图效率,从而提高显示效果。下面以一个具体应用场景为例,对本专利技术的GIS渲染系统做进一步描述。本应用场景中,GIS渲染系统具体可以包括功能接口模块,数据管理模块,渲染模块。其中功能接口模块是系统对外公开的功能函数,供外部应用程序调用。数据管理模块根据外部应用程序调用的功能接口函数对系统中各子层的数据进行管理,并更新子层中相应的数据要素。渲染模块的功能是遍历系统中所有子层,并顺序绘制每个子层。一个具体应用中,系统各个模块执行动作可以如下所述首先,外部应用程序调用GIS渲染系统的“添加地图底图层”函数;数据管理模块根据外部应用程序发出的指令,创建OpenGL显示列表MapLayer_renderjd,并在该显示列表中绘制底图层数据。其次,外部应用程序调用“添加热点图层”函数及其它函数以创建热点层;数据管理模块根据外部应用程序发出的指令,创建Opengl显示列表HotSrcLayer_render_id,并在该显示列表中绘制点、线、面、图标和文字数据;最后,外部应用程序调用“添加动态图层”函数,及其它函数以创建动态层,在该子层上显示点、线、面本文档来自技高网...

【技术保护点】
一种地理信息系统GIS渲染方法,其特征在于,包括:将需要显示的地图层划分为若干个子层,所述子层包括一个底图层和一个以上热点层,分别为底图层和每个热点层创建基于OpenGL的显示列表;需要渲染地图时,通过调用底图层和热点层对应的显示列表,绘制底图层和热点层。

【技术特征摘要】
1.一种地理信息系统GIS渲染方法,其特征在于,包括将需要显示的地图层划分为若干个子层,所述子层包括一个底图层和一个以上热点层,分别为底图层和每个热点层创建基于OpenGL的显示列表;需要渲染地图时,通过调用底图层和热点层对应的显示列表,绘制底图层和热点层。2.根据权利要求1所述的方法,其特征在于所述子层还包括动态层;所述的通过调用底图层和每个热点层对应的显示列表,绘制底图层和热点层之后还包括绘制动态层的各个地图要素。3.根据权利要求2所述的方法,其特征在于,还包括需要更新地图时,确定需要更新的子层并判断该子层的类型;如果需要更新的子层是底图层或热点层,删除该子层对应的显示列表,根据更新后的地图要素重新创建该子层的显示列表;如果需要更新的子层是动态层,根据更新后的地图要素重新绘制动态层。4....

【专利技术属性】
技术研发人员:陈泓坤
申请(专利权)人:广东威创视讯科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1