SuperMap GIS 产品线 : SuperMap关键技术
SuperMap GIS空间数据库引擎技术——SuperMap SDX+是目前能够支持数据库种类最多的空间数据库引擎;SuperMap OGDC实现了不同空间数据格式间的互操作;而超图软件在2005年、2007年和2009年相继提出的三大技术体系——共相式GIS技术体系、Service GIS技术体系和Realspace GIS技术体系,都对SuperMap GIS系列产品的发展产生了深远的影响。
◆ SuperMap GIS空间数据库引擎技术(SuperMap SDX+)
◆ SuperMap开放式空间数据库互联互访标准(SuperMap OGDC)
◆ RealSpace技术体系
>>返回顶部
SuperMap SDX+ 6R是SuperMap GIS平台中的空间数据库引擎,它为SuperMap GIS中的所有产品提供访问空间数据的能力,通过它来实现对空间数据的存储、索引、读取和更新。
特 点
◆ 新增三维数据管理能力;
◆ 充分结合数据库技术,全面支持主流商用关系数据库平台;
◆ 采用混合多级索引技术,实现海量空间数据管理能力;
◆ 全面支持各种空间对象类型;
◆ 具备版本管理和长事务处理能力;
◆ SuperMap GIS 6R的系列产品,都内置了空间数据库引擎SuperMap SDX+ 6R,通过它实现对空间数据库的访问。
★SuperMap SDX+的技术特点
使用大型关系数据库来一体化管理空间数据和业务数据,已经成为GIS应用发展的主流。空间数据库技术在很多方面有着明显的技术优势,包括海量数据管理能力、图形和属性数据一体化存储、多用户并发访问(包括读取和写入)、完善的访问权限控制和数据安全机制等。
目前,空间数据库技术成为越来越多的大中型GIS应用系统的空间数据存储和应用的解决方案。SuperMap SDX+是SuperMap GIS的空间数据库引擎,是SuperMap GIS软件的重要组成部分,它采用先进的空间数据库存储技术、索引技术和查询技术,具有“空间-属性数据一体化”、“矢量-栅格数据一体化”和“空间信息-业务信息一体化”的集成式空间数据库管理能力,是GIS大型工程应用的理想选择。
实际应用和测试表明,SuperMap SDX+具有以下三项特色:
安装使用简便,充分结合数据库技术;
高性能管理和访问海量空间数据;
完善的数据模型,满足各种大型GIS应用的需求;
安装使用简便,充分结合数据库技术
安装使用简便
SuperMap SDX+不需要安装配置复杂的空间数据库服务器,所有的配置管理都是标准的数据库操作,这意味着不需要学习更多专门的空间数据库技术,普通的数据库管理员即可完成空间数据库的管理配置工作。
标准的数据库管理,在数据安全性,权限控制等方面,充分发挥了DBMS平台的能力,不需要特殊的账户以避免留下安全漏洞。对数据库的访问,通过标准的数据库协议,可以满足负责网络环境下的通畅的数据访问。更为重要的是,SuperMap SDX对数据库的操作,都是通过标准的SQL语句来执行,这样做在服务器端可以通过标准的数据库优化方式,充分发挥服务器的性能;在客户端使用者可以完全基于对数据库的操作的掌握查询和维护工作。
全面支持主流商用关系数据库平台
SuperMap SDX+可以全面支持目前的主流商用关系数据库平台,除了支持全球市场前列的Oracle、Oracle Spatial、MS SQL Server和DB2外,还支持国产的具有自主知识产权的达梦多媒体数据库DM和人大金仓数据库Kingbase。
SuperMap SDX+对于这些数据库提供全面的支持,为客户端提供全透明的访问。SuperMap SDX+对这些数据库平台的访问接口进行了一致的封装,用户不必关心这些数据库是运行在什么样的服务器硬件平台和操作系统平台上,也不必了解后台的数据库类型、服务器的类型和操作系统的类型即可按统一的接口对数据进行存储和管理操作,大大简化了空间数据库的配置、开发和应用的难度。
SFC支持的空间数据库一览表
|
数据库名称 |
版本号 |
|
Oracle |
8.1.6,8.1.7,9i,10g,11g |
|
Oracle Spatial |
8.1.6,8.1.7,9i,10g,11g |
|
SQL Server2 |
7.0、2000、2005、2008 |
|
Kingbase |
3.x,4.x |
|
Informix |
11.5 |
|
DB2 |
8.2~9.5 |
|
Sybase |
12.5~15 |
|
DM |
5.0 |
UGC支持的空间数据库一览表
|
数据库名称 |
版本号 |
|
Oracle |
9i、10g、11g |
|
Oracle Spatial |
9i、10g、11g |
|
SQL Server |
2000、2005、2008 |
|
Mysql |
5.0.x、5.1.x |
|
Informix |
11.5 |
支持Oracle RAC技术
RAC(Real Application Clusters,真正应用集群)是Oracle数据库10g 企业版的核心功能之一。它是一个具有共享高速缓存体系结构的集群数据库。RAC技术完美地解决了实际应用中的两个重要问题:首先当一个服务器出现故障后其余服务器可自动接管工作,保障应用系统稳定无障碍运行;更重要的是群集的所有服务器都在协同工作,改变了过去只有当运行服务器遇到故障中断后其他服务器才开始工作的弊端,大幅度提高了服务器的可同时处理客户端请求的数量。
2005年1月,超图软件、Oracle和HP公司就SuperMap、Oracle 10g和Unix/Linux的兼容性进行了专门测试。测试表明,SuperMap SDX+不仅与Unix/Linux下的Oracle 10g兼容性良好,而且完全支持Oracle 10g中最先进的RAC技术。SuperMap SDX+对RAC技术的支持,充分表明SuperMap SDX+在兼容性和海量数据处理方面具有强大的优势。基于SuperMap SDX+ 和Oracle RAC技术,SuperMap GIS各产品完全可以用于各种大型GIS应用,为用户提供大数据量、高可用性的不间断服务。

