SuperMap GIS 的数据组织结构,主要包括工作空间、数据源、数据集、地图、场景、布局等。为了方便您更快更好的了解和使用productname();SuperMap iDesktop 8C 系列产品,本部分将这些数据组织成分予以详细介绍。
SuperMap GIS 的数据组织形式为类似于树状层次结构,这种结构可以通过应用程序界面上的工作空间管理器表现。如下图所示,左图为工作空间管理器,工作空间管理器当前打开了一个工作空间,右图为对应抽象出来的 SuperMap GIS 数据组织结构的示意图。在productname();SuperMap iDesktop 8C 系列产品中用户的一个工作环境对应一个工作空间,每一个工作空间都具有下图(右图)所示的树状层次结构,该结构中工作空间对应根结点。一个工作空间包含唯一的数据源集合、唯一的地图集合、唯一的布局集合、唯一的场景集合和唯一的资源集合(符号库集合),对应着工作空间的子结点。
数据源集合:组织和管理着工作空间中的所有数据源,数据源是由各种类型的数据集(如点、线、面、栅格/影像等类型数据)组成的数据集集合。一个数据源可包含一个或多个不同类型的数据集;也可以同时存储矢量数据集和栅格数据集。
地图集合:用来管理存储在工作空间中的地图数据,用户在工作空间中显示和制作的地图都可以保存在工作空间中,便于下次打开工作空间时浏览地图。
布局集合:用来管理工作空间的布局数据,布局主要用于对地图进行排版打印。
场景集合:用来管理存储在工作空间中的场景数据,用户在工作空间中显示和制作的场景都可以保存在工作空间中。
资源集合:即符号库集合,用来管理工作空间中的地图和场景中所使用的符号库资源,包括点符号库、线符号库和填充符号库。
工作空间
即用户的工作环境,用户在进行数据操作时,都需要先创建一个工作空间,才能进一步操作 GIS数据。工作空间会保存用户在该工作环境中的操作结果,包括用户在该工作空间中打开的数据源、保存的地图、布局和三维场景等,当用户打开工作空间时可以继续上一次的工作成果来工作。
应用程序启动时,默认为用户建立了一个空的工作空间,用户可以在此基础上进行数据操作,或者打开已有工作空间进行操作。
工作空间的类型
按照工作空间的存储形式,工作空间可以分为两大类型,文件型工作空间和数据库型工作空间。
文件型工作空间以文件的形式进行存储,productname();SuperMap iDesktop 8C 和SuperMap Deskpro 6R 文件格式为 *.smwu和*.sxwu,SuperMap GIS 6 及以前版本文件格式为 *.smw 和 *.sxw ,每一个工作空间文件中只存储一个工作空间;数据库型工作空间,是将工作空间保存在数据库中,目前仅支持存储在 Oracle 和 SQL Server 数据库中。
工作空间的层次结构
数据源集合,用于管理在工作空间打开的所有数据源;地图集合,用来保存工作空间中的地图;布局集合,用来保存工作空间中的布局;三维场景集合,用来保存工作空间中的三维场景;符号库集合,主要管理符号库、线型库和填充库。
工作空间中的地图、布局、三维场景和资源都是依附于工作空间存在的,即这些内容都保存在工作空间中,删除工作空间时,其中的地图、布局、三维场景和符号库资源也相应的随之删除;而数据源是独立存储的,与工作空间只是关联关系,并没有保存在工作空间中,当删除工作空间时,只是删除了工作空间与数据源的关联关系,并不能删除数据源。
数据源集合
工作空间中的数据源集合主要管理工作空间中打开的所有数据源,通过工作空间中的数据源集合可以实现数据源的创建、打开、关闭等操作功能。
数据源
数据源用于存储空间数据,独立于工作空间,因此存储在数据源中的所有空间数据也独立于工作空间存储。productname();SuperMap iDesktop 8C 系列产品的空间数据可以存储在文件中和数据库中,即数据源可以保存在文件中或者数据库中,因此,数据源可以分为三大类:文件型数据源、数据库型数据源和 Web 数据源。
文件型数据源,即 UDB 类型数据源,存储于扩展名为 *.udb/*.udd 的文件中。新建 UDB 数据源时,会同时产生两个文件,*.udb 文件和与之相对应的 *.udd 文件,且这两个文件名除后缀名部分相同。
GIS 空间数据除了包含空间几何对象外,还包含对象的属性信息,在文件型数据源中, *.udb 文件主要存储空间数据的空间几何信息,*.udd
文件存储属性信息。一个数据源文件只对应一个数据源。
UDB 数据源,是一个跨平台、支持海量数据高效存取的文件型数据源,UDB 可以存储的数据上限达到 128TB 大小。
数据库型数据源,存储于数据库中,如 Oracle Plus 数据库、SQL Server Plus 数据库等。对应数据库型数据源,其空间数据的空间几何信息和属性信息都存储在数据库中。
要对数据源中的空间数据操作,必须先通过工作空间中的数据源集合打开数据源,并且对数据源及其中的空间数据的所有操作将直接保存在数据源中而不是保存在工作空间中。数据源是独立于工作空间存储的,删除工作空间本身,工作空间中的数据源不会随之删除和变化。
Web 数据源,存储于网络上的某个服务器上,在使用该类型的数据源时,通过 URL 地址来获取相应的数据源。
一个工作空间中可以包含多个不同类型的数据源,通常一个数据源中组织一类用途的空间数据,从而便于数据的归类和使用。
数据集
数据源中的空间数据是对现实世界的抽象,即将现实世界中的地理事物抽象为计算机世界中可以处理的各种图形对象,现实世界中的点状事物就抽象为点几何对象,线状事物就抽象为线几何对象,面状事物就抽象为面几何对象,为了便于数据的统一管理,引入数据集的概念,即将同类事物存储在一类数据集中,例如,点数据集就只能存储点几何对象、线数据集就只能存储线几何对象、面数据集就只能存储面几何对象。因此,一个数据源中的空间数据被组织为各种类型数据集,即数据源实际是一个数据集集合,包含了各种类型的多个数据集。
SuperMap GIS的数据集类型包括:点数据集(Point)、线数据集(Line)、面数据集(Region)、纯属性数据集(Tabular)、网络数据集(Network)、复合数据集(CAD)、文本数据集(Text)、路由数据集(LineM)、影像数据集(Image)、栅格数据集(Grid)、模型数据集(Model)。
数据集是 SuperMap GIS空间数据的基本组织单位之一,是数据组织的最小单位,数据集可以作为图层在地图窗口中实现可视化显示,即可以将数据集中存储的几何对象以图形的方式呈现在地图窗口中,对于栅格和影像数据集,则根据其存储的像元值以图像的方式显示在地图窗口中。并且数据集的可视化编辑也是通过地图窗口来实现的,如编辑数据集中几何对象的空间位置和形状或者通过矢量化获取新的数据集等。
一个数据源中可以包含多个各种类型的数据集,可以通过工作空间中的数据源来管理数据源中的数据集,包括创建数据集或者导入其他来源的数据作为数据集以及其他操作等。
地图集合
地图集合用来管理存储在工作空间中的地图数据,用户在工作空间中显示和制作的地图都可以保存在工作空间中,便于下次打开工作空间时浏览地图。
应用程序可以同时打开多个地图窗口,每一个地图窗口中当前显示的内容为一幅地图,工作空间中的地图都包含在地图集合中,由于地图是保存在工作空间中的,因此,只有保存了工作空间,其中的地图才能被保存下来。
地图
将数据集添加到地图窗口中,被赋予了显示属性,如:显示风格、专题地图等,就成为图层。一个或者多个图层按照某种顺序叠放在一块,显示在一个地图窗口中,就可以成为一个地图。一般而言,一个图层对应着一个数据集;同一个数据集可以被多次添加到不同的地图窗口中,而且可以赋予不同的显示风格。对于不存储风格的数据集(点数据集、线数据集、面数据集),在显示时系统将赋予默认的风格;存储风格的数据集(CAD数据集和文本数据集)则按每个对象内置的风格来显示。地图窗口中图层的风格可以随时根据需要进行修改,通过修改图层风格或制作专题地图两种方法即可实现。在地图窗口中可以对图层中的空间几何对象进行可视化编辑,如改变对象的位置、大小和形状等,这些操作都会直接反映到图层对应的数据集中,也就是说,对图层的编辑实质是对图层关联的数据集中数据的编辑。
布局集合
工作空间中的布局集合管理工作空间中保存的所有布局,通过布局集合可以实现布局的创建、保存、输出、打印以及删除等操作。
布局
布局主要用于对地图进行排版打印,是地图、图例、地图比例尺、指北针、文本等各种不同元素的混合排版与布置。布局窗口提供了进行布局可视化编辑的场所,一个布局窗口对应一个布局。布局保存在工作空间中,因此,要保存布局,必须同时保存其所在的工作空间。
场景集合
工作空间中的场景集合管理工作空间中保存的所有场景。
场景
场景是以抽象的球模式来模拟现实的地球,并将现实世界抽象出来的地理事物在球体上进行展示,从而更直观形象地反映现实地理事物的实际空间位置和相互关系。用户可以将二维或者三维数据直接加载到球上进行浏览,制作专题图等。除此之外,场景还模拟了地球所处的环境,包括:宇宙的星空,地球的大气环境,地球表面的雾环境等。场景还提供了相机的设置,相机可以用来控制对球体的观测角度、方位和观测范围,从而以不同的视角呈现球体的不同部位。
场景显示在场景窗口中,一个场景窗口对应一个场景。场景是保存在工作空间中的,因此,要保存场景,必须同时保存场景所在的工作空间。
资源集合
工作空间中的资源集合主要管理工作空间中的地图所使用的符号库资源,包括符号库、线型库和填充库。
符号库
使用点符号库设置图层中点的风格,包括符号类型、大小、颜色等;使用线符号库设置图层中线的风格,包括线型、线宽、线的颜色等;使用填充符号库,设置图层中面对象的填充风格。