System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据处理,特别涉及一种快速矢量切片系统及方法。
技术介绍
1、随着空间实测数据的几何级数增长,电子地图的表达方式越来越多样化,图层的数量可达二十多层。然而部分图层的矢量数据经常存在不均匀的现象,部分区域的矢量数据相对密集,而部分区域的矢量数据非常稀疏。现有的矢量数据切片方法是将某个图层的矢量数据预先切成若干级切片,高一级的切片由低级的切片横纵切割成四等块而成,同一级的切片尺寸相同。数据在加载的时候,通过计算当前屏幕可视区域的范围以及比例尺,只读取可视区域内与当前比例尺匹配的级别的切片。一个图层经过十几级的切片后得到的数据可能占到几十gb甚至更多的存储空间,整个切片过程需要耗费几天甚至更长的时间。然而针对矢量数据稀疏的区域,进行太高级别的切片实际上对于提升分辨率的效果不明显,但是会导致数据和切片时间大幅度提升。尤其是针对移动终端来说,较大的内存占用对于地图的加载速度以及其它性能影响较大。
技术实现思路
1、本专利技术要解决的技术问题是提供一种快速矢量切片系统及方法,可以有效减少切片结果的数据量,提高切片效率,且不影响地图的分辨率,不影响用户的体验。
2、为了解决上述技术问题,本专利技术的技术方案为一种快速矢量切片系统,包括数据库、初始切片模块、切片级别判定模块、切片级别统计模块;所述数据库与初始切片模块连接;所述切片级别判定模块和切片级别统计模块分别与初始切片模块连接;
3、所述初始切片模块用于将矢量数据横纵切割成4等块,得到第一级切片,并将第一
4、进一步的,还包括渲染请求模块、数据查询模块、比例尺匹配模块、矢量切片生成模块;所述数据查询模块与所述切片级别统计模块以及数据库连接;渲染请求模块用于根据输入的地图范围确定对应的切片集,并发出数据读取命令读取切片的信息;所述比例尺匹配模块用于预设不同的比例尺与切片级别的对应关系;所述数据查询模块用于接收数据读取命令,根据读取命令中的切片的信息,在切片级别统计模块中查询对应切片的最高切片级别,当查询到的最高切片级别大于等于当前屏幕比例尺匹配的切片级别时,则向数据库请求读取匹配的切片级别的矢量切片,当查询到的最高切片级别小于预设的当前屏幕比例尺匹配的切片级别时,则向数据库请求读取最高切片级别的矢量切片;所述矢量切片生成模块用于接收数据查询模块读取到的矢量切片,并将矢量切片发送给渲染请求模块。
5、进一步的,还包括数据缓存模块和缓存匹配模块;所述缓存匹配模块与渲染请求模块以及数据缓存模块连接;所述数据缓存模块与缓存匹配模块以及矢量切片生成模块连接;所述数据缓存模块用于接收并存储所述矢量切片生成模块生成的矢量切片;所述缓存匹配模块用于接收渲染请求模块的数据读取命令,根据读取命令中的切片的位置信息在数据缓存模块存储的矢量切片中进行匹配,若可以匹配到,则将匹配的矢量切片直接发送给渲染请求模块,若匹配不到,则将数据读取命令发送给数据查询模块。
6、进一步的,还包括重点区域判定模块、交互模块和二次切片模块;所述重点区域判定模块与缓存匹配模块、交互模块和切片级别统计模块连接;二次切片模块与所述数据库、交互模块以及切片级别统计模块连接;所述重点区域判定模块用于对缓存匹配模块针对相同位置的矢量切片匹配成功的累计次数进行统计,判断累计次数是否达到预设值,同时判断当前读取的矢量切片的级别是否已经达到该矢量切片的最高切片级别,若两个条件同时满足,则判定该矢量切片对应的区域为重点区域,并将判定结果发送给交互模块;所述交互模块用于当收到重点区域判定模块发送的信息后,弹出对话框,对话框包括二次切片和维持现状两种选项;当用户点击二次切片选项时,交互模块发送针对该矢量切片的二次切片命令到二次切片模块;所述二次切片模块用于从所述数据库读取二次切片命令中对应的矢量切片,并将其横纵切割成4等块,然后将切片结果返回至数据库进行保存,并将对应的矢量切片更新后的最高切片级别信息发送给切片级别统计模块;切片级别统计模块接收到二次切片模块的信息后更新该矢量切片的最高切片级别。
7、进一步的,所述切片的信息包括地区、行政区代码、图层名称、坐标系、切片格式、切片位置、切片级别;所述数据缓存模块中按照切片的地区、行政区代码、图层名称、坐标系、切片格式、切片位置、切片级别的路径进行缓存。
8、进一步的,还包括数据简化模块;所述数据简化模块与所述数据查询模块以及矢量切片生成模块连接;所述数据简化模块用于将数据查询模块读取到的矢量切片进行简化处理,并将简化后的矢量切片发送给矢量切片生成模块。
9、本专利技术还提供一种快速矢量切片方法,包括如下步骤:
10、s1、初始切片:初始切片模块将矢量数据横纵切割成4等块,得到第一级切片,并将第一级的所有切片发送给数据库和切片级别判定模块;切片级别判定模块根据矢量数据的密集程度逐一判断接收到的每一个切片是否需要进行下一级切片,当矢量数据的密集程度大于预设值时,则判定需要对该切片进行下一级切片,发送切片指令给初始切片模块,且清除切片;所述初始切片模块接收到来自切片级别判定模块的切片指令后,将该切片继续横纵切割成4等块,并将新切割得到的下一级切片发送给数据库和切片级别判定模块;直至上一级的所有矢量切片都经过切片级别判定模块判断后无需进行下一级切片;
11、s2、切片级别统计:所述切片级别统计模块提取矢量切片的位置信息以及最高切片级别。
12、进一步的,用户在加载时,包括如下步骤:
13、(1)渲染请求:渲染请求模块根据输入的地图范围确定对应的切片集,并给缓存匹配模块发送数据读取命令读取切片集中每个切片的切片信息,所述切片信息包括地区、行政区代码、图层名称、坐标系、切片格式、切片位置、切片级别;
14、(2)缓存匹配:缓存匹配模块接收渲染请求模块的数据读取命令,根据读取命令中的切片位置信息在数据缓存模块存储的矢量切片中进行匹配,若可以匹配到,则将匹配的矢量切片直接发送给渲染请求模块,若匹配不到,则将数据读取命令发送给数据查询模块;
15、(3)数据库查询:数据查询模块接收数据读取命令,根据读取命令中的切片的信息在切片级别统计模块中查询对应切片的最高切片级别,当查询到的最高切片级别大于等于预设的当前屏幕比例尺匹配的切片级别时,则向数据库请求读取匹配的切片级别的矢量切片,当查询到的最高切片级别小于预设的当前屏幕比例尺匹配的切片级别时,则向数据库请求读取最高切片级别的矢量切片;
16、(4)生成矢量切片:数据查询模块将读取的矢量切片发送至数本文档来自技高网...
【技术保护点】
1.一种快速矢量切片系统,其特征在于:包括数据库、初始切片模块、切片级别判定模块、切片级别统计模块;所述数据库与初始切片模块连接;所述切片级别判定模块和切片级别统计模块分别与初始切片模块连接;
2.根据权利要求1所述的一种快速矢量切片系统,其特征在于:还包括渲染请求模块、数据查询模块、比例尺匹配模块、矢量切片生成模块;所述数据查询模块与所述切片级别统计模块以及数据库连接;渲染请求模块用于根据输入的地图范围确定对应的切片集,并发出数据读取命令读取切片的信息;所述比例尺匹配模块用于预设不同的比例尺与切片级别的对应关系;所述数据查询模块用于接收数据读取命令,根据读取命令中的切片的信息,在切片级别统计模块中查询对应切片的最高切片级别,当查询到的最高切片级别大于等于当前屏幕比例尺匹配的切片级别时,则向数据库请求读取匹配的切片级别的矢量切片,当查询到的最高切片级别小于预设的当前屏幕比例尺匹配的切片级别时,则向数据库请求读取最高切片级别的矢量切片;所述矢量切片生成模块用于接收数据查询模块读取到的矢量切片,并将矢量切片发送给渲染请求模块。
3.根据权利要求2所述的一种快速
4.根据权利要求3所述的一种快速矢量切片系统,其特征在于:还包括重点区域判定模块、交互模块和二次切片模块;所述重点区域判定模块与缓存匹配模块、交互模块和切片级别统计模块连接;二次切片模块与所述数据库、交互模块以及切片级别统计模块连接;所述重点区域判定模块用于对缓存匹配模块针对相同位置的矢量切片匹配成功的累计次数进行统计,判断累计次数是否达到预设值,同时判断当前读取的矢量切片的级别是否已经达到该矢量切片的最高切片级别,若两个条件同时满足,则判定该矢量切片对应的区域为重点区域,并将判定结果发送给交互模块;所述交互模块用于当收到重点区域判定模块发送的信息后,弹出对话框,对话框包括二次切片和维持现状两种选项;当用户点击二次切片选项时,交互模块发送针对该矢量切片的二次切片命令到二次切片模块;所述二次切片模块用于从所述数据库读取二次切片命令中对应的矢量切片,并将其横纵切割成4等块,然后将切片结果返回至数据库进行保存,并将对应的矢量切片更新后的最高切片级别信息发送给切片级别统计模块;切片级别统计模块接收到二次切片模块的信息后更新该矢量切片的最高切片级别。
5.根据权利要求3所述的一种快速矢量切片系统,其特征在于:所述切片的信息包括地区、行政区代码、图层名称、坐标系、切片格式、切片位置、切片级别;所述数据缓存模块中按照切片的地区、行政区代码、图层名称、坐标系、切片格式、切片位置、切片级别的路径进行缓存。
6.根据权利要求2所述的一种快速矢量切片系统,其特征在于:还包括数据简化模块;所述数据简化模块与所述数据查询模块以及矢量切片生成模块连接;所述数据简化模块用于将数据查询模块读取到的矢量切片进行简化处理,并将简化后的矢量切片发送给矢量切片生成模块。
7.一种适用于权利要求1-6任意一项所述的一种快速矢量切片系统的快速矢量切片方法,其特征在于:包括如下步骤:
8.根据权利要求7所述的一种快速矢量切片方法,其特征在于:用户在加载时,包括如下步骤:
9.根据权利要求8所述的一种快速矢量切片方法,其特征在于:还包括二次切片步骤:所述重点区域判定模块对缓存匹配模块针对相同位置的矢量切片匹配成功的累计次数进行统计,判断累计次数是否达到预设值,同时判断当前读取的矢量切片的级别是否已经达到该矢量切片的最高切片级别,若两个条件同时满足,则判定该矢量切片对应的区域为重点区域,并将判定结果发送给交互模块;所述交互模块接收重点区域判定模块发送的信息后,弹出对话框,对话框包括二次切片和维持现状两种选项;当用户点击二次切片选项时,交互模块发送针对该矢量切片的二次切片命令到二次切片模块;所述二次切片模块从所述数据库读取二次切片命令中对应的矢量切片,并将其横纵切割成4等块,然后将切片结果返回至数据库进行保存,并将对应的矢量切片更新后的最高切片级别信息发送给切片级别统计模块;切片级别统计模块接收到二次切片模块的信息后更新该矢量切片的最高切片级别。
...【技术特征摘要】
1.一种快速矢量切片系统,其特征在于:包括数据库、初始切片模块、切片级别判定模块、切片级别统计模块;所述数据库与初始切片模块连接;所述切片级别判定模块和切片级别统计模块分别与初始切片模块连接;
2.根据权利要求1所述的一种快速矢量切片系统,其特征在于:还包括渲染请求模块、数据查询模块、比例尺匹配模块、矢量切片生成模块;所述数据查询模块与所述切片级别统计模块以及数据库连接;渲染请求模块用于根据输入的地图范围确定对应的切片集,并发出数据读取命令读取切片的信息;所述比例尺匹配模块用于预设不同的比例尺与切片级别的对应关系;所述数据查询模块用于接收数据读取命令,根据读取命令中的切片的信息,在切片级别统计模块中查询对应切片的最高切片级别,当查询到的最高切片级别大于等于当前屏幕比例尺匹配的切片级别时,则向数据库请求读取匹配的切片级别的矢量切片,当查询到的最高切片级别小于预设的当前屏幕比例尺匹配的切片级别时,则向数据库请求读取最高切片级别的矢量切片;所述矢量切片生成模块用于接收数据查询模块读取到的矢量切片,并将矢量切片发送给渲染请求模块。
3.根据权利要求2所述的一种快速矢量切片系统,其特征在于:还包括数据缓存模块和缓存匹配模块;所述缓存匹配模块与渲染请求模块以及数据缓存模块连接;所述数据缓存模块与缓存匹配模块以及矢量切片生成模块连接;所述数据缓存模块用于接收并存储所述矢量切片生成模块生成的矢量切片;所述缓存匹配模块用于接收渲染请求模块的数据读取命令,根据读取命令中的切片的位置信息在数据缓存模块存储的矢量切片中进行匹配,若可以匹配到,则将匹配的矢量切片直接发送给渲染请求模块,若匹配不到,则将数据读取命令发送给数据查询模块。
4.根据权利要求3所述的一种快速矢量切片系统,其特征在于:还包括重点区域判定模块、交互模块和二次切片模块;所述重点区域判定模块与缓存匹配模块、交互模块和切片级别统计模块连接;二次切片模块与所述数据库、交互模块以及切片级别统计模块连接;所述重点区域判定模块用于对缓存匹配模块针对相同位置的矢量切片匹配成功的累计次数进行统计,判断累计次数是否达到预设值,同时判断当前读取的矢量切片的级别是否已经达到该矢量切片的最高切片级别,若两个条件同时满足,则判定该矢量切片对应的区域为重点区域,并将判定结果发送给交互模块;所述交互模...
【专利技术属性】
技术研发人员:沈如毅,康来昌,张文明,
申请(专利权)人:昆明麦普空间科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。