高性能访问和管理海量空间数据
采用混合多级索引技术
索引技术是空间数据库引擎的一项关键技术,它直接影响到空间数据访问和查询的效率。SuperMap GIS在大量研究和实验的基础上发现,任何一种索引技术都有其不足之处,采用单一索引不能满足现在海量影像和矢量空间数据混合存储时获取数据的需求。因此SuperMap GIS创造性的提出了混合多级索引技术,在数据库引擎中采用了四叉树索引、R树索引、动态索引(或称多级网格索引)和图库索引(原称三级索引)四种索引,充分发挥每一种索引的优势,提高数据访问和查询效率。
针对标准分幅的空间数据,SuperMap还支持按指定字段或按空间范围来创建图幅式索引,组合使用文件缓存技术,为标准分幅数据的应用提供了顶级的访问性能。
此外,在SuperMap SDX+中,还允许直接为矢量数据集属性字段创建和删除字段索引,用户可以直接在SuperMap环境中对业务数据的索引进行维护,以进一步加快对属性数据的查询和访问速度。
文件缓存技术
文件缓存SuperMap SDX+是为均衡网络和服务器负载、提高应用整体性能而提供的智能分布式存储方案。开启文件缓存选项后,应用程序在访问存储在空间数据库中的数据时,会首先检查本地缓存库中是否已经有相应数据的最新版本,如果没有相应的缓存数据或是缓存数据不是最新版本,则从服务器端读取数据并更新本地缓存数据,这样下次访问的时候就可以直接读取本地缓存数据;如果本地缓存中已经有了相应数据的最新版本,则不必通过网络向服务器请求数据,而是直接读取本地缓存数据来完成显示或分析的功能。通过这种解决方案,可以大幅降低数据库服务器负载和网络负载,从而大幅提高应用程序的整体性能。
为节省磁盘空间并提高应用的灵活性,文件缓存中并没有配置空间索引,所以,对于记录数很多的数据集不适合设置文件缓存选项。但是,本地缓存可以与图幅索引配合使用,即对于建立了图幅索引的数据可以按图幅为单位进行缓存,这样,每个缓存文件不会很大,加载数据和更新数据的速度得到保障,可以很好地控制缓存文件的灵活性和均衡性,所以,对于记录数很多的矢量数据集,将图幅索引和文件缓存配合使用是提高性能的最佳解决方案。
当然,使用文件缓存会占用客户端的磁盘空间,SuperMap SDX+ 一方面在缓存文件中应用了高效的压缩算法来降低缓存文件所占用的磁盘空间,另一方面提供了缓存文件限额的功能来限制缓存文件占用磁盘空间总数,并采用LRU算法来保证最新访问和最常用到的数据常驻缓存。
支持数据有损/无损压缩
近年来,随着新型采集技术的发展,GIS数据的时间和空间分辨率不断提高,相应的数据规模也不断增长,数据量日益庞大,使得有限的网络带宽、存储空间与海量空间数据处理需求之间的矛盾日益突出。数据压缩作为解决这一矛盾的有效途径,在GIS应用中越来越受到重视。对数据进行压缩,有利于节省存储空间和网络带宽,提高数据传输速率,另外,数据压缩后有利于实现保密通讯,提高数据的安全性和系统整体的可靠性。
SuperMap SDX+ 对矢量和栅格数据均支持无损压缩和有损压缩技术,无损压缩是利用数据的统计冗余进行压缩,在解压时可以完全恢复原始数据而不引入任何失真,但其压缩率受到数据统计冗余度的限制,对于空间数据其压缩率一般在2:1至5:1之间。无损压缩技术适用于对数据精度要求非常高的行业与应用。由于压缩比缩比的限制,无损压缩技术并不能完全解决空间数据的存储和传输问题,应用领域也比较有限。
为了获得更大的压缩比率,SuperMap SDX+ 提供了面向矢量数据和栅格数据的有损压缩技术,有损压缩方法可以实现比无损压缩方法大得多的压缩率,它在压缩的过程中允许损失少量的信息,虽然在解压时不能完全恢复原始数据,但损失的部分对精度的影响很小,所以大绝大多数的GIS项目中都可以得到应用。矢量数据和栅格数据的有损压缩思路并不完全相同,栅格数据的压缩算法类似于多媒体应用中的图像压缩算法,主要应用行程编码、离散余弦变换和小波变换等算法对数据进行压缩;而矢量有损压缩则主要利用空间对象节点之间的近邻相关关系来对坐标点的坐标数据进行分频编码以达到数据压缩的目的。
SuperMap SDX+中的压缩技术可以根据空间数据的特点智能决定压缩的相关参数,不需要用户进行繁琐的相关设置,在保证高压缩比和时间性能的基础上简化了操作步骤,在实际应用中收到了良好的效果。
完善的数据模型
全面支持各种空间对象类型
SuperMap SDX+提供了全面的空间对象类型的支持,既支持点、线、面、文本等简单的空间对象,也支持多点、多线、湖中岛、宗地等复合对象,以及支持Network(网络模型)、Route(路由模型)、TIN(三角格网模型)、DEM(数字高程模型)、GRID(格网数据)和Image(影像数据)等复杂数据模型。
时序数据模型
SuperMap SDX+ 支持时序管理,可以方便地回溯到过去任意时刻的数据,还可以像放电影一样回放历史数据的变化。用户可以设定不同的时刻,对数据进行“快照”,使用的时候可以快速的定位到不同时刻,还可以删除,合并,回溯到特定时刻版本等。
拓扑模型
SuperMap SDX+中,拓扑模型得到了大幅的增强,实现了完整的拓扑模型和拓扑检查规则,并新增了拓扑数据集,为管理空间数据之间的拓扑关系提供了一整套解决方案。
SuperMap GIS 6R的SDX+新增了拓扑数据集模型,可以将点、线、面多种类型的多个数据集纳入到一个模型中来管理,可以设置两两数据集之间的拓扑限制规则,在限制规则的基础上进行拓扑关系的检查,如检查某一点数据集中的点是否都在另一线数据集的弧段的端点上,检查某一线数据集中的线是否都在另一面数据集的边界上,检查两个线数据集的线段是由有相交的情况,检查两个面数据集中的面是否属于完全包含的关系等等,检查过程中发现的违反拓扑规则的情况存入系统表中,以备用户进行编辑,以维护正确的拓扑关系。在对数据进行编辑时,可以利用前面检查生成的拓扑错误信息对数据进行修正,另外支持用户进行扩展,以实现编辑时用户可以检查拓扑关系,对不符合拓扑限制规则的编辑操作给出提示信息以保证数据的准确性;编辑后,还可以对编辑形成的“脏区”或者用户指定区域进行局部拓扑。
版本管理
在GIS领域的很多应用中,对数据做的添加、修改和删除等编辑操作,需要特别慎重,最好是能够保存对数据每一步更改的历史数据,以便能够回溯或是恢复;在另外一种应用模式下,需要编辑的数据集往往很大,如果由一名数据人员进行编辑,工期会拖得很长,为了不影响项目的进度,往往需要多名数据人员同步对数据进行编辑操作,但又要使他们的编辑互不影响,这便要求空间数据引擎提供分支版本的功能来满足上述要求。
针对数据集中管理,异步更新维护的需求,SuperMap SDX+推出了版本管理模型,版本的基本结构如下图所示:

