betway88体育冲R树索引的点面关系判断及效率优化统计。基于R树索引的点面关系判断及效率优化统计。

文章版权由作者李晓晖同博客园共有,若转载请叫大庭广众处于标明出处:http://www.cnblogs.com/naaoveGIS/

章版权由作者李晓晖与博客园共有,若转载请让大庭广众处于标明出处:http://www.cnblogs.com/naaoveGIS/

1.背景

于之前的博客中,我分别介绍了因网格的半空中引得(http://www.cnblogs.com/naaoveGIS/p/5148185.html)以及四叉树和网格结合的联合索引(http://www.cnblogs.com/naaoveGIS/p/6641449.html),要解决的问题均是判断一个点落在了面图层中的哪个面要素中。单从算法层面上分析,以上两种索引均有一些弊端:

a.网格索引由于对总体空间进行网格划分,如果分粒度太细容易出现索引冗余,如果分粒度太好则寻引效率又大降低。

    betway88体育 1

b.四叉树索引同样有一个图元标识被多个区域所涉及,相应地囤积在差不多只叶子节点上,这样便有索引的冗余,与网格索引存同样的坏处。

        betway88体育 2

为更加优化索引,我们决定采取R树来进行优化。

1.背景

于前面的博客中,我分别介绍了根据网格的空中引得(http://www.cnblogs.com/naaoveGIS/p/5148185.html)以及四叉树和网格结合的联合索引(http://www.cnblogs.com/naaoveGIS/p/6641449.html),要解决的问题均是判断一个点落在了面图层中的哪个面要素中。单从算法层面上分析,以上两种索引均有一些弊端:

a.网格索引由于针对全空间进行网格划分,如果分粒度太密切容易并发索引冗余,如果分粒度太可怜则寻引效率又宏大回落。

    betway88体育 3

b.四叉树索引同样在一个图元标识被多个区域所干,相应地囤积在多只叶子节点上,这样便有索引的冗余,与网格索引存同样的弊病。

        betway88体育 4

呢进一步优化索引,我们决定采用R树来展开优化。

2.R树介绍

R树要运用空间划分的见解,即采用MBR(Minimal Bounding
Rectangle,最小边界矩形)的点子,从叶子结点开始用矩形(rectangle)将空间约起来,结点越向上,框住的上空就更充分,以此对空中拓展分割:

        betway88体育 5

所有的原有空间要素都是叶节点,这样尽管不会见产出而四叉树索引和网格索引中冒出的半空中要素为多单寻引段指引,进而出现大量冗余索引的题目。

2.R树介绍

R树要以空间划分的看法,即以MBR(Minimal Bounding
Rectangle,最小边界矩形)的方式,从叶子结点开始用矩形(rectangle)将空间约起来,结点越为上,框住的长空就进一步老,以此对空间拓展划分:

        betway88体育 6

备的原本空间要素全都是叶节点,这样就是不见面并发如四叉树索引和网格索引中出现的上空要素吃多个寻引段指引,进而出现大量冗余索引的题材。

3.因JTS的具体落实

JTS中提供了构建索引的法门,其可构建四叉树索引、R树索引、KD索引等。这里,我们一直行使JTS来构建R树索引。

JTS的介绍:https://en.wikipedia.org/wiki/JTS_Topology_Suite

JTS的源码下载:https://sourceforge.net/projects/jts-topo-suite/?source=navbar

3.因JTS的切切实实落实

JTS中提供了构建索引的办法,其好构建四叉树索引、R树索引、KD索引等。这里,我们直接行使JTS来构建R树索引。

JTS的介绍:https://en.wikipedia.org/wiki/JTS_Topology_Suite

JTS的源码下载:https://sourceforge.net/projects/jts-topo-suite/?source=navbar

3.1R树的构建

采取GT读博到本地的SHP,获取到拥有的要素集,然后遍历要素将envelope和要素信息一一插入到StrTree中,构建R树:

   betway88体育 7

3.1R树的构建

运GT读博到地面的SHP,获取到所有的要素集,然后遍历要素将envelope和要素信息一一插入到StrTree中,构建R树:

   betway88体育 8

3.2冲R树的查询

用查询的空间法构造成一个Envelope在R树中查询,对查询出来的结果再行进行点面关系判断:

   betway88体育 9

3.2冲R树的询问

用查询的半空中法构造成一个Envelope在R树中询问,对查询出来的结果又开展点面关系判断:

   betway88体育 10

4.优化

于咱们之前的蝇头种植索引方法吃,我们皆用引得文件保留及了地面,每次调用时失去加载索引,如此IO是一个老大怪之瓶颈。现在我们创建一个器皿,将StrTree保存至该容器被。查询时,直接从外存中获取到该树。

4.优化

在咱们之前的简单栽索引方法吃,我们皆用引得文件保留及了地面,每次调用时失去加载索引,如此IO是一个怪特别的瓶颈。现在我们创建一个容器,将StrTree保存至该容器中。查询时,直接从内存中获取到该树。

5.效率对比

5.效率对比

5.1询问效率比

在测试数据遭到选中一个特殊点(多单多边形的交接处):

   betway88体育 11

 

分级指向运用的老三种植索引进行了性能比:

a.本地网格索引:

   betway88体育 12

b.本地混合索引(四叉树与网格索引整合):

 betway88体育 13

c.内存R树索引:

 betway88体育 14

看得出查询效率快了一如既往倍增左右。

5.1查询效率比

以测试数据被当选一个特殊点(多只多边形的交接处):

   betway88体育 15

 

各自针对动的老三栽索引进行了性比:

a.本地网格索引:

   betway88体育 16

b.本地混合索引(四叉树与网格索引整合):

 betway88体育 17

c.内存R树索引:

 betway88体育 18

足见查询效率快了千篇一律倍左右。

5.2寻觅引构建效率比

样本数来2000基本上单面要素,之前的点滴栽检索引均使用当地工具构建,时间约是1S前后(没有实际统计)。现在应用JTS构建R树索引,效率为:

   betway88体育 19

5.2查找引构建效率比

样本数量有2000大抵独面要素,之前的少种植检索引均以当地工具构建,时间大约是1S光景(没有切实可行统计)。现在使用JTS构建R树索引,效率也:

   betway88体育 20

5.3占的内存效率

此索引的优化中,我们以数据总体存入了内存。这里要察看内存的占用量有差不多非常。

貌似监控内装有两种植方式,通过工具查看或代码段编写。代码段编写好由此采用SizeOf.jar实现,工具查看可以经过jvisualvm实现:

   betway88体育 21

本来的本地SHP数据大小也:3.8M。

网格索引大小也:4.4M。

混合索引文件的分寸也:8.4M。

若读入内存中的R树索引的高低为:4.3M。

出于我们囤了要素所含有的持有信息,理论及,如果我们将积存信息更是削减,内存占用会又小。目前来拘禁,SHP数据我的大大小小,会跟存入内存的信息大小来一直关联。

5.3据为己有的内存效率

此索引的优化中,我们用数据全存入了内存。这里不可不着眼内存的占用量有多充分。

诚如监控内具备两栽方法,通过工具查看或代码段编写。代码段编写得经过动SizeOf.jar实现,工具查看可以透过jvisualvm实现:

   betway88体育 22

原来之本土SHP数据大小为:3.8M。

网格索引大小为:4.4M。

混合索引文件之大小为:8.4M。

只要念入内存中的R树索引的尺寸也:4.3M。

由于我们囤了要素所蕴含的具有消息,理论及,如果我们以积存信息更为减少,内存占用会还有些。目前来拘禁,SHP数据我的高低,会跟存入内存的信息大小有直接关系。

6.总结

现阶段目录方式任然有几乎点不足:

a.索引构建中的元素获取方式啊本地SHP读取,需要扩大成对第三正值服务数量的支持。

b.当R数查询命中不过来一个元素时,因为极度小矩形的克是超过等于实际要素范围之,所以还要进行相同不善点面判断。如此,当图层要素个数本身不多时,建立索引不必然可以加快。

 

                             —–欢迎转载,但保留版权,请给大庭广众处于标明出处:http://www.cnblogs.com/naaoveGIS/

                                                                             
如果你看本文确实帮了您,可以微信扫一扫,进行小额的打赏和鼓励,谢谢
^_^

                                                                   
                     
betway88体育 23

 

6.总结

现阶段目录方式任然有几乎接触不足:

a.索引构建中的元素获取方式啊当地SHP读取,需要扩大成对第三正值服务数量的支撑。

b.当R数查询命中仅发一个因素时,因为极度小矩形的限量是凌驾等于实际要素范围的,所以还要开展同样糟糕点面判断。如此,当图层要素个数本身不多时,建立索引不肯定好加快。

 

                             —–欢迎转载,但保留版权,请叫大庭广众处于标明出处:http://www.cnblogs.com/naaoveGIS/

                                                                             
如果你看本文确实帮了若,可以微信扫一扫,进行小额的打赏和鼓励,谢谢
^_^

                                                                   
                     
betway88体育 24

 

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注