程 璐
(西南科技大学环境与资源学院,四川绵阳621010)
GIS的数据源,是指建立的地理数据库所需的各种数据的来源[1]。数据源是GIS的重要组成部分[2],数据源的完整性也影响着GIS系统的应用,完备的数据源是进行GIS应用和分析的基础[3]。然而,由于人为的误操作往往会导致GIS工作空间图层数据的无效,这会给GIS系统的应用带来不便。在Arc GISDesktop中也有数据源的单个或多个设置,比如设置多个数据源时,用户只需在ArcCatalog(地理数据的资源管理器,用户通过ArcCatalog来组织、管理和创建GIS数据)中基于地图文档批量设置数据源。但是此种方法没有考虑到数据源的多元存储方式。在GIS工作空间中,如果数据不大而且数据来自同一个文件或者数据库,则很方便处理。但是,随着GIS技术的发展,其在很多领域都到了广泛的运用,而海量的数据则是其“血液”,而如此庞大的数据可能来自不同的数据文件或数据库存储。如果像Arc GIS Desktop,在批量处理时,只是逐一地输入数据源存储路径,则效率非常低。
因此,系统以Visual C#2010 C#为开发环境、采用ArcEngine集成技术,开发出了区别于Arc GIS Desktop的数据源设置的数据源更新系统,能够批量地、高效地更新GIS工作空间中无效的图层数据。
图1 第一次更新结果显示
图2 更新结果显示
本系统在数据源的设置上,主要选择了 shapefile、Raster文件格式数据,MDB数据库、GDB数据库和Arc SDE数据库。是因为这些数据文件及数据库是GIS中比较常用的,且各自都有自己的优势。
Shapefile是一种基于文件方式存储GIS数据的文件格式,是GIS中比较通用的一种数据格式。Raster数据格式,如遥感影像数据中的DEM数据也是GIS中的一个极其重要的信息源。Geodatabase是一种基于RDBMS存储的数据格式,其中有两大类:一是PersonalGeodatabse用来存储小数据量数据;另一种是FileGeodatabse也是用来存储小数据量数据,不过存储于文件中,文件大小没有限制。ArcSDEGeodatabse存储大型数据,存储在大型数据库中Oracle,SqlServer,DB2等,可以实现并发操作。
本系统的开发目标是以一种简单友好的方式方便用户批量设置数据源,所以采用ArcEngine集成技术开发有针对性的软件,用户只需简单地添加存在数据无效的地图文档和设置各种数据源,便可以批量地处理。(1)基本功能。主要是打开地图文档时,显示所在路径,方便用户寻找;在设置数据源中,显示数据源存储路径,为数据源的更新奠定基础;在地图显示模块中,以便用户及时查看数据更新的情况。(2)设置数据源。其主要是添加Shape文件、Raster文件、MDB数据库,GDB数据库及ArcSDE数据库多元化地理数据,同时可显示每个数据源的具体数据情况。(3)更新数据源。数据源的更新是整个模块的重点,在每次更新过程中,都会实时显示数据的更新情况。比如数据是否更新成功,更新后数据的类型和存储情况。
在数据源更新之前,用户打开地图文档,若发现整个工作空间只有有限个图层数据有效,用户需要对整个地图文档的数据图层进行更新,打开系统的界面,针对地图文档中无效的图层数据,添加数据源完成数据的第一次更新(如图1)。从更新结果可以看出,地图文档中已经存在的数据图层,结果显示“不变”;从添加的数据源中,部分数据更新“成功”,呈绿色字体;然而更新“失败”的呈红色字体。针对未更新成功的数据,继续添加其它的数据源,最后我们再重新更新一次并保存更新后地图数据(如图2)。至此,地图文档的所有无效数据更新完成。
本文利用Arc Engine组件和VS2010开发工具,设计了区别于ArcGISDesktop的数据源设置的数据源更新系统,有效地实现了多元化数据存储方式的数据源批量更新。整个系统功能操作简单,实现了打开需要更新的地图文档、添加不同数据源、数据源更新、实时查看地图文的数据更新状况等功能,以简洁且友好的界面帮助用户批量处理无效图层数据。
参考文献:
[1]汤国安,刘学军,闾国年,盛业华,等.地理信息系统教程[M].北京:高等教育出版社,2007.
[2]陈述彭,鲁学军,周成虎.地理信息导论[M].北京:科学出版社,2000.
[3]胡鹏,黄杏元,华一新.地理信息教程[M].武汉:武汉大学出版社,2002.