GIS 网格索引算法

GIS网格索引算法

在上面的几篇文章中,简单的介绍了GIS系统中的网格索引,本文将简单的介绍GIS网格索引的算法步骤。

(1)创建:通过数据的统计特征计算出一个网格尺度,对每一个实体按网格进行分解,在其落入的所有网格中追加该实体记录,直到所有的实体处理完毕。

(2)重建索引:随着数据表中实体的编辑、增加及删减,重新对数据进行统计计算,获得新的网格尺度,从而重建网格索引。

(3)查询:网格索引的查询操作就是对原空间数据利用网格索引进行检索的过程,它可以分成两步进行,即粗略查询过程和精确查询过程。通过对查询区域进行分化,检索出所有被查询区域覆盖且包含实体的网格,实现首次粗略查询;在粗略查询的结果集合基础之上通过精确比较,剔除不满足查询要求的记录。

(4)插入:插入空间实体时,根据每个格的大小,按规则计算出这个实体跨越那些格,并计算出空间要素的网格编码,然后在格网结构索引表的那些格中记录该实体的数据项。

(5)删除和更新:删除实体记录,并把此反应到网格索引中比较复杂,需要删除所有该实体对应的索引记录,在关系数据库中,通过对索引表中的实体号字段建立索引,可以大幅度提高这一操作的性能。

GIS网格索引编码
(1)传统简单GIS网格索引编码

在建立地图数据库时需要用一个平行于坐标轴的正方形数学网格覆盖在整个数据库数值空间上,将后者离散化为密集栅格的集合,以建立制图物体之间的空间位置关系。通常是把整个数据库数值空间划分成32×32(或64×64)的正方形网格,建立另一个倒排文件——栅格索引。每一个网格在栅格索引中有一个索引条目(记录),在这个记录中登记所有位于或穿过该网格的物体的关键字,可用变长指针法或位图法实现。

(2)改进型简单GIS网格索引编码

改进型单元网格索引将传统型编码由1维升至2维,变成X和Y方向上的编码;将空间要素的标识、空间要素所在的网格的X和Y方向上的编码、以及空间要素的外包络矩形作为一条数据库记录存储。如果一个空间要素跨越多个网格,则同样存储多条记录。

我的补充: 对于改进的网格索引算法,我们还可以使用Z曲线或者Hilbert对网格进行填充,这样可以对网格进行降维,按照这种方式存储也利于空间临近查询。


                              Z曲线填充                                                                                      Hilbert曲线填充

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值