图 : 版本的基本结构
在SuperMap SDX+ 中,您可以为数据源创建一个或多个版本;当版本存在时,可以有选择的指定哪些数据集注册为版本。当把数据集注册为版本时,该数据集中的所有对象和属性表都会自动注册成为版本,多个用户可以同时编辑一个版本。
对于默认版本都会对应有两个表:A表和D表。其中,A表用来记录版本数据集中对象的添加、放大、缩小、移动等更新操作和这些操作所属的版本;D表用来记录对象的删除操作和这些操作所属的版本。在版本下的任何版本所做的修改都会存储到这两个表中,如图所示:

图:版本编辑
当完成编辑的时候,可以把当前编辑版本提交到默认版本中。
多个用户对同一数据进行多版本编辑很容易导致同一区域或对象被多个用户同时修改了,这便是版本编辑中的冲突问题。例如若版本A删除了对象1,但是版本B移动了对象1,在版本B与版本A进行提交的时候就会出现冲突,这时候我们就需要解决冲突,如下图所示。SuperMap SDX +为用户提供了解决冲突的三种选择:维持原状、冲突覆盖、冲突合并。

图:版本协调
当处理完当前版本与目标版本之间的冲突时,就可以进行版本提交。提交操作首先保存当前版本的操作,然后再将当前版本的操作合并到默认版本中。其他版本的用户,在你提交后刷新其工作空间可以看到提交后的结果。
在版本提交后,可以继续进行当前版本的编辑,然后进行版本协调,再后进行版本提交。若在当前版本的编辑全部完成,则提交后可以删除当前版本。
数据复制与同步
在GIS分布式应用中,既要实现数据的复制,又要实现数据的同步更新。SuperMap SDX+提供了复本来实现分布式的数据复制与同步。
SuperMap SDX+使用创建复本的功能来实现数据复制,创建复本,不仅仅是复制数据源中的一个数据集到另一个数据源中,而且提供了一条通道,保证复本与源数据的同步更新。SuperMap SDX+提供了三种不同类型的复本来满足不同的应用:离线复本、单向更新复本和双向同步复本。
离线复本主要应用于便携式移动终端设备的应用,移动终端操作人员需要在断开与数据库连接的情况下,编辑数据库中的部分数据,当移动终端与数据库重新连接时,在移动终端上的所有修改,都需要同步更新到数据库中。

