[发明专利]一种基于Lucene的林地图斑矢量数据查询方法有效
申请号: | 201610604450.0 | 申请日: | 2016-07-21 |
公开(公告)号: | CN106294575B | 公开(公告)日: | 2019-11-05 |
发明(设计)人: | 张煜星;黄国胜;许等平;王雪军;任怡;党永峰;蒲莹;杜震洪;罗鹏 | 申请(专利权)人: | 国家林业和草原局调查规划设计院 |
主分类号: | G06F16/29 | 分类号: | G06F16/29;G06F16/31 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100714 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于Lucene的林地图斑矢量数据查询方法。该方法包括以下步骤:确定网格大小,对林地图斑矢量数据进行格式转换,对于转换后的数据进行网格划分;对于网格划分后的数据建立全文索引,按查询条件返回相应数据。本方法通过将二维林地图斑矢量数据进行网格划分并映射到一维字符串索引,使之能够使用Lucene全文检索引擎库进行检索,从而提供了高效的林地图斑矢量数据全文检索方法。 | ||
搜索关键词: | 一种 基于 lucene 林地 矢量 数据 查询 方法 | ||
【主权项】:
1.一种基于Lucene的林地图斑矢量数据查询方法,所述方法包括如下步骤:1)、确定网格大小:根据输入的数据范围及网格阶数,计算网格大小,具体为:1.1)、获取输入的数据范围:经度范围:[lng起,lng终],纬度范围:[lat起,lat终],其中,lng起表示经度的起点,lng终表示经度的终点,lat起表示纬度的起点,lat终表示纬度的终点;1.2)、获取输入的网格阶数z;1.3)、计算网格的长度ding与宽度dlat:
2)、对林地图斑矢量数据进行格式转换:对于输入的林地图斑矢量文件,采用OGR接口注册相应矢量格式驱动程序,读取矢量文件的每一图层,并记录图层中每一图斑要素的属性信息,以及将所述图斑要素的空间信息以WKT格式记录,具体为:2.1)、使用OGR接口,注册矢量格式驱动程序;2.2)、打开林地专题图数据源;2.3)、对于每一个矢量文件,遍历所述矢量文件的每一个图层的信息;2.4)、对于每一个图层,遍历所述每一个图层的每一个图斑要素的信息;2.5)、获取图斑要素的多个属性信息及空间信息;2.6)、以“图斑ID_属性1的信息_…_属性n的信息_WKT格式空间信息”的格式记录每一图斑要素信息,其中n表示属性的数量;3)、对格式转换后的数据进行网格划分:对于获得的WKT格式的图斑数据t,计算所述数据t的空间范围,从而确定所述数据t的网格范围,对于网格范围内的每一个网格,将所述网格与所述图斑数据t求交,获得相交多边形i,将图斑数据t的多个属性赋给相交多边形i,并为相交多边形i新建字段以保存所在网格号及原图斑数据t的WKT格式的空间信息,具体为:3.1)、对于记录的图斑数据t,获取其空间范围:经度范围:[lngmin,lngmax],纬度范围:[latmin,latmax],其中,lngmin表示经度范围的最小值,lngmax表示经度范围的最大值,latmin表示纬度范围的最小值,latmax表示纬度范围的最大值;3.2)、确定图斑数据t的网格行列号范围:![]()
其中,colmin表示图斑空间范围网格化划分后列号的最小值,colmax表示图斑空间范围网格化划分后列号的最大值,rowmin表示图斑空间范围网格化划分后行号的最小值,rowmax表示图斑空间范围网格化划分后行号的最大值;3.3)、对于图斑空间范围进行网格化划分的行列号(col,row)所确定的网格,计算该网格边界为:gminlng=lng起+col×dlng;gmaxlng=lng起+(col+1)×dlng;gminlat=lat起+row×dlat;gmaxlat=lat起+(row+1)×dlat;其中,col表示图斑空间范围进行网格化划分的列号,row表示图斑空间范围进行网格化划分的行号,gminlng表示网格的最小经度值,gmaxlng表示网格的最大经度值,gminlat表示网格的最小纬度值,gmaxlat表示网格的最大纬度值;3.4)、根据gminlng、gmaxlng、gminlat、gmaxlat建立网格多边形grid,并与图斑数据t求交,得到相交多边形i;3.5)、以“图斑数据t的ID_图斑数据t属性1的信息_…_图斑数据t属性m的信息_图斑数据t的WKT格式空间信息_相交多边形i的网格号_相交多边形i的WKT格式空间信息”的格式记录相交多边形i的信息,其中m表示图斑数据t的属性的数量;4)、对于网格划分后的数据建立全文索引:对于网格划分所得的相交多边形i,计算该相交多边形i的最小外包矩形mbr;采用Lucene类库对相交多边形i的多个属性信息及最小外包矩形建立索引,并将索引保存至对应的网格所确定的目录中,具体为:4.1)、对于相交多边形i,获取其最小外包矩形mbr;4.2)、采用Lucene类库,创建IndexWriter对象,并将该IndexWriter对象指向由格网号(col,row)确定的目录;4.3)、采用Lucene类库,创建文档Document对象,并将相交多边形i的多个属性信息建立索引后加入该文档Document对象,并采用Lucene中的Spatial类对最小外包矩形mbr的空间信息建立索引后加入该文档Document对象;4.4)、采用Lucene类库,将该文档Document对象加入IndexWriter,执行IndexWriter后将其关闭;5)、按查询条件返回相应数据:对于输入的查询条件,根据其中的空间信息条件先判断其搜索网格范围,获取相应目录下的索引,进而采用Lucene类库根据输入条件查询相应索引,过滤重复数据后返回符合结果,具体为:5.1)、获取输入的查询条件中的空间范围:经度范围:[slngmin,slngmax],纬度范围:[slatmin,slatmax],其中,slngmin表示查询条件中的空间范围的最小经度值,slngmax表示查询条件中的空间范围的最大经度值,slatmin表示查询条件中的空间范围的最小纬度值,slatmax表示查询条件中的空间范围的最大纬度值;5.2)、计算其对应的网格号范围:列号范围:[scolmin,scolmax],行号范围:[srowmin,srowmax],其中,scolmin表示查询条件中的空间范围网格化划分后的列号的最小值,scolmax表示查询条件中的空间范围网格化划分后的列号的最大值,srowmin表示查询条件中的空间范围网格化划分后的行号的最小值,srowmax表示查询条件中的空间范围网格化划分后的行号的最大值;5.3)、根据查询条件中的空间范围网格化划分后的行列号(scol,srow)获取相应目录下的索引;5.4)、根据查询条件中的空间信息,采用Lucene中的Spatial类对于所获索引进行过滤;5.5)、根据查询条件中的非空间信息,采用Lucene类库对于过滤后的索引进行查询;5.6)、根据所得查询结果中的图斑ID信息进行去除重复,返回去重后的记录。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国家林业和草原局调查规划设计院,未经国家林业和草原局调查规划设计院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610604450.0/,转载请声明来源钻瓜专利网。
- 上一篇:一种高频头
- 下一篇:一种android系统存储空间的清理方法及系统