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

  • 相关阅读:
    父子进程 signal 出现 Interrupted system call 问题
    一个测试文章
    《淘宝客户端 for Android》项目实战 html webkit android css3
    Django 中的 ForeignKey ContentType GenericForeignKey 对应的数据库结构
    coreseek 出现段错误和Unigram dictionary load Error 新情况(Gentoo)
    一个 PAM dbus 例子
    漫画统计学 T分数
    解决 paramiko 安装问题 Unable to find vcvarsall.bat
    20141202
    js
  • 原文地址:https://www.cnblogs.com/yeahgis/p/3051428.html
Copyright © 2011-2022 走看看