zoukankan      html  css  js  c++  java
  • SuperMap支持的空间索引类型

    支持的空间索引类型

    地理信息系统中的空间索引是相对于字段索引而言的。字段索引是数据库系

    统或者其他计算机系统中提供键值快速定位的数据结构。字段 索引提供了对

    特定键值的数据快速访问的能力。字段索引一般采用B树或者B树的衍生数据

    结构。由于空间数据特有的位置相关性,传统的字段 索引不能满足空间数据

    快速定位的需求,因此需要空间索引提供位置相关的数据的快速访问能力。

    SuperMap 提供了四叉树索引、R 树索引、图库索引和动态索引,并且这

    几种索引仅适用于矢量数据集。

    一个数据集在一种时刻只能使用一种索引,但是索引可以切换,即当对数据

    集创建完一种索引之后,必须删除旧的索引才能创建新的。数据集处于编辑

    状态时, 系统自动维护当前的索引。特别地,当数据被经过多次编辑后,索

    引的效率将会受到不同程度的影响,需要重新建立空间索引。

    空间索引类型描述

    1、R树

    R 树是基于磁盘的索引结构,是 B 树(一维)在高维空间的自然扩展,易于与

    现有数据库系统集成,能够支持各种类型的空间查询处理操作,在实践中 得

    到了广泛的应用,是目前最流行的空间索引方法之一。

    R 树索引比较适合静态数据,例如用作底图的数据和不经常编辑的数据(属性

    数据的编辑除外)推荐建立 R 树索引。

    R 树空间索引方法是通过设计虚拟的矩形目标,将一些空间位置相近的目标对

    象,包含在这个矩形内,如下面左图所示,把这些矩形作为空间索引的节点,

    它 含有所包含的空间对象的指针。例如,A 中包含空间对象 D、E、F,B 中

    包含空间对象 H、I、J、K,C 中包含空间对象 L、M。如下面右图所示为 R

    树索引的例子。

    图:R 树索引示意图

    2、四叉树

    四叉树是一种重要的层次化数据集结构,主要用来表达二维坐标下空间层次

    关系,实际上它是一维二叉树在二维空间的扩展。其基本思路是:把整个工

    作空间 编码为0,用水平线和 垂直线将工作空间划分为相等的四部分,各每

    一部分按顺序分别编码为00、01、02和03,左上角为00,右下角为03;

    对划分后的格子按照同样的方式继 续划分,比如对第00格继续划分, 划分

    后的四个小格子分别编码为000、001、002和003。根据需要,还可以继

    续划分,比如第031格子继续划分为0310、0311、0312和 0313,如下

    图所示。以此类推, 可以一直划分下去,划分的层数取决于研究区域对象

    的数量和平均大小。

    图:四叉树分格

    假设上图所示的对象为整个工作空间的对象,则根据这个工作空间建立

    的四叉树结构如下图所示:

    图:四叉树索引

    现在在 SuperMap 中,四叉树最多允许分成13层。基于希尔伯特(Hilbert)

    编码的排序规则,从四叉树中可确定索引类中每个对象实例的被索引属性值

    是 属于哪个最小范围。从而提高了检索效率。四叉树索引适用于小数据量

    的高并发编辑。

    3、图库索引

    在 SuperMap 中,根据数据集的某一属性字段或根据给定的一个范围,将空

    间对象进行分类,通过索引进行管理已分类的空间对象,以此提高查询检索速度。

    根据上述原理,创建图库索引有两种方式,根据字段索引或者根据范围索引。

    字段索引:即根据数据集的某一属性字段将空间对象进行分类,通过索引进行

    管理已分类的空间对象,以此提高查询检索速度。建议使用与位置信息相关的

    字段进行图库索引的 创建,例如对于全国县级行政区域图,可以使用表示行

    政区域代码的字段进行图库索引的创建。

    范围索引:即根据给定的一个范围(图幅的长和宽)将空间对象进行分类,通过

    索引进行管理已分类的空间对象,以此提高查询检索速度。对于按标准比例尺

    分幅存储(如1:25万 数据、1:10万数据、1:5万数据等)的数据合并到数据库中

    后生成的数据集,范围索引有着优异的效果,可以提供非常好的查询性能,与

    SuperMap 提供的地图缓存功能搭配使用可以达到更好的地图浏览速度。

    在海量数据(即对象数超过百万个的数据)的显示和查询时优势尤其明显。建

    立图库索引后,在显示的时候,只显示你需要查看的那一幅或几幅地图,大大

    缩短显示时间。如下图所示为根据给定范围进行图库索引的示例:

    图:图库索引示意图

    特别地,图库索引还可以被缓存到本地(以二进制文件形式体现),这样可更

    进一步提高查询检索的速度。文件缓存是 SuperMap SDX+ 为均衡网络和服

    务器负载、提高应用整体性能而提供的智能分布式存储方案。开启文件缓存选

    项后,应用程序在访问存储在空间数据库中的数据时,会首先检查本地 缓存库

    中是否已经有相应数据的最新版本, 如果没有相应的缓存数据或是缓存数据

    不是最新版本,则从服务器端读取数据并更新本地缓存数据,这样下次访问的

    时候就可以直接读取本地缓存数据;如果本地缓 存中已经有了相应数据的最新

    版本,则不必通过网络向服务器请求数据,而是直接读取本地缓存数据来完成

    显示或分析的功能。通过这种解决方案,可以大幅降低数 据库服务器负载和

    网络负载,从而大幅提高应用程序的整体性能。

    4、动态索引

    动态索引结合了 R 树索引与四叉树索引的优点,提供非常好的并发编辑支持,具

    有很好的普适性。若不能确定数据适用于哪种空间索引,推荐建立动态索引。

    动态索引采用划分多层网格的方式来组织管理数据,它的基本方法是将数据集按

    照一定的规则划分成相等或不相等的网格,记录每一个地理对象所占的网格 位置。

    在GIS中常用的是规则网格。当用户进行空间查询时,首先计算出用户查询对象所

    在的网格,通过该网格快速查询所选地理对象。可以优化查询操作。

    当前版本中,定义网格的索引为一级,二级和三级,每一级都有各自的划分规则,

    第一级的网格最小,第二级和第三级的网格要相应得比前面的大。

    图:动态索引示意图

    5、无索引

    不使用空间索引。无索引就是没有空间索引状态,即范围查询时不使用空间

    索引,适用于数据量非常小的时候。有时候表信息不全(被人为破坏…),

    SDX+ 将认为数据集状态为无索引。

    参考:http://support.supermap.com.cn/DataWarehouse/WebDocHelp/

    6.1.1/DeskproNETWebHelp/WebHelp/SuperMap_Deskpro_.NET_

    6R.htm#Features/DataProcessing/DataManagement/SpatialIndexType.htm

  • 相关阅读:
    自定义线性表
    网站关键词抓住热点话题获取长尾关键词 给网站增添流量(图)
    Hibernate常见注解说明
    面试问题java基础
    Spring常见的注解说明
    poj3268
    poj3273
    poj3250
    poj3277
    poj3253
  • 原文地址:https://www.cnblogs.com/yeahgis/p/3051428.html
Copyright © 2011-2022 走看看