应用于分布式系统地图数据处理方法与流程

文档序号:14774313发布日期:2018-06-23 02:38阅读:141来源:国知局
应用于分布式系统地图数据处理方法与流程

本发明涉及数据处理领域,尤其涉及应用于分布式系统地图数据处理方法。



背景技术:

地图数据数据量庞大,不论存储、处理还是渲染都对于服务器和终端有较高的要求,而对于用户而言,数据切换和地图渲染的时效性是非常重要的,秒级的差距就足以严重降低用户体验;

为了增加对于地图数据的存储、管理以及处理能力,利用分布式网络不失为一种较为可行的方式,然而分布式网络的技术要求较高,对于数据一致性和备份的算法要求也较高;除此之外,纵使基于分布式网络解决了数据存储管理的问题,地图数据庞大的数据量也为终端渲染带来了沉重的负担。



技术实现要素:

为了解决上述技术问题,本发明提供应用于分布式系统地图数据处理方法。

本发明是以如下技术方案实现的:

应用于分布式系统地图数据处理方法,所述分布式系统由多个分布式集群构成,每个分布式集群包括一个分管服务器和若干数据服务器,所述分管服务器用于管理所述数据服务器,所述地图数据处理方法包括:

响应于向分布式系统上传地图数据的指令,上传地图数据;

在预设时间内,所述分布式系统自发为地图数据进行二轮备份。

进一步地,响应于向分布式系统上传地图数据的指令,对所述地图数据进行一次散列,得到用于存储所述地图数据的目标存储节点;

判断所述目标存储节点是否为当前可用节点;

若是,则允许上传并由所述目标存储节点接收所述地图数据;

若所述目标存储节点为当前不可用节点,则获取所述地图数据所在文件的摘要,并根据摘要进行二次散列得到散列值。

进一步地,根据创建时间进行一次散列得到散列值;根据摘要进行二次散列得到散列值。

进一步地,在所述数据备份方法中,自上传成功开始,所述分布式系统即生成定时器,以便于在预设时间内完成针对于所述地图数据的备份。

进一步地,预设时间的设置参考对所述分布式系统响应于用户访问数据的行为进行的分析的结果。

进一步地,针对矢量地图数据的预设时间应当小于2天,针对影像地图数据的预设时间应当小于5天。

本发明的有益效果是:

本发明提供的应用于分布式系统地图数据处理方法,其具有如下有益效果:

(1)提供完备的分布式系统以及在分布式系统中进行地图数据上传、备份和处理的完备方法,从而解决了海量地图数据存储管理以及数据处理的技术问题;

(2)为了加快移动终端对于地图数据进行渲染的速度,提供了在保存地图数据拓扑关系的前提,对地图数据进行抽稀以生成简化文件的方法,从而使得终端能够在概要浏览时,渲染简化文件,在精细浏览时,渲染原始文件,从而取得渲染速度和用户希望看到的渲染效果的平衡,在本发明中,不同抽稀程度得到不同的简化文件,从而使得在渲染地图时更加灵活。

附图说明

图1是本发明实施例提供的应用于分布式系统地图数据处理方法流程图;

图2是本发明实施例提供的分布式系统框图;

图3是本发明实施例提供的备份方法流程图;

图4是本发明实施例提供的对地图数据进行数据处理的方法流程图;

图5是本发明实施例提供的小图斑综合处理方法流程图;

图6是本发明实施例提供的简化处理方法流程图;

图7是本发明实施例提供的折线压缩算法流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。

本发明实施例提供应用于分布式系统地图数据处理方法,如图1所示,所述方法包括:

响应于向分布式系统上传地图数据的指令,对所述地图数据进行一次散列,得到用于存储所述地图数据的目标存储节点;

判断所述目标存储节点是否为当前可用节点;

若是,则允许上传并由所述目标存储节点接收所述地图数据。

在预设时间内,所述分布式系统自发为地图数据进行二轮备份。

所述分布式系统具备如下结构,如图2所示,所述分布式系统由多个分布式集群构成,每个分布式集群包括一个分管服务器和若干数据服务器,所述分管服务器用于管理所述数据服务器。即所述分管服务器构成了分布式集群的名称节点,所述数据服务器构成了所述分布式集群的数据节点,一个名称节点和所述名称节点所辖的数据节点构成了分布式集群,而全部分布式集群的总和构成了分布式系统,并由分布式系统中的管理服务器统辖。在所述分布式系统中,每个分布式集群有其对应的集群标识,每个名称节点的标识与所述集群标识对应,每个数据节点标识由名称节点标识和区别码构成。