图:离线复本
单向复本,主要应用在主从复制中数据复制和同步应用,在这种情况下,数据的同步只需要一个方向。例如,拥有大量的用户在线访问数据地图服务公司,既需要供用户浏览访问,又需要实时更新数据,为了实现负载均衡,提供两台服务器,一台为只读“数据发布服务器”,用于用户浏览数据;一台为可编辑“数据编辑服务器”,负责编辑更新数据。在这种情况下,数据的同步只需要从 “数据编辑服务器”到“数据发布服务器”一个方向。

图:单向复本
双向复本,即复本与源数据间的同步是双向的,即可以从复本同步更新到源数据,又可以从源数据同步更新到复本数据中。SuperMap SDX+还支持创建复本树,及多级复本。例如,国家基础数据中心为各省的业务数据创建复本,各省在复本基础上再为各县市创建复本。各省在自己的复本上编辑数据后,同步更新到国家基础数据中心;而国家基础数据中心,也会编辑更新数据,同步更新到各省的复本,这种情况下,数据的同步是双向的。

图:双向复本
SuperMap SDX+的分布式数据的同步更新是使用差异包来实现的,在创建复本后,复本的中变化的数据,如插入、更新或删除的对象,在网络联通的时候,可以直接同步更新到源数据集,或者以文件形式导出成为差异包。进行数据更新时,只需将差异包合并到源数据,而不需要数据的全部复制。
注意:
在差异包导入到源数据之前,需要先进行冲突判断与冲突处理,类似于版本的冲突处理相同,处理完冲突后,将差异包合并到源数据中,即可完成数据同步。
版本管理与复本可以结合使用,既可以在复本的基础上进行版本管理,也可以在版本管理的基础上创建复本。
长事务处理
在数据库应用程序中,事务是一个比较常见的概念,它是作为单个逻辑工作单元执行的一系列操作。一个逻辑工作单元必须有四个属性,称为ACID(原子性、一致性、隔离性和持久性)属性,只有具备这些属性才能成为一个事务。
在事务的上述特点中,我们最关心的是其并发性和原子性。
并发性控制确保两个用户不能更改同一数据,或者一个用户不能在另一个用户对数据操作完成之前对其进行更改。
原子性确保事务中所有步骤都作为一个组成功地完成。如果一个步骤失败,则不应完成其它步骤。
这种事务处理机制由数据库管理系统(DBMS)提供,SuperMap支持此种模式的事务处理,即短事务处理机制。
短事务在普通的DBMS应用系统中有着广泛的应用,但GIS程序有许多不同于普通DBMS应用程序的地方,如一次编辑中处理数据量比较大,往往是一个区域的数据;一次编辑持续的时间比较长,可以是几天,几个月,甚至更长的时间;在编辑期间需要允许其他用户浏览相关的数据……
这些特点要求为GIS程序提供特殊的事务处理机制,SuperMap为此提供了长事务处理机制。
SuperMap长事务面向GIS应用的事务处理机制,具有短事务的主要优势(ACID属性),而尽量避免了短事务的局限性,它具有如下的特点:
能够锁定图层中某个区域的数据来对它进行编辑,在完成编辑以前其他用户只能看到编辑以前的数据而不能对锁定的数据进行编辑。
编辑时间可以是几天,几个月甚至更长的时间。
即使遇到突然断电、死机或者其它意外情况也能保证所作的修改不会丢失或被破坏。
不管什么时候,如果对于所作的修改不满意,可以回滚所作的修改,恢复到原来的样子。
一旦提交了所作的修改,其他用户立即能看到所作的修改。
只有在提交了修改或作了回滚后,其他用户才可以对原锁定区域进行修改。
空间数据引擎是GIS平台软件的核心部分,以前SuperMap SDX+重点实现的是数据库引擎,在SuperMap GIS 6R中, SuperMap SDX+的最新版本在原来基础上有了很大扩展,在已经实现的数据库引擎和文件引擎的基础上,新增加了Web Service数据引擎和内存数据引擎。
数据库引擎主要针对Oracle、Oracle Spatial、SQL Server、Informix等关系型数据库管理系统,其中,SFC还支持IBM DB2、国产达梦DM、人大金仓Kingbase数据库,UGC还支持MySQL小型开源数据库;文件引擎是指SDBPlus,SIT等引擎;其中,UGC提供了跨平台文件引擎UDB;内存数据引擎即在内存中建立数据源,由于在数据访问过程中,对内存访问的性能远远高于对磁盘访问,因此,SuperMap SDX+提供内存引擎,在内存中存放一部分数据,尽可能充分利用内存进行操作和处理,大大提升数据处理性能;Web引擎可以直接访问 WMS、WCS、WFS等遵循OGC标准发布的地理空间数据服务,这类引擎就是把网络上各种开放的Web服务,作为SuperMap的数据源来处理,通过它可以把网络发布的地图和数据与SuperMap的地图和数据完全结合起来。将WMS、WCS和WFS的应用融入到SuperMap的技术体系,拓展了SuperMap数据引擎的应用领域,满足应用系统的数据共享需求。
通过引擎的这些扩展,可以使业界流行的空间信息存储平台都尽可能地和SuperMap融合在一起,从而简化最终用户应用的复杂度,提高GIS综合应用的完整性与灵活性。

