CN103412947A - 针对空间大数据的多边形搜索方法 - Google Patents
针对空间大数据的多边形搜索方法 Download PDFInfo
- Publication number
- CN103412947A CN103412947A CN2013103750151A CN201310375015A CN103412947A CN 103412947 A CN103412947 A CN 103412947A CN 2013103750151 A CN2013103750151 A CN 2013103750151A CN 201310375015 A CN201310375015 A CN 201310375015A CN 103412947 A CN103412947 A CN 103412947A
- Authority
- CN
- China
- Prior art keywords
- space
- image data
- space image
- data
- boundary rectangle
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及二维空间图片的搜索方法,公开了一种针对空间大数据的多边形搜索方法,包括数据插入步骤以及数据搜索步骤,通过将不同的空间图片数据插入不同类型的数据库,并进行二次搜索过程,快速得到待搜索多边形的空间图片数据。本发明的优点在于,步骤简单,计算过程简化,查询步骤少,所占用的系统资源少,耗时短,适用于空间大数据的多边形搜索,具有较高的应用价值。
Description
技术领域
本发明涉及二维空间图片的搜索方法,特别涉及一种针对空间大数据的多边形搜索方法。
背景技术
随着空间技术的不断发展,空间卫星技术的不断完善,可以提供给我们越来越多且越来越清晰的空间图片数据,随之产生的问题就是如何对海量的空间图片数据存储和计算。存储自然已经有比较多的解决方案为之实现,而如何高效率地利用起这些空间图片数据却还是一个难题,如今存在的很多应用也只是用到了空间图片数据的一部分,并且功能和效率都有待提高。
因为空间图片数据的数据量之大,往往在百万级以上,而且空间图片呈菱形状而不是规则的矩形,这对图片处理起来是有不小的麻烦。因为数据量的庞大,不能直接将所有数据直接载入到内存,这即耗费宝贵的内存资源也使得系统其它功能因为资源受限收到影响,当然如果数据量还比较小在百万级之内这个方案还是可以接受的,毕竟在内存中处理起来效率很高。另一点就是每一张空间图片都有着不规定的字段信息,这很难用标准的SQL格式去存储。现在存在的很多技术基本上就是采用MySQL然后带着大量的字段,只要可能会出现的字段都有,这样对某一条数据来说只有部分字段是有用的,大量null值的存在浪费了大量的存储空间。同时考虑到数据量大的特点,近期技术越来越成熟的NoSQL实为一个比较好的存储方案,但其最大的缺点就在于对于Value的索引搜索效率是比较低的,在这个数量级的数据上进行对Value中某个字段的过滤,这不仅太耗费时间而且对整个存储系统的稳定性影响很大。分布式存储NoSQL和分布式计算MapReduce的配合适合于定期启动的统计计算,而不适合于即时查询。当然可以使用多台计算机分布式地对NoSQL进行搜索查询,用增加并发的方法来提高搜索效率当然是有明显效果的,但是这样无论是硬件成本还是代码编程上的难度都比较大。
空间图片数据因为它的菱形结构,有着五对经纬度坐标(还有一对是中心坐标)来表示其形状结构,这么多的字段信息是非常不利于搜索的,而且这样索引结构也很难建立。而现有的空间图片数据搜索方法,通常是建立在矩形或者正方形的二维数据的基础上的,在应用菱形的空间图片数据时,只能对空间图片数据进行分割或者进行近似搜索,计算步骤繁琐,计算量巨大,且无法获得较为精确的结果。此外,现有技术过于倚重数据库的检索以及关系型数据库的字段构建,在处理不规则的菱形空间图片数据时,处理时间过长,效率不高。因此,有必要研究一种更为精确,搜索过程耗时更短,适用于空间图片数据搜索的方法。
发明内容
本发明针对现有技术无法很好地应用于菱形的空间图片数据的缺点,提供了一种针对空间大数据的多边形搜索方法。
为实现上述目的,本发明可采取下述技术方案:
针对空间大数据的多边形搜索方法,包括以下具体步骤:
数据插入步骤:1)在将空间图片数据插入到存储系统之前,根据空间图片数据的形状坐标计算得到空间图片数据的最小外接矩形,即空间图片最小外接矩形;2)将空间图片数据存入非关系型数据库,得到空间图片最小外接矩形与空间图片数据的一对一关系的索引,将空间图片最小外接矩形的经纬度坐标和索引存入关系型数据库;
数据搜索步骤:1)计算二维地图内的待搜索多边形区域的最小外接矩形,在关系型数据库中进行矩形的坐标匹配搜索;所述坐标匹配搜索包括,遍历关系型数据库中存储的空间图片最小外接矩形,判断空间图片最小外接矩形的任一顶点是否位于待搜索多边形区域的最小外接矩形的范围内,保留所有与待搜索多边形区域的最小外接矩形相交的空间图片最小外接矩形;2)根据所述索引,由非关系型数据库中得到与所述保留得到的空间图片最小外接矩形相对应的空间图片数据,将所得到的空间图片数据加载至内存,遍历内存中的空间图片数据,保留与待搜索多边形区域相交的空间图片数据,即得到待搜索多边形区域的空间图片数据。
作为优选,所述关系型数据库为SQL数据库;所述非关系型数据库为NoSQL。
作为优选,所述数据搜索步骤中,步骤2)还包括,对任一空间图片数据,分别制作由空间图片数据的4个顶点向待搜索多边形区域内部发射的直线,如果任一顶点所发射的直线与待搜索多边形区域存在偶数个交点,该空间图片数据即和待搜索多边形区域相交,保留该空间图片数据。
本发明由于采用了以上技术方案,具有显著的技术效果:
本发明是一种加快对空间图片在坐标空间中的搜索效率的方法。它适用于处理海量的空间图片的坐标范围搜索问题。相比现有的空间图片搜索技术,搜索效率更高。
本发明通过引入最小近似矩形,将不规则的菱形数据转化为更为规范,计算更为简洁的矩形;同时,在第一次模糊搜索时采用最小近似矩阵进行搜索,在第二次精确搜索时,将第一次模糊搜索后得到的空间图片数据直接加载至内存中,直接进行多边形相交性检验,所得到的搜索结果极为精确,同时搜索时间相较现有的空间图片搜索方法大为缩短。
进一步地,本发明通过结合NoSQL和SQL的功能,将空间图片的海量存储和不规则字段这个需求交给NoSQL来处理,而针对固定坐标值的范围搜索则交给MySQL来处理。利用非关系型数据库和关系型数据库各自的优点,对空间图片相关数据进行区分存储,避免了单纯利用关系型数据库保存时产生的大量字段的缺点,在保留关系型数据库检索方便的优点的同时,引入了非关系型数据库对不规则字段信息的处理优势,同时避免了在应用非关系型数据库的过程中,由于不确定的数据结构所导致处理上的麻烦。
此外,第二次搜索为精确搜索,因此直接采用了多边形对比,通过检验多边形与直线的交点的方法,简化了计算过程,进一步加快了搜索过程,提高了搜索效率。
附图说明
图1为数据插入步骤的流程示意图。
图2为数据搜索步骤的流程示意图。
具体实施方式
下面结合实施例对本发明作进一步的详细描述。
实施例1
具体实施方式如下,如图1、2所示:
准备工作:
1) 在不同的机器或集群上搭建MongoDB和MySQL,都确保正确运行起来。
2) 在MySQL中建立可以保存两对坐标值和另一个索引字段的表,并建立对这两对坐标值的四字段组合索引。
数据插入工作:
1) 新的空间图片数据插入到存储系统之前,根据其空间图片数据的菱形顶点坐标计算出该空间图片数据的最小外接矩形。
具体为:将新图片存入分布式文件系统NoSQL,同时对图片计算最小外接矩形,然后将矩形的两对坐标存入MySQL中。新文件存入分布式文件系统时,对图片的坐标计算其最小外接矩形,计算左上角(经度最小值, 纬度最大值),右下角(经度最大值, 纬度最小值),因为图片都是在中国地图范围内部,然后将这两对坐标和存入NoSQL中对应的索引号存入MySQL中即可。MySQL中设定好的组合索引会对新加入的坐标数据做好索引,方便查询。
2) 将空间图片数据所有信息存入NoSQL,将最小外接矩形的经纬度坐标和对NoSQL数据一对一关系的索引存入MySQL。
搜索数据工作:
1) 对二维地图上的搜索图形计算最小外接矩形,并利用SQL语句和组合索引在MySQL中进行最小外接矩形的过滤计算得到第一轮的模糊过滤结果。该轮搜索为模糊搜索,搜索的对象为最小外接矩形,具体步骤为:
对二维地图上画出来的多边形搜索区域也进行最小外接矩形计算,在MySQL中进行矩形坐标匹配搜索。
对二维地图上画出来的多边形搜索区域也进行最小外接矩形计算,也得到两对坐标值,(x1, y1)和(x2, y2),因为中国范围内的经纬度关系,我们可以得到0 < x1 < x2 < 180,0 < y2 < y1 < 90,这样就可以在MySQL中进行矩形的坐标匹配搜索,设MySQL中存储的两对坐标值字段分别为:x01, y01, x02, y02,这样SQL中的比较关系就有四条(对图片所在矩形的四个点,判断每个点是否在搜索矩形范围内),只要满足其中一条就符合:
x01 > x1 && x01 < x2 && y01 < y1 && y01 > y2 对于(x01, y01)
x02 > x1 && x02 < x2 && y01 < y1 && y01 > y2 对于(x02, y01)
x01 > x1 && x01 < x2 && y02 < y1 && y02 > y2 对于(x01, y02)
x02 > x1 && x02 < x2 && y02 < y1 && y02 > y2 对于(x02, y02)
整合后的判断关系就如下所示:
Flag = (x01 > x1 && x01 < x2 && ((y01 < y1 && y01 > y2) || (y02 < y1 && y02 > y2))) || (x02 > x1 && x02 < x2 && ((y01 < y1 && y01 > y2) || (y02 < y1 && y02 > y2)))
只要最后Flag的值为true,就可以得知此空间图形的最小外接矩形和搜索区域的最小外接矩形相交,虽然这不一定空间图形就和搜索区域真正相交了,但是最后的成功概率是很大的,这种方法帮助筛去了大部分不符合条件的数据。
这一轮筛选比较花时间,因为一开始的数据集大小太大,而且搜索条件也比较复杂,最后还要加上数据库和程序之间的通讯时间,这一轮筛选所占用的时间基本占到全部时间的90%以上。
2) 在程序内存中使用多边形过滤方法进行第二次图片结果过滤,得到精确的过滤结果。具体搜索步骤为:
对上一步中得到的第一轮过滤的空间图片数据进行多边形过滤,得到正确的数据集。
第一轮筛选过后,数据集已经变得很小,几千个到几万个数据而已,这一轮的筛选算法虽然比较复杂,但是花费的时间却是比较少的。
我们这里采用遍历菱形的空间图片的四个顶点,只要判断得到其中任意一个点在搜索多边形之内,就说明图片和搜索区域相交。而至于判断一个点是否在一个多边形区域范围内,则只要沿着这个点向左画一条射线,统计这条射线与多边形所有边的交点个数,如果交点个数为奇数就表明这个点在多边形的内部,交点个数为偶数就表明这个点在多边形的外部。
程序实现代码如下:
/**
* 判断p点向左的射线,是否穿过s1与s2连接的线段
* Point.getLng()方法表示得到点p的精度,getLat()方法得到纬度
* param p
* param s1
* param s2
* return true or false
*/
public static boolean judgePointLeftCrossSegment(Point p, Point s1, Point s2){
Point up, down;
if(s1.getLat() <= s2.getLat()){
down = s1;up = s2;
}
else{
up = s1;down = s2;
}
if(down.getLat() <= p.getLat() && up.getLat() >= p.getLat()){
double crossX = s2.getLng() + (s2.getLng() - s1.getLng())
/ (s2.getLat() - s1.getLat()) * (p.getLat() - s2.getLat());
if(p.getLng() >= crossX){
return true;
}
}
return false;
}
总之,以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所作的均等变化与修饰,皆应属本发明专利的涵盖范围。
Claims (3)
1.一种针对空间大数据的多边形搜索方法,其特征在于,包括以下具体步骤:
数据插入步骤:1)在将空间图片数据插入到存储系统之前,根据空间图片数据的形状坐标计算得到空间图片数据的最小外接矩形,即空间图片最小外接矩形;2)将空间图片数据存入非关系型数据库,得到空间图片最小外接矩形与空间图片数据的一对一关系的索引,将空间图片最小外接矩形的经纬度坐标和索引存入关系型数据库;
数据搜索步骤:1)计算二维地图内的待搜索多边形区域的最小外接矩形,在关系型数据库中进行矩形的坐标匹配搜索;所述坐标匹配搜索包括,遍历关系型数据库中存储的空间图片最小外接矩形,判断空间图片最小外接矩形的任一顶点是否位于待搜索多边形区域的最小外接矩形的范围内,保留所有与待搜索多边形区域的最小外接矩形相交的空间图片最小外接矩形;2)根据所述索引,由非关系型数据库中得到与所述保留得到的空间图片最小外接矩形相对应的空间图片数据,将所得到的空间图片数据加载至内存,遍历内存中的空间图片数据,保留与待搜索多边形区域相交的空间图片数据,即得到待搜索多边形区域的空间图片数据。
2.根据权利要求1所述的针对空间大数据的多边形搜索方法,其特征在于,所述关系型数据库为SQL数据库;所述非关系型数据库为NoSQL。
3.根据权利要求1所述的针对空间大数据的多边形搜索方法,其特征在于,所述数据搜索步骤中,步骤2)还包括,对任一空间图片数据,分别制作由空间图片数据的4个顶点向待搜索多边形区域内部发射的直线,如果任一顶点所发射的直线与待搜索多边形区域存在偶数个交点,该空间图片数据即和待搜索多边形区域相交,保留该空间图片数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013103750151A CN103412947A (zh) | 2013-08-26 | 2013-08-26 | 针对空间大数据的多边形搜索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013103750151A CN103412947A (zh) | 2013-08-26 | 2013-08-26 | 针对空间大数据的多边形搜索方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103412947A true CN103412947A (zh) | 2013-11-27 |
Family
ID=49605959
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013103750151A Pending CN103412947A (zh) | 2013-08-26 | 2013-08-26 | 针对空间大数据的多边形搜索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103412947A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103810269A (zh) * | 2014-01-28 | 2014-05-21 | 浙江大学 | 一种基于大内存的地图搜索方法 |
CN106681524A (zh) * | 2015-11-10 | 2017-05-17 | 阿里巴巴集团控股有限公司 | 一种信息处理的方法及装置 |
CN106708837A (zh) * | 2015-08-18 | 2017-05-24 | 高德软件有限公司 | 兴趣点搜索方法、装置 |
CN107479871A (zh) * | 2017-06-30 | 2017-12-15 | 广东南方数码科技股份有限公司 | 一种海量的矢量数据的访问和渲染方法、电子设备及存储介质 |
CN109101265A (zh) * | 2017-06-14 | 2018-12-28 | 中国移动通信集团重庆有限公司 | 灰度发布的方法和系统 |
CN109214613A (zh) * | 2017-06-29 | 2019-01-15 | 北京京东尚科信息技术有限公司 | 一种自动分配任务的方法、装置、电子设备以及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060287815A1 (en) * | 2005-06-21 | 2006-12-21 | Mappick Technologies, Llc. | Navigation system and method |
CN1967537A (zh) * | 2005-11-14 | 2007-05-23 | 富士胶片株式会社 | 地标搜索系统、地图数据以及分类图像数据的方法 |
CN101071431A (zh) * | 2007-01-31 | 2007-11-14 | 腾讯科技(深圳)有限公司 | 基于关键图形为搜索条件进行图象搜索的方法及系统 |
CN101350013A (zh) * | 2007-07-18 | 2009-01-21 | 北京灵图软件技术有限公司 | 一种地理信息的搜索方法和系统 |
CN101719140A (zh) * | 2009-12-23 | 2010-06-02 | 中山大学 | 一种图形检索方法 |
CN102938066A (zh) * | 2012-12-07 | 2013-02-20 | 南京大学 | 一种基于多元数据重建建筑物外轮廓多边形的方法 |
-
2013
- 2013-08-26 CN CN2013103750151A patent/CN103412947A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060287815A1 (en) * | 2005-06-21 | 2006-12-21 | Mappick Technologies, Llc. | Navigation system and method |
CN1967537A (zh) * | 2005-11-14 | 2007-05-23 | 富士胶片株式会社 | 地标搜索系统、地图数据以及分类图像数据的方法 |
CN101071431A (zh) * | 2007-01-31 | 2007-11-14 | 腾讯科技(深圳)有限公司 | 基于关键图形为搜索条件进行图象搜索的方法及系统 |
CN101350013A (zh) * | 2007-07-18 | 2009-01-21 | 北京灵图软件技术有限公司 | 一种地理信息的搜索方法和系统 |
CN101719140A (zh) * | 2009-12-23 | 2010-06-02 | 中山大学 | 一种图形检索方法 |
CN102938066A (zh) * | 2012-12-07 | 2013-02-20 | 南京大学 | 一种基于多元数据重建建筑物外轮廓多边形的方法 |
Non-Patent Citations (1)
Title |
---|
韩雪龙: "基于地理空间的空间数据存储与检索研究", 《中国优秀硕博士学位论文全文数据库(硕士)信息科技辑》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103810269A (zh) * | 2014-01-28 | 2014-05-21 | 浙江大学 | 一种基于大内存的地图搜索方法 |
CN106708837A (zh) * | 2015-08-18 | 2017-05-24 | 高德软件有限公司 | 兴趣点搜索方法、装置 |
CN106681524A (zh) * | 2015-11-10 | 2017-05-17 | 阿里巴巴集团控股有限公司 | 一种信息处理的方法及装置 |
CN109101265A (zh) * | 2017-06-14 | 2018-12-28 | 中国移动通信集团重庆有限公司 | 灰度发布的方法和系统 |
CN109101265B (zh) * | 2017-06-14 | 2021-11-23 | 中国移动通信集团重庆有限公司 | 灰度发布的方法和系统 |
CN109214613A (zh) * | 2017-06-29 | 2019-01-15 | 北京京东尚科信息技术有限公司 | 一种自动分配任务的方法、装置、电子设备以及存储介质 |
CN107479871A (zh) * | 2017-06-30 | 2017-12-15 | 广东南方数码科技股份有限公司 | 一种海量的矢量数据的访问和渲染方法、电子设备及存储介质 |
CN107479871B (zh) * | 2017-06-30 | 2020-09-18 | 广东南方数码科技股份有限公司 | 一种海量的矢量数据的访问和渲染方法、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103412947A (zh) | 针对空间大数据的多边形搜索方法 | |
US10585948B2 (en) | Method and device for constructing spatial index of massive point cloud data | |
CN106709067B (zh) | 一种基于Oracle数据库的多源异构空间数据流转方法 | |
US9965821B2 (en) | Fully parallel in-place construction of 3D acceleration structures in a graphics processing unit | |
CN102736898B (zh) | 一种适用于多核cpu的矢量数据并行绘制方法和装置 | |
CN105786808B (zh) | 一种用于分布式执行关系型计算指令的方法与设备 | |
Najdataei et al. | Continuous and parallel lidar point-cloud clustering | |
CN106933833B (zh) | 一种基于空间索引技术的位置信息快速查询方法 | |
US20150269215A1 (en) | Dependency-aware transaction batching for data replication | |
KR102392100B1 (ko) | 시각 위치 확인 지도 저장 및 로딩 방법, 장치, 시스템 및 저장 매체 | |
CN113268557B (zh) | 一种适应显示导向型可视化分析的快速的空间索引方法 | |
CN109241159B (zh) | 一种数据立方体的分区查询方法、系统及终端设备 | |
CN106709503B (zh) | 一种基于密度的大型空间数据聚类算法k-dbscan | |
CN110765331A (zh) | 一种时空数据的检索方法及系统 | |
CN105653716A (zh) | 一种基于分类-属性-值的数据库构造方法和构造系统 | |
CN109766337B (zh) | 树形结构数据的存储方法、电子设备、存储介质及系统 | |
CN112424767A (zh) | 多维数据库环境中的虚拟立方体中进行实时数据聚合的系统和方法 | |
CN113177058A (zh) | 基于复合条件的地理位置信息检索方法及系统 | |
WO2020114273A1 (zh) | 商户查找方法、装置、电子设备和存储介质 | |
CN105447064B (zh) | 一种电子地图数据制作及其使用方法和装置 | |
US20190065528A1 (en) | Data import and reconciliation | |
Guo et al. | A 3D surface reconstruction method for large-scale point cloud data | |
CN103106254A (zh) | 多边形矢量数据文件的并行拼接方法 | |
CN113722415B (zh) | 点云数据的处理方法、装置、电子设备及存储介质 | |
CN115952252A (zh) | 数据处理方法、装置、电子设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20131127 |
|
RJ01 | Rejection of invention patent application after publication |