一种地理信息系统渲染方法及系统的制作方法

文档序号:2626047阅读:210来源:国知局
专利名称:一种地理信息系统渲染方法及系统的制作方法
技术领域
本发明涉及地图技术领域,具体涉及一种地理信息系统渲染方法及系统。
背景技术
地理信息系统(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渲染系统已经把底图层,热点层和动态层都显示出来了。另外,当动态层或者其它子层的数据需要更新时,系统需要进行重新显示数据。例如,假设动态层表示数据包括100个GPS点的信息,这些GPS点的位置是频繁变化的。这时,具体子步骤如下数据管理模块对动态层的数据进行更新;调用底图层对应的显示列表,由于底图层数据没有改变,所以该子层无需进行更新,直接调用对应的显示列表即可,从而提高显示速度;遍历各个热点层,依次调用相应的显示列表,由于各个热点层数据没有改变,所以热点层无需更新,直接调用对应的显示列表即可,从而提高显示速度;直接绘制动态层的各个地图要素,完成地图显示。
以上,是以具体应用场景为例,对本发明技术方案的进一步详细介绍。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤可以通过硬件来完成,也可以通过程序指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括只读存储器、随机读取存储器、磁盘或光盘等。以上对本发明实施例所提供的地理信息系统渲染方法以及系统进行了详细介绍,但以上实施例的说明只是用于帮助理解本发明的方法及其核心思想,不应理解为对本发明的限制。本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
权利要求
1.一种地理信息系统GIS渲染方法,其特征在于,包括将需要显示的地图层划分为若干个子层,所述子层包括一个底图层和一个以上热点层,分别为底图层和每个热点层创建基于OpenGL的显示列表;需要渲染地图时,通过调用底图层和热点层对应的显示列表,绘制底图层和热点层。
2.根据权利要求1所述的方法,其特征在于所述子层还包括动态层;所述的通过调用底图层和每个热点层对应的显示列表,绘制底图层和热点层之后还包括绘制动态层的各个地图要素。
3.根据权利要求2所述的方法,其特征在于,还包括需要更新地图时,确定需要更新的子层并判断该子层的类型;如果需要更新的子层是底图层或热点层,删除该子层对应的显示列表,根据更新后的地图要素重新创建该子层的显示列表;如果需要更新的子层是动态层,根据更新后的地图要素重新绘制动态层。
4.一种地理信息系统GIS渲染系统,其特征在于,包括数据管理模块,用于将需要显示的地图层划分为若干个子层,所述子层包括一个底图层和一个以上热点层,分别为底图层和每个热点层创建基于OpenGL的显示列表;渲染模块,用于通过调用底图层和热点层对应的显示列表,绘制底图层和热点层。
5.根据权利要求4所述的方法,其特征在于所述子层还包括动态层;所述渲染模块还用于绘制动态层的各个地图要素。
6.根据权利要求5所述的方法,其特征在于,还包括更新模块;所述更新模块,用于确定需要更新的子层并判断该子层的类型;所述数据管理模块,还用于如果需要更新的子层是底图层或热点层,删除该子层对应的显示列表,根据更新后的地图要素重新创建该子层的显示列表;所述渲染模块,还用于如果需要更新的是动态层,根据更新后的地图要素重新绘制动态层。
全文摘要
本发明公开了地理信息系统GIS渲染方法,包括将需要显示的地图层划分为若干个子层,所述子层包括一个底图层和一个以上热点层,分别为底图层和每个热点层创建基于OpenGL的显示列表;需要渲染地图时,通过调用底图层和热点层对应的显示列表,绘制底图层和热点层。本发明实施例还提供相应的系统。本发明技术方案进行地图显示或更新时,只需要处理数据有变化的子层即可,而不必处理处理所有子层,从而可以减少绘图耗时,提高绘图效率,进而提高显示效果。
文档编号G09B29/00GK103035164SQ201210568359
公开日2013年4月10日 申请日期2012年12月24日 优先权日2012年12月24日
发明者陈泓坤 申请人:广东威创视讯科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1