图:SuperMap SDX+支持的数据源
SuperMap GIS 6R产品中,新的SuperMap SDX+已经支持WMS,WFS、WCS三种OGC Web服务引擎,支持Oracle Spatial空间数据引擎。更多的Web服务标准和ESRI ArcSDE引擎将在后续版本提供。另外,作为一个免费的数据库MySQL,已经得到了越来越多用户的支持,且当前在UGC系列产品中,SuperMap已经提供了MySQL引擎,可满足低成本中小型GIS应用的需求。
经过多年的市场洗礼和开发完善,SuperMap SDX+已经成为SuperMap软件框架中的重要产品,在多项关键技术上不断取得突破,甚至达到了国际领先水平。但也应看到,SuperMap SDX+在一些应用模型方面、在紧跟IT技术快速发展方面,还需要持续提高和不断完善。在今后的发展中,将继续增强版本管理功能,在版本管理功能的基础上改进长事务的实现方式,实现长事务和版本管理两种锁定模式的统一;将继续跟踪主流IT技术在数据库访问上的发展,实现离线编辑,分布式更新等功能。
OGDC(开放式空间数据库互联互访)是Open Geospatial Database Connectivity的缩写,是国家863基金项目为了实现数据互操作而制定的一组标准。一个基于OGDC标准开发的应用程序,可以不依赖于任何空间数据格式,以统一的方式来访问所有的空间数据,实现对空间数据的读、写、存、取。
为了保证OGDC的标准性和开放性,其总体框架分四个层次:数据层(OgdcData)、数据提供者层(OgdcProvider)、接口层(OgdcInterface)和应用程序层(OgdcApplication)。
◆ 应用程序层(OgdcApplication)
基于OGDC接口层开发的应用程序,以统一的方式创建、查看、编辑、保存、删除空间数据,而不必关心底层使用的是哪一个OgdcProvider以及访问的是哪一类数据库。
◆ 接口层(OgdcInterface)
OGDC接口层以C++模式提供了OGDC 对象的访问接口,带有OgdcProvider管理器,实现OgdcProvider的加载与卸载,为每一个OgdcProvider提供了OGDC函数入口点。
◆ 数据提供者(OgdcProvider)
数据提供者层,类似于访问数据的驱动器,它是实现OGDC函数与数据层交互的动态库,是GIS开发厂商根据OGDC的标准实现的。
当应用程序调用OGDC接口时,OgdcProvider管理器装入相应的OgdcProvider,并按要求实现如下任务:建立与数据库的连接;向数据库提交请求;对数据库进行操作;返回结果给应用程序。
◆ 数据层(OgdcDatabase)
数据层由用户想要存取的数据格式、和它的存储方式、和它相关的操作系统组成。



