本发明涉及计算机技术领域,特别是涉及一种地图数据存储方法、加载方法、装置和计算机设备。
背景技术:
地图是按一定的比例运用线条、符号、颜色、文字注记等描绘显示地球表面的自然地理、行政区域、社会状况的图形。
目前arcgis(地理信息系统平台)地图符号主要有两个方法存储,一种是在本地保存mxd文件(mxd是一种文档格式,在arcgis中,以mxd作为扩展名的文件是地图文档),通过切换数据源来实现地图数据符号化;另一种方法是把mxd文件保存到数据库二进制字段中,程序启动前下载保存为本地mxd文件,再切换数据源实现地图符号化。
利用现有的两种存储方法存储的地图符号,在加载的过程中需要先打开整个mxd文件,再对整个mxd文件的每个图层切换数据源,加载速度慢。
技术实现要素:
本发明的目的在于提供一种地图数据存储方法、加载方法、装置和计算机设备,可以提高加载速度,并且节约资源。
本发明的目的通过如下技术方案实现:
一种地图数据存储方法,所述方法包括:
获取目标地图,所述目标地图包括多个图层,各所述图层分别包括多个地图符号;
根据各所述图层所包括的所述地图符号获取各所述图层的要素类型;
将各所述图层的所述地图符号分别转化为与所获取的要素类型对应的要素数据;
将转化后的所述要素数据分别存储至与各所述要素类型对应的数据库。
在其中一个实施例中,所述根据各所述图层所包括的所述地图符号获取各所述图层的要素类型包括:
提取各所述图层中的任一地图符号,查询符号数据库中存储的与所提取的地图符号对应的符号类型;
根据所述符号类型获取包括所述所提取的地图符号的图层的要素类型。
在其中一个实施例中,所述将各所述图层的所述地图符号分别转化为与所获取的要素类型对应的要素数据包括:
将各所述图层的所述地图符号分别进行序列化转化,获得与所述要素类型对应的二进制数据,所述二进制数据为所述要素数据。
在其中一个实施例中,所述将转化后的所述要素数据分别存储至与各所述要素类型对应的数据库包括:
将转化后的各所述要素数据分别添加对应的图层的图层标识;
将添加有所述图层标识的各要素数据分别存储至与各所述要素类型对应的数据库。
一种利用上述所述的存储方法存储的地图数据的加载方法,所述方法包括:
获取目标图层标识,查询标识信息库中存储的与所述目标图层标识对应的要素类型;
获取存储的多个数据库中与所查询到的要素类型对应的数据库,查询所获取的数据库中添加有所述目标图层标识的要素数据;
根据所查询的要素类型将所查询到的要素数据转化成对应的地图符号;
加载转化后的所述地图符号获得目标图层。
在其中一个实施例中,所述根据所查询的要素类型将所查询到的要素数据转化成对应的地图符号包括:
将所查询到的数据库中的要素数据进行反序列化转化,获取与所述要素类型对应的多个地图符号。
一种地图数据存储装置,所述装置包括:
地图获取模块,用于获取目标地图,所述目标地图包括多个图层,各所述图层分别包括多个地图符号;
类型获取模块,用于根据各所述图层所包括的所述地图符号获取各所述图层的要素类型;
第一转化模块,用于将各所述图层的所述地图符号分别转化为与所获取的要素类型对应的要素数据;
存储模块,用于将转化后的所述要素数据分别存储至与各所述要素类型对应的数据库。
在其中一个实施例中,所述类型获取模块包括:
查询单元,用于提取各所述图层中的任一地图符号,查询符号数据库中存储的与所提取的地图符号对应的符号类型;
第一获取单元,用于根据所述符号类型获取包括所述所提取的地图符号的图层的要素类型。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如下步骤:
获取目标地图,所述目标地图包括多个图层,各所述图层分别包括多个地图符号;
根据各所述图层所包括的所述地图符号获取各所述图层的要素类型;
将各所述图层的所述地图符号分别转化为与所获取的要素类型对应的要素数据;
将转化后的所述要素数据分别存储至与各所述要素类型对应的数据库。
一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如下步骤:
获取目标地图,所述目标地图包括多个图层,各所述图层分别包括多个地图符号;
根据各所述图层所包括的所述地图符号获取各所述图层的要素类型;
将各所述图层的所述地图符号分别转化为与所获取的要素类型对应的要素数据;
将转化后的所述要素数据分别存储至与各所述要素类型对应的数据库。
根据上述本发明的方案,其获取目标地图,所述目标地图包括多个图层,各所述图层分别包括多个地图符号,根据各所述图层所包括的所述地图符号获取各所述图层的要素类型,将多个图层按照要素类型分类,这样加载的时候只需要加载对应要素类型的图层,能够提高加载速度;将各所述图层的所述地图符号分别转化为与所获取的要素类型对应的要素数据,将转化后的所述要素数据分别存储至与各所述要素类型对应的数据库,将地图符号按照要素类型分类存储,能够提高加载速度,并且当少数地图符号更新时,只需要更新对应的要素类型的数据库,能节省资源。
附图说明
图1为一个实施例中地图数据存储方法的应用环境图;
图2为一个实施例中地图数据存储方法的流程示意图;
图3为另一个实施例中地图数据存储方法的流程示意图;
图4为一个实施例中地图数据加载方法的流程示意图;
图5为一个实施例中地图数据存储装置的结构框图;
图6为另一个实施例中地图数据存储装置的结构框图;
图7为一个实施例中地图数据加载装置的结构框图;
图8为一个实施例中计算机设备的内部结构图;
图9为另一个实施例中计算机设备的内部结构图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。
图1为一个实施例中服务器的内部结构示意图。该服务器包括通过系统总线连接的处理器、非易失性存储介质、网络接口、内存储器、输入装置。其中该服务器的非易失性存储介质有操作系统,还包括一种地图数据存储装置,该地图数据存储装置用于实现一种地图数据存储方法。该处理器用于提供计算和控制能力,支撑整个服务器的运行。服务器中的内存储器为非易失性存储介质中的地图数据存储装置的运行提供环境,网络接口用于与其他服务器或终端进行通信,如当服务器响应点击操作可以产生控制命令发送到其它服务器或者终端等。输入装置为键盘、鼠标或触摸屏等。具体的,服务器获取目标地图,所述目标地图包括多个图层,各所述图层分别包括多个地图符号;服务器根据各所述图层所包括的所述地图符号获取各所述图层的要素类型;服务器将各所述图层的所述地图符号分别转化为与所获取的要素类型对应的要素数据;服务器将转化后的所述要素数据分别存储至与各所述要素类型对应的数据库。其中,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。本领域技术人员可以理解,本申请提供的地图数据存储方法,不仅可以应用于图1所示的应用环境中,还可以应用但不限于各种计算机或服务器中。
在一个实施例中,如图2所示,提供了一种地图数据存储方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤s101,获取目标地图,所述目标地图包括多个图层,各所述图层分别包括多个地图符号;
具体的,通过arcmap配置目标地图各图层的符号,例如每个图层符号的颜色、形状、大小等,然后通过arcgis提供接口,获取配置好的目标地图。其中,arcmap的定义为:一个用户桌面组件,具有强大的地图制作,空间分析,空间数据建库等功能,arcmap为组成arcgis用户桌面组件的其中之一。
步骤s102,根据各所述图层所包括的所述地图符号获取各所述图层的要素类型;
具体的,图层的要素类型包括点图层、线图层和面图层。
步骤s103,将各所述图层的所述地图符号分别转化为与所获取的要素类型对应的要素数据;
具体的,与点图层对应的为点符号,与线图层对应的为线符号,与面图层对应的为面符号。
步骤s104,将转化后的所述要素数据分别存储至与各所述要素类型对应的数据库。
上述地图数据存储方法中,通过获取目标地图,所述目标地图包括多个图层,各所述图层分别包括多个地图符号,根据各所述图层所包括的所述地图符号获取各所述图层的要素类型,将多个图层按照要素类型分类,这样加载的时候只需要加载对应要素类型的图层,能够提高加载速度;将各所述图层的所述地图符号分别转化为与所获取的要素类型对应的要素数据,将转化后的所述要素数据分别存储至与各所述要素类型对应的数据库,将地图符号按照要素类型分类存储,能够提高加载速度,并且当少数地图符号更新时,只需要更新对应的要素类型的数据库,能节省资源。
在其中一个实施例中,如图3所示,所述根据各所述图层所包括的所述地图符号获取各所述图层的要素类型包括:
步骤s1021,提取各所述图层中的任一地图符号,查询符号数据库中存储的与所提取的地图符号对应的符号类型;
具体的,由于各图层中的所有地图符号为一种类型,只需要任选一判断即可。
步骤s1022,根据所述符号类型获取包括所述所提取的地图符号的图层的要素类型。
具体的,只需要判断图层上的任一地图符号是点符号、线符号还是面符号,就可以对应判断图层是点图层、线图层还是面图层。
在其中一个实施例中,所述将各所述图层的所述地图符号分别转化为与所获取的要素类型对应的要素数据具体为:
将各所述图层的所述地图符号分别进行序列化转化,获得与所述要素类型对应的二进制数据,所述二进制数据为所述要素数据。
具体的,将点符号序列化转化成二进制点数据,线符号序列化成二进制的线数据,面符号序列化成二进制面数据。
在其中一个实施例中,如图3所示,所述将转化后的所述要素数据分别存储至与各所述要素类型对应的数据库包括:
步骤s1041,将转化后的各所述要素数据分别添加对应的图层的图层标识;
步骤s1042,将添加有所述图层标识的各要素数据分别存储至与各所述要素类型对应的数据库。
具体的,设置了图层标识之后,加载的时候首先找到对应要素类型的数据库,然后查询设置有图层标识的数据即可,能够提高加载速度,节省资源。
在其中一个实施例中,如图4所示,提供了一种利用设置有图层标识的实施例所述的存储方法存储的地图数据的加载方法,所述方法包括:
步骤s401,获取目标图层标识,查询标识信息库中存储的与所述目标图层标识对应的要素类型;
具体的,标识信息库中存储有多个图层标识,以及各图层标识对应的图层的要素类型,比如点图层、线图层或者是面图层。
步骤s402,获取存储的多个数据库中与所查询到的要素类型对应的数据库,查询所获取的数据库中添加有所述目标图层标识的要素数据;
具体的,各数据库分别设置有对应的要素类型,根据要素类型即可查询到对应的数据库,然后查询数据库中添加有目标图层标识的要素数据,不需要对所有图层的数据都进行加载,能有效提高加载速度。
步骤s403,根据所查询的要素类型将所查询到的要素数据转化成对应的地图符号;
步骤s404,加载转化后的所述地图符号获得目标图层。
在其中一个实施例中,所述根据所查询的要素类型将所查询到的要素数据转化成对应的地图符号具体为:
将所查询到的数据库中的要素数据进行反序列化转化,获取与所述要素类型对应的多个地图符号。
应该理解的是,虽然图2-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在其中一个实施例中,如图5所示,提供了一种地图数据存储装置,所述装置包括:
地图获取模块501,用于获取目标地图,所述目标地图包括多个图层,各所述图层分别包括多个地图符号;
类型获取模块502,用于根据各所述图层所包括的所述地图符号获取各所述图层的要素类型;
第一转化模块503,用于将各所述图层的所述地图符号分别转化为与所获取的要素类型对应的要素数据;
存储模块504,用于将转化后的所述要素数据分别存储至与各所述要素类型对应的数据库。
在其中一个实施例中,如图6所示,所述类型获取模块502包括:
查询单元5021,用于提取各所述图层中的任一地图符号,查询符号数据库中存储的与所提取的地图符号对应的符号类型;
第一获取单元5022,用于根据所述符号类型获取包括所述所提取的地图符号的图层的要素类型。
在其中一个实施例中,第一转化模块503具体用于将各所述图层的所述地图符号分别进行序列化转化,获得与所述要素类型对应的二进制数据,所述二进制数据为所述要素数据。
在其中一个实施例中,如图6所示,所述存储模块504包括:
标识添加单元5041,用于将转化后的各所述要素数据分别添加对应的图层的图层标识;
数据存储单元5042,用于将添加有所述图层标识的各要素数据分别存储至与各所述要素类型对应的数据库。
在其中一个实施例中,如图7所示,提供了一种地图数据的加载装置,所述加载装置加载的是设置有图层标识的实施例所述的存储装置存储的地图数据,所述加载装置包括:
第一查询模块701,用于获取目标图层标识,查询标识信息库中存储的与所述目标图层标识对应的要素类型;
第二查询模块702,用于获取存储的多个数据库中与所查询到的要素类型对应的数据库,查询所获取的数据库中添加有所述目标图层标识的要素数据;
第二转化模块703,用于根据所查询的要素类型将所查询到的要素数据转化成对应的地图符号;
图层获取模块704,用于加载转化后的所述地图符号获得目标图层。
在其中一个实施例中,所述第二转化模块703具体用于将所查询到的数据库中的要素数据进行反序列化转化,获取与所述要素类型对应的多个地图符号。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过装置总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作装置、计算机程序和数据库。该内存储器为非易失性存储介质中的操作装置和计算机程序的运行提供环境。该计算机设备的数据库用于存储地图数据存储涉及的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种地图数据存储或地图数据加载方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种地图数据存储或地图数据加载方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图8-9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:获取目标地图,所述目标地图包括多个图层,各所述图层分别包括多个地图符号;根据各所述图层所包括的所述地图符号获取各所述图层的要素类型;将各所述图层的所述地图符号分别转化为与所获取的要素类型对应的要素数据;将转化后的所述要素数据分别存储至与各所述要素类型对应的数据库。
在其中一个实施例中,处理器执行计算机程序时所述根据各所述图层所包括的所述地图符号获取各所述图层的要素类型包括:提取各所述图层中的任一地图符号,查询符号数据库中存储的与所提取的地图符号对应的符号类型;根据所述符号类型获取包括所述所提取的地图符号的图层的要素类型。
在其中一个实施例中,处理器执行计算机程序时所述将各所述图层的所述地图符号分别转化为与所获取的要素类型对应的要素数据包括:将各所述图层的所述地图符号分别进行序列化转化,获得与所述要素类型对应的二进制数据,所述二进制数据为所述要素数据。
在其中一个实施例中,处理器执行计算机程序时所述将转化后的所述要素数据分别存储至与各所述要素类型对应的数据库包括:将转化后的各所述要素数据分别添加对应的图层的图层标识;将添加有所述图层标识的各要素数据分别存储至与各所述要素类型对应的数据库。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:获取目标图层标识,查询标识信息库中存储的与所述目标图层标识对应的要素类型;获取存储的多个数据库中与所查询到的要素类型对应的数据库,查询所获取的数据库中添加有所述目标图层标识的要素数据;根据所查询的要素类型将所查询到的要素数据转化成对应的地图符号;加载转化后的所述地图符号获得目标图层。
在其中一个实施例中,处理器执行计算机程序时所述根据所查询的要素类型将所查询到的要素数据转化成对应的地图符号包括:将所查询到的数据库中的要素数据进行反序列化转化,获取与所述要素类型对应的多个地图符号。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取目标地图,所述目标地图包括多个图层,各所述图层分别包括多个地图符号;根据各所述图层所包括的所述地图符号获取各所述图层的要素类型;将各所述图层的所述地图符号分别转化为与所获取的要素类型对应的要素数据;将转化后的所述要素数据分别存储至与各所述要素类型对应的数据库。
在其中一个实施例中,计算机程序被处理器执行时所述根据各所述图层所包括的所述地图符号获取各所述图层的要素类型包括:提取各所述图层中的任一地图符号,查询符号数据库中存储的与所提取的地图符号对应的符号类型;根据所述符号类型获取包括所述所提取的地图符号的图层的要素类型。
在其中一个实施例中,计算机程序被处理器执行时所述将各所述图层的所述地图符号分别转化为与所获取的要素类型对应的要素数据包括:将各所述图层的所述地图符号分别进行序列化转化,获得与所述要素类型对应的二进制数据,所述二进制数据为所述要素数据。
在其中一个实施例中,计算机程序被处理器执行时所述将转化后的所述要素数据分别存储至与各所述要素类型对应的数据库包括:将转化后的各所述要素数据分别添加对应的图层的图层标识;将添加有所述图层标识的各要素数据分别存储至与各所述要素类型对应的数据库。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取目标图层标识,查询标识信息库中存储的与所述目标图层标识对应的要素类型;获取存储的多个数据库中与所查询到的要素类型对应的数据库,查询所获取的数据库中添加有所述目标图层标识的要素数据;根据所查询的要素类型将所查询到的要素数据转化成对应的地图符号;加载转化后的所述地图符号获得目标图层。
在其中一个实施例中,计算机程序被处理器执行时所述根据所查询的要素类型将所查询到的要素数据转化成对应的地图符号包括:将所查询到的数据库中的要素数据进行反序列化转化,获取与所述要素类型对应的多个地图符号。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。