面空间数据中网格索引和四叉树索引的做及优化的均等栽方案。面空间数据中网格索引和四叉树索引的结缘及优化的同样栽方案。

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

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

1.背景

对判断一个点落在面图层中谁要素上之需,在自身前的博客:WebGIS中相同种植根据网格索引判断点面关系之措施(http://www.cnblogs.com/naaoveGIS/p/5148185.html)中生出详细的叙述。其规律大致为:

             图片 1

彼拍卖步骤为:

                     图片 2

1.背景

对判断一个点落在面图层中谁要素上之求,在自己前面的博客:WebGIS中一律种植根据网格索引判断点面关系之法(http://www.cnblogs.com/naaoveGIS/p/5148185.html)中有详细的叙述。其规律大致为:

             图片 3

那个处理步骤为:

                     图片 4

2.时网格索引的几乎单毛病

a.网格索引方案分为了一个目录文件和一个数据文件,任何要进入时均会预先念取索引文件,再读取数据文件,那么大容易并发资源争快状态,不便民并发支持。

b.网格的尺寸会重影响至查询效率,但是要网格建立之足够小,那么索引文件不断增大,同样会招磁盘寻址花费的工夫多。

c.数据的读取一定要是经过少不良IO,一不行读索引,一不善读数据,会潜移默化读取效率。

2.当下网格索引的几个毛病

a.网格索引方案分为了一个目录文件以及一个数据文件,任何要进入时全会事先念取索引文件,再读取数据文件,那么坏容易出现资源争快状态,不便宜并发支持。

b.网格的高低会重影响至查询效率,但是若网格建立之够小,那么索引文件不断叠加,同样会造成磁盘寻址花费的时间增加。

c.数据的读取一定要透过少坏IO,一差读索引,一差读数据,会影响读取效率。

3.方案的优化,基于网格索引的索引四叉树划分

季叉树、R树等清一色是空间索引常用之算法,这里自己选使用四叉索引来进行进一步优化。四叉树索引原理非常简单,即用一个限根据深度,不断平分,如图所示:

                     图片 5

此间优化思路是:将要素首先进行四叉树平分,然后对每个叶子节点包含的限重新拓展网格索引生成:

            图片 6

3.方案的优化,基于网格索引的索引四叉树划分

季叉树、R树等统统是空间索引常用之算法,这里自己选使用四叉索引来进行更加优化。四叉树索引原理非常简单,即用一个限根据深度,不断平分,如图所示:

                     图片 7

此优化思路是:将要素首先进行四叉树平分,然后对每个叶子节点包含的范围重新拓展网格索引生成:

            图片 8

4.优化方案的详细描述

4.优化方案的详细描述

4.1追寻引的转步骤

a.首先生成为数据文件。

b.通过设置的四叉树深度,算有叶子节点的个数。然后经过获得到的元素四斗坐标,算有叶子节点的四角范围:leafminx、leafminy、leafmaxx、leafmaxy。

c.因要素个数和网格因子,算有成套范围外网格的个数,用任何范围之季角坐标与网格因子计算,得出一个网格的BlockXsize和BlokcYsize。

d.针对每个叶子节点,建立该节点的网格索引,索引中带有了网格与素的相应关系。

浮动文书截图:

                        图片 9

4.1搜寻引的变通步骤

a.首先生化作数据文件。

b.通过安装的四叉树深度,算有叶子节点的个数。然后经过获得到之要素四交锋坐标,算有叶子节点的四角范围:leafminx、leafminy、leafmaxx、leafmaxy。

c.因要素个数与网格因子,算有任何范围外网格的个数,用一体范围的季竞技坐标与网格因子计算,得出一个网格的BlockXsize和BlokcYsize。

d.针对每个叶子节点,建立该节点的网格索引,索引中涵盖了网格与素的附和关系。

别文书截图:

                        图片 10

4.2数额读取

a.读取配置获取到要素的四角范围mapminx、mapminy、mapmaxx、mapmaxy、leafgeoxsize、leafgeoysize。

b.通过mapminx、mapminy、leafgeoxsize、leafgeoysize参数算有该XY坐标所在的网格索引编号。

c.读博该网格索引,获取到该索引的leafminx、leafminy、leafmaxx、leafmaxy、blockxsize、blockysize。

d.通过leafmaxx、leafmaxy以及blockxsize、blockysize算有XY所在网格索引的字节位置pos,将磁盘指针动至该pos处。

e.获得到目录中寓的素信息,比如要素所于的数据文件中之datapos。

f.读取数据文件,在拖欠公文之datapos处用详细信息读取返回。

4.2多少读取

a.读取配置获取到要素的四角范围mapminx、mapminy、mapmaxx、mapmaxy、leafgeoxsize、leafgeoysize。

b.通过mapminx、mapminy、leafgeoxsize、leafgeoysize参数算有该XY坐标所在的网格索引编号。

c.读博该网格索引,获取到该索引的leafminx、leafminy、leafmaxx、leafmaxy、blockxsize、blockysize。

d.通过leafmaxx、leafmaxy以及blockxsize、blockysize算有XY所在网格索引的字节位置pos,将磁盘指针动及该pos处。

e.获得到目中带有的元素信息,比如要素所当的数据文件中的datapos。

f.读取数据文件,在该文件之datapos处将详细信息读取返回。

5.方案优点总结

a.将一个大索引文件分为多单目录文件,在大方比照机点并发访问时,可以将压力负载至各个文件及,减少同一文件读取时的资源争快IO瓶颈。

b.每一个目录文件大小大大减弱多少,读取会更快,磁盘寻址也会再度快。

c.为长网格命中单个(非多单)要素的票房价值,可以用每个网格的轻重缓急进一步缩小,其促成的网格索引增大会平摊到每个网格索引上,从而使副作用变多少。

5.方案优点总结

a.将一个大索引文件分为基本上个目录文件,在大方准机点并发访问时,可以用压力负载至每文件及,减少同一文件读取时的资源争快IO瓶颈。

b.每一个索引文件大小大大减弱多少,读取会重新快,磁盘寻址也会重复快。

c.为搭网格命中单个(非多独)要素的几率,可以将每个网格的分寸进一步缩小,其招致的网格索引增大会平摊到每个网格索引上,从而使副作用变多少。

6.一发优化

a.以读取索引基本信息后方可以该消息缓存至内存中,减少Config文件的IO次数。

b.生成索引时,如果一个网格只含有了一个素的音信,可以以该信息呢结成及网格索引中。这样,查询时,如果查询到的网格只含有单个要素,则好直接在目录中将要素信息获得,而不需要再行针对数据索引做读取操作,减少针对数码索引的IO次数。

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

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

                                                                                                   
        图片 11

6.更优化

a.以读取索引基本信息后可用该信息缓存至内存中,减少Config文件之IO次数。

b.生成索引时,如果一个网格只含了一个因素的信息,可以用欠消息为成至网格索引中。这样,查询时,如果查询到之网格只含单个要素,则可一直在目中将要素信息获得,而不需更指向数码索引做读取操作,减少对数据索引的IO次数。

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

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

                                                                                                   
        图片 12

Leave a Comment.