随着GIS的迅猛发展与GIS应用领域的不断扩大,空间数据格式也愈来愈多,来自世界各地不同机构的空间数据格式有上百种之多。而一个综合信息系统的各个部门由于需求差异和历史等原因,往往会采用不同的厂商的不同的数据格式,且数据格式互不兼容,因此部门之间的通信(互联互访)成为一个棘手的问题。面对诸多不同格式的数据,如何使更多的人,更充分地利用已有的数据,成为当前GIS发展中亟待解决的问题。为此,超图软件研发了一个新产品SuperMap OGDC来实现不同数据格式间的互操作。
SuperMap OGDC产品是依照OGDC标准、基于SuperMap UGC共相式内核技术研制开发的一套免费产品,包括OGDC标准中定义的四个层次:
■ Viewer应用层
应用层开源范例程序Viewer,是一个桌面应用程序,它界面友好、简单易用,可以很轻松地完成新建数据源、复制数据集、打开空间数据浏览并进行制图等操作。
SuperMap Universal系列产品,包括桌面产品(SuperMap Deskpro .NET/Java)、组件产品(SuperMap Objects .NET/Java)、服务器产品(SuperMap iServer .NET/Java),都支持OGDC标准,可以调用SuperMap OGDC接口访问其他提供了OgdcProvider的数据,属于SuperMap OGDC的应用层程序。