当用户向所述分布式系统发布上传地图数据的指令时,则获取所述地图数据所在文件的创建时间和文件大小,根据所述创建时间进行一次散列得到散列值,并向与所述散列值对应的数据节点(目标存储节点)发出状态请求,以便于所述数据节点返回状态数据,所述状态数据包括是否可用以及剩余存储空间。

若所述数据节点为可用状态并且所述文件大小小于所述数据节点的剩余存储空间时,则所述目标存储节点为当前可用节点,允许上传并由所述目标存储节点接收所述地图数据。

若状态数据为不可用或者文件大小不小于所述数据节点的剩余存储空间时,则所述目标存储节点为当前不可用节点。则获取所述地图数据所在文件的摘要,并根据摘要进行二次散列得到散列值,并向与所述散列值对应的数据节点(目标存储节点)发出状态请求,以便于所述数据节点返回状态数据,所述状态数据包括是否可用以及剩余存储空间。若所述数据节点为可用状态并且所述文件大小小于所述数据节点的剩余存储空间时,则所述目标存储节点为当前可用节点,允许上传并由所述目标存储节点接收所述地图数据。

进一步地,为了避免数据的丢失,本发明实施例提供了一种数据备份方法。

在所述数据备份方法中,自上传成功开始,所述分布式系统即生成定时器,以便于在预设时间内完成针对于所述地图数据的备份。预设时间的设置参考对所述分布式系统响应于用户访问数据的行为进行的分析的结果。

比如,基于对所述分布式系统内维护的访问日志分析得知,80%的矢量地图数据会在上传两天内被访问,85%的影像地图数据会在上传5天后被访问,由此,针对矢量地图数据的预设时间应当小于2天,针对影像地图数据的预设时间应当小于5天。显而易见的,随着分布式系统的使用,基于访问日志进行分析的结果也会被更新,相应的,预设时间也随之发生变动。

在预设时间内,所述分布式系统自发为地图数据进行二轮备份。

如图3所示,在第一轮备份过程,获取地图数据的上传时间,并在所述分布式系统中的目标集群空间对所述上传时间进行散列,得到散列值对应的目标备份节点,判断所述目标备份节点是否为当前可用节点(判断方法如前所述),若是,则在所述目标备份节点生成所述地图数据的第一份副本。具体地,所述目标集群空间为所述分布式系统中刨除地图数据所在的数据节点所在分布式集群之外的其它分布式集群的总和。

在第二轮备份过程,获取地图数据的字节数,并在所述分布系统中的目标数据节点空间对所述字节数进行散列,得到散列值对应的目标备份节点,判断所述目标备份节点是否为当前可用节点(判断方法如前所述),若是,则在所述目标备份节点生成所述地图数据的第二份副本。具体地,所述目标数据节点空间为第一份副本所在的节点所在的分布式集群中,刨除第一份副本所在的数据节点后得到的数据节点的总和。

在分布式系统对获取到的地图数据进行存储和备份的基础上,本发明实施例提供了一种对地图数据进行数据处理的方法,所述地图数据为矢量数据,所述矢量数据包括图斑位置数据和属性数据。

所述方法如图4所示,包括:

进行小图斑综合处理;

对综合处理后的矢量数据分别进行多次简化;每次简化过程中的简化尺度均不相同,简化尺度由简化过程中的执行阈值标识;

针对每一次的简化结果均生成一个简化文件。

具体地,所述小图斑综合处理如图5所示,包括:

获取图斑全部最小外包矩形;

获取最小外包矩形小于预设面积值的全部目标图斑;

针对每一个目标图斑执行下述操作:

(1)判断所述目标图斑是否存在地类码,若不存在,则删除所述目标图斑;

(2)若存在,则获取所述目标图斑的相邻图斑的地类码,若存在地类码与所述目标图斑的地类码相同或者相近的相邻图斑,则将所述目标图斑向所述相邻图斑合并;否则,删除所述目标图斑。

为对矢量数据进行简化,本发明实施例提供一种简化处理方法如图6所示,包括:

S1. 将所述矢量数据存入预设的第一数据结构,生成原数据。

S2. 按照预设算法,对所述原数据进行压缩,得到压缩后的目标数据。

S3. 将所述目标数据存入预设的第二数据结构,得到简化文件。

进一步地,在在S1之前,还可以也有对矢量数据中每个图斑均进行过滤,以滤除重复的位置数据的步骤。

下面,对步骤S1进行详细描述:

本发明实施例中使用第一数据结构描述矢量数据,具体地,所述第一数据结构为一种四叉树结构,每一个节点标识一个图斑。所述四叉树的拓扑反应所述图斑的空间位置关系。

下面,对步骤S2进行详细描述:

在以矢量数据作为数据源的进行显示的地图中,面状图斑均是无重叠、无缝隙分布,而对图斑直接进行有损压缩,必然由于丢失掉一些位置数据使得压缩后的图斑出现裂缝而无法保持无重叠、无缝隙分布的效果,为了避免压缩后出现图斑裂缝,维持无缝隙的显示效果,在进行有损压缩之前,有必要进行数据预处理。

在节点中,一个图斑使用一个vector容器记录,所述vector容器中的每个元素都是一张链表,链表中的每个链表节点都代表所述图斑中的一段折线,为了避免出现图斑裂缝,数据预处理需要获取图斑拓扑,所述图斑拓扑包括图斑与相邻图斑的公共边,为了获取公共边,每个链表节点都记录有下述内容:

本图斑标识;

第一开始标识,用于记录本图斑折线开始;

第一结束标识,用于记录本图斑折线结束;

匹配图斑标识,所述匹配图斑为为了求拓扑而与本图斑进行公共边提取的图斑;显然匹配图标那是本图斑的相邻图斑;

第二开始标识,用于记录相邻图斑折线开始;

第二结束标识,用于记录相邻图斑折线结束;

公共边标识,用于标识链表节点记录的折线是否是本图斑和相邻图斑的公共边。

在拓扑求取过程中,对某个链表节点进行处理时,对本图斑的一段折线和匹配图斑的一段折线,判断其是否重合时,若发现其全部位置都重合,则标记所述公共边标识。若发现其部分重合,则链表节点按照重合部分进行分裂,具体地:

若重合部分位于本图斑折线开始或结尾部分,则将链表分裂为两个目标链表,一个目标链表记录公共边,另一个目标链表记录非公共边。

若重合部分位于本图斑折线中部,则将链表分裂为三个目标链表,中间的目标链表记录公共边,其它目标链表记录非公共边。

在对所有图斑的公共边提取结束后,即可获得原数据的拓扑,按照所述拓扑进行压缩,即分别对公共边和非公共边施行压缩算法,并将分别压缩后的结果存入预设的第二数据,生成简化文件即可。

对于公共边和非公共边的压缩可以使用相同或者不同的压缩算法,本发明实施例中提供一种可行的折线压缩算法,如图7所示,包括:

(1)在折线首尾两点A,B之间连接一条直线AB,该直线为曲线的弦;

(2)得到折线上离该直线段距离最大的点C,计算其与AB的距离d;

(3)比较该距离与执行阈值的大小,如果小于执行阈值,则删除C;

(4)如果距离大于执行阈值,则用C将折线分为两段AC和BC,并分别对两段折线进行(1)~(3)的处理。

需要主要的是,在原数据拓扑获取的前提下,可以改变执行阈值进行多次压缩,得到不同尺度的压缩后数据。对每个压缩后数据按照预设的第二数据结构进行存储,得到不同尺度的简化文件。

显然,简化文件在地图显示的场景下是很有用的,当用户需要观察概要数据时,可以使用简化文件显示地图,从而既可以快速渲染地图又可以使得用户可以快速获知地图概况;当用户需要观察细节数据时,可以使用原数据,从而无损显示地图细节。显然,在用户的放大操作或者缩小操作过程中,可以根据缩放比例,加载不同尺度的简化文件或者原数据。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如本发明的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在本发明的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者系统程序(如计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,也可以在载体信号上提供,或者以任何其他形式提供。

应该注意的是,上述实施例是对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或者步骤等。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干系统的单元权利要求中,这些系统中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二以及第三等的使用不表示任何顺序,可将这些单词解释为名称。

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