若转发请于明显处标明出处,若转发请于鲜明处标明出处

文章版权由作者李晓晖和天涯论坛共有,若转发请于鲜明处标明出处: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.网格索引由于对全部空间进行网格划分,假设划分粒度太细轻松并发索引冗余,借使划分粒度太大则索引效用又宏大回落。

    亿万先生官方网站: 1

b.四叉树索引同样存在三个图元标记被多少个区域所涉嫌,相应地囤积在四个叶子节点上,那样就存在索引的冗余,与网格索引存在同样的害处。

        亿万先生官方网站: 2

为越发优化索引,大家决定选取Kuga树来进行优化。

1.背景

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

a.网格索引由于对总体空间实行网格划分,若是划分粒度太细轻松并发索引冗余,假若划分粒度太大则索引成效又宏大下落。

    亿万先生官方网站: 3

b.肆叉树索引同样存在2个图元标志被多个区域所关联,相应地囤积在三个叶子节点上,那样就存在索引的冗余,与网格索引存在同样的流弊。

        亿万先生官方网站: 4

为更为优化索引,大家决定选用Tucson树来张开优化。

2.R树介绍

Lacrosse树首要利用空间划分的观念,即接纳MBSportage(Minimal Bounding
Rectangle,最小边界矩形)的章程,从叶子结点初阶用矩形(rectangle)将空间框起来,结点越往上,框住的空间就越大,以此对空间拓展分割:

        亿万先生官方网站: 5

有着的本来面目空间要素均是叶节点,那样便不会出现如肆叉树索引和网格索引中出现的半空中要素被多个索引段指点,进而现身大量冗余索引的难点。

2.R树介绍

Rubicon树重要利用空间划分的视角,即选取MBLX570(Minimal Bounding
Rectangle,最小边界矩形)的点子,从叶子结点早先用矩形(rectangle)将空间框起来,结点越往上,框住的空中就越大,以此对空间拓展划分:

        亿万先生官方网站: 6

全体的固有空间要素均是叶节点,那样便不会产出如4叉树索引和网格索引中出现的上空要素被多个索引段指点,进而出现多量冗余索引的难题。

三.基于JTS的现实性实现

JTS中提供了构建索引的方法,其能够营造4叉树索引、CR-V树索引、KD索引等。那里,我们一贯动用JTS来创设BMWX伍树索引。

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

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

三.基于JTS的实际达成

JTS中提供了构建索引的法子,其能够营造4叉树索引、宝马X3树索引、KD索引等。那里,大家一直动用JTS来营造奥迪Q3树索引。

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

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

三.1Highlander树的营造

行使GT读取到本地的SHP,获取到具备的要素集,然后遍历要素将envelope和因素新闻壹1插入至StrTree中,塑造ENVISION树:

   亿万先生官方网站: 7

三.一RAV4树的构建

应用GT读取到本地的SHP,获取到具有的要素集,然后遍历要素将envelope和因素消息1一插入至StrTree中,创设LAND树:

   亿万先生官方网站: 8

3.2基于R树的询问

将查询的上空条件构产生三个Envelope在Odyssey树中查询,对查询出来的结果再行开始展览点面关系判定:

   亿万先生官方网站: 9

三.二基于RAV4树的询问

将查询的空中条件构产生八个Envelope在大切诺基树中查询,对查询出来的结果再行进行点面关系剖断:

   亿万先生官方网站: 10

4.优化

在我们事先的两种索引方法中,大家均将引得文件保留到了地面,每一遍调用时去加载索引,如此IO是叁个一点都不小的瓶颈。今后大家创制1个器皿,将StrTree保存至该容器中。查询时,直接从内部存款和储蓄器中获取到该树。

4.优化

在大家此前的两种索引方法中,大家均将引得文件保留到了地面,每一趟调用时去加载索引,如此IO是3个非常的大的瓶颈。以往大家创制三个器皿,将StrTree保存至该容器中。查询时,直接从内部存款和储蓄器中获取到该树。

五.成效相比

5.功用相比较

5.一询问效用相比

在测试数据中当选八个特殊点(几个多边形的交接处):

   亿万先生官方网站: 11

 

分别对使用的三种索引举办了质量相比:

a.本地网格索引:

   亿万先生官方网站: 12

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

 亿万先生官方网站: 13

c.内存R树索引:

 亿万先生官方网站: 14

足见查询功能快了壹倍左右。

伍.1询问作用比较

在测试数据中选中四个特殊点(多少个多边形的交接处):

   亿万先生官方网站: 15

 

分别对应用的二种索引举办了质量相比:

a.当地网格索引:

   亿万先生官方网站: 16

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

 亿万先生官方网站: 17

c.内存R树索引:

 亿万先生官方网站: 18

看得出查询功用快了一倍左右。

5.二索引构建成效相比较

样本数量有两千七个面要素,在此以前的二种索引均接纳本地下工作具创设,时间大致是1S光景(未有具体总计)。将来应用JTS创设本田UR-V树索引,功能为:

   亿万先生官方网站: 19

伍.二索引营造功用相比

样本数量有3000三个面要素,在此以前的二种索引均接纳本地工具营造,时间大意是1S前后(未有实际总括)。现在应用JTS营造途睿欧树索引,功效为:

   亿万先生官方网站: 20

五.3占领的内部存款和储蓄器作用

此索引的优化中,大家将数据总体存入了内部存款和储蓄器。那里不可不察看内部存储器的占用量有多大。

诚如监控内有所两种方法,通过工具查看只怕代码段编写。代码段编写能够经过行使SizeOf.jar落成,工具查看能够透过jvisualvm达成:

   亿万先生官方网站: 21

原有的地头SHP数据大小为:三.8M。

网格索引大小为:肆.四M。

混合索引文件的轻重缓急为:8.四M。

而读入内部存款和储蓄器中的凯雷德树索引的尺寸为:四.三M。

由于大家存款和储蓄了要素所含有的富有音讯,理论上,假诺大家将积存新闻更是压缩,内部存款和储蓄器占用会越来越小。近年来来看,SHP数据自身的分寸,会跟存入内部存款和储蓄器的新闻大小有一贯关联。

5.三据有的内部存款和储蓄器效能

此索引的优化中,我们将数据总体存入了内部存款和储蓄器。那里不可不察看内部存款和储蓄器的占用量有多大。

相似监察和控制内有所两种办法,通过工具查看或许代码段编写。代码段编写可以透过动用SizeOf.jar完毕,工具查看能够由此jvisualvm完成:

   亿万先生官方网站: 22

本来的本土SHP数据大小为:叁.捌M。

网格索引大小为:四.四M。

混合索引文件的轻重缓急为:8.肆M。

而读入内存中的Highlander树索引的尺寸为:四.叁M。

鉴于大家存款和储蓄了要素所富含的全体音信,理论上,倘使大家将积存音讯进而回落,内部存款和储蓄器占用会越来越小。最近来看,SHP数据本人的分寸,会跟存入内部存款和储蓄器的音信大小有一向关联。

6.总结

时下目录情势任然有几点不足:

a.索引创设中的要素获取格局为地面SHP读取,需求扩展成对第二方服务数据的帮助。

b.当大切诺基数查询命中唯有三个要素时,因为小小的矩形的限量是出乎等于实际要素范围的,所以还要开始展览三回点面判别。如此,当图层要素个数本人不多时,建立索引不肯定能够加速。

 

                             —–欢迎转发,但保留版权,请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

                                                                             
假若您感觉本文确实援救了你,能够微信扫壹扫,进行小额的打赏和鼓励,多谢^_亿万先生官方网站:,^

                                                                   
                     
亿万先生官方网站: 23

 

6.总结

当前目录形式任然有几点不足:

a.索引营造中的成分别得到取格局为本土SHP读取,供给扩大成对第三方服务多少的支持。

b.当Tucson数查询命中只有七个因素时,因为小小的矩形的限定是大于等于实际要素范围的,所以还要开展二遍点面决断。如此,当图层要素个数本身不多时,建立索引不必然能够加速。

 

                             —–欢迎转发,但保留版权,请于显著处标明出处:http://www.cnblogs.com/naaoveGIS/

                                                                             
若是您认为本文确实扶助了您,能够微信扫①扫,进行小额的打赏和鞭策,谢谢^_^

                                                                   
                     
亿万先生官方网站: 24

 

相关文章

网站地图xml地图