图:SuperMap OGDC的架构
■ SuperMap OGDC接口层
SuperMap OGDC公共访问接口是依照OGDC标准,采用UGC共相式内核的理念和面向对象方法,用C++语言实现的API接口,定义了面向抽象GIS数据格式的抽象基类和统一的开发接口,能够支持当前存在的任何计算设备(Any device)、任何操作系统(Any operation system)、任何开发语言 (Any programming language)、任何数据库(Any database) 和任何数据格式(Any data format)。
■ SuperMap OGDC的Provider层
SuperMap OGDC 的Provider层是各GIS厂商根据自己的数据格式,继承SuperMap OGDC的基类,开发自己数据格式Provider的动态链接库。应用层程序不需要关心底层的数据格式,只需用统一的方式调用SuperMap OGDC接口,即可访问数据。若Provider的内部数据格式发生变化,则开发厂商只需提供升级的动态链接库即可,应用层程序更新动态链接库后,不需要进行程序修改或重新编译即可使用Provider。这样,各GIS厂商在不公开其底层文件格式的情况下,可以最大程度地方便其数据的使用者。
■ 数据层
数据层,提供了Provider层对应的多种范例数据,包括MDB、SDB+、UDB、SIT等,空间对象类型包括点、线、面、文本、栅格、影像等。

SuperMap OGDC的技术特点
■ 实现了数据的互访问,提高数据的利用率,减少数据孤岛;
■ 完全集成SDX+海量空间数据管理能力;
■ 面向对象的开发接口,降低应用端与Provider层开发难度;
■ 完全免费,降低项目经费预算,促进空间数据库的科研与应用发展;
■ 部分开源,允许用户采用新的技术加以优化;
■ 跨开发平台,跨操作系统,一次编译,到处应用,减少应用端开发与维护的工作量;
SuperMap OGDC的Provider
■ Provider描述信息
Provider及数据提供者,一般是由GIS厂商进行开发,并以标准动态库的形式提供,例如SuperMap SDX+系列就是SuperMap公司针对SuperMap数据格式提供的Provider。对于Windows操作系统,Provider标准动态库以.odx为扩展名,例如:CompanyAProviderX.odx。当然,允许开发商自定义动态库的扩展名。
■ 加载与卸载
SuperMap OGDC 接口层有一个数据提供者管理器(OgdcProviderManager),是SuperMap OGDC应用的总的入口,它通过包含两个加载数据提供者(Provider)的动态库的接口,成功加载的数据提供者构成数据提供者集合(m_providers),集合中的每一个Provider均提供CreateOgdcDataSource()接口,通过调用CreateOgdcDataSource()接口,可以创建出不同的数据源实例对象。
■ Provider的数据访问对象
◇ 定义
基于GIS数据的通性,采用面向对象的思路,SuperMap OGDC定义数据访问对象,有如下几种:数据源(OgdcDatasource)、数据集(OgdcDataset)、矢量数据集(OgdcVectorDataset)、栅格数据集(OgdcRasterDataset)、记录集(OgdcRecordset)、元数据库(OgdcMetaDatabase)、空间参考系统(OgdcCoordSys)。
→ 数据源是各种数据集的容器,并统一管理所有的数据集。数据源和数据集可以关联元数据库,并且具有相应的空间参考系统。
→ 数据集可以分为矢量数据集和栅格数据集。其中,矢量数据集是矢量要素(OgdcFeature)的聚合,每个要素由几何对象(OgdcElement)和字段属性(OgdcFieldInfos)组成。栅格数据集是按规则排列的一系列像素点或数值的聚合,它用一个规则格网来描述与每一个格网单元位置相对应的空间现象特征的位置和取值,每一个格网单元为一个像素。
→ 对矢量数据集进行查询可以得到结果记录集(OgdcRecordset),通过获取记录集中记录,可以获取空间数据和对象属性,也可以直接从矢量数据集或记录集中以要素(OgdcFeature)的形式来获取空间数据和属性数据。
→ 栅格数据集常用来存储卫星影像、数字高程模型(DEM)、格网数据(GRID)。可以通过数据块(OgdcRasterBlock)、扫描线(OgdcRasterScanline)来访问栅格数据集中的数据。
开发商在开发Provider时,可以根据自己的空间数据特点,选择性的实现上述对象类型。
