欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2018102572770
申请人: 四川师范大学
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2024-01-05
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种百万级Spatialite空间数据库的快速查询方法,其特征在于,包括如下步骤:S1:优化查询:根据用户请求的数据表判断百万级Spatialite空间数据库是否进行了优化,若没有则进入步骤S2,有则进入步骤S5;

S2:创建虚拟表:利用SQL语句,将步骤S1中用户请求的数据表转换为虚拟表;

S3:提取图斑的斑块平均距离AvgDist,提取图斑的最小外接矩形MBR,计算由步骤S2得到的虚拟表的AvgDist;

所述步骤S3中,AvgDist的计算公式为:式中AvgDist为斑块平均距离;ΔX为提取图斑的X坐标差值;ΔY为提取图斑的Y坐标差值;n为斑块数量;i为当前斑块编号;Count(RowID)为统计字段RowID出现的行数;

ΔX的计算公式为:

ΔX=MaxX‑MinX

式中ΔX为X坐标差值;MaxX为最大X坐标;MinX为最小X坐标;

ΔY的计算公式为:

ΔY=MaxY‑MinY

式中ΔY为Y坐标差值;MaxY为最大Y坐标;MinY为最小Y坐标;

S4:图斑切片:根据由步骤S3得到的图斑的AvgDist和图斑的MBR,计算图斑切片信息,进入步骤S8;

所述步骤S4中,图斑切片信息的计算方法,包括如下步骤:S4‑1:根据由步骤S3得到的图斑的MBR,计算图斑切片的最小行号、最小列号、最大行号和最大列号;

所述步骤S4‑1中,计算公式为:MinR=int(MinX/AvgDist)式中MinR为最小行号;MinX为最小X坐标;AvgDist为斑块平均距离;

MinC=int(MinY/AvgDist)式中MinC为最小列号;MinY为最小Y坐标;AvgDist为斑块平均距离;

MaxR=int(MaxX/AvgDist)式中MaxR为最大行号;MaxX为最大X坐标;AvgDist为斑块平均距离;

MaxC=int(MaxY/AvgDist)式中MaxC为最大列号;MaxY为最大Y坐标;AvgDist为斑块平均距离;

S4‑2:根据由步骤S4‑1得到的最小行号、最小列号、最大行号和最大列号,组合得到图斑切片信息;

S5:空间查询:判断步骤S1中用户请求的数据表是否含有空间查询信息,若有则进入步骤S6,没有则进入步骤S7;

S6:计算输入图斑切片号:根据步骤S5中的空间查询信息,提取用户输入的空间坐标信息,计算其对应的图斑切片号;

S7:构建SQL:根据含有空间查询信息的数据表以及由步骤S6得到的图斑切片号,或根据不含空间查询信息的数据表,构建数据查询和数据存储的SQL语句;

S8:存/取数据:将步骤S4中得到的图斑切片信息保存到百万级Spatialite空间数据库,根据步骤S7中构建的数据查询和数据存储的SQL语句对百万级Spatialite空间数据库进行读取或存储,并返回结果信息。

2.根据权利要求1所述的百万级Spatialite空间数据库的快速查询方法,其特征在于,所述步骤S1中百万级Spatialite空间数据库是否进行了优化的判断方法,包括如下步骤:S1‑1:判断数据表是否为空间数据,若是则进入步骤S1‑2,否则进入步骤S2;

S1‑2:判断数据表是否为虚拟表,若是则进入步骤S1‑3,否则进入步骤S2;

S1‑3:判断数据表是否进行了图斑切片,若是则进入步骤S5,否则进入步骤S2。

3.根据权利要求1所述的百万级Spatialite空间数据库的快速查询方法,其特征在于,所述步骤S2中虚拟表的创建方法,包括如下步骤:S2‑1:通过SQL语句提取数据表的SQL语句定义;

S2‑2:修改数据表的SQL语句定义并创建虚拟表的SQL语句;

S2‑3:执行改写后的虚拟表的SQL语句。

4.根据权利要求1所述的百万级Spatialite空间数据库的快速查询方法,其特征在于,所述步骤S6中图斑切片号的计算方法,包括如下步骤:S6‑1:提取用户输入的空间坐标信息X’和Y’;

S6‑2:根据由步骤S6‑1得到的空间坐标信息X’和Y’,计算切片的行号和列号,计算公式为:

R=int(X'/AvgDist)式中R为切片行号;X’为用户输入的X坐标;AvgDist为斑块平均距离;

C=int(Y'/AvgDist)式中C为切片列号;Y’为用户输入的Y坐标;AvgDist为斑块平均距离;

S6‑3:根据由步骤S6‑2得到的切片的行号和列号,组合得到图斑切片号。