GeoMedia下入库数据批量拼接技巧

2011-09-27 10:42赵建辉
地理空间信息 2011年1期
关键词:数据表批量二次开发

薛 萍,赵建辉

(1.新疆维吾尔自治区测绘技术中心,新疆 乌鲁木齐 830002;2.新疆维吾尔自治区第二测绘院,新疆 乌鲁木齐 830002)

GeoMedia下入库数据批量拼接技巧

薛 萍1,赵建辉2

(1.新疆维吾尔自治区测绘技术中心,新疆 乌鲁木齐 830002;2.新疆维吾尔自治区第二测绘院,新疆 乌鲁木齐 830002)

介绍并总结了GeoMedia下的入库方法以及存在的问题,主要研究了在GeoMedia下入库数据批量拼接处理技巧,详细阐述了两种处理方法。两种处理方法在实际项目生产中都取得了良好的效果。

GeoMedia;入库;Access;SQL语句;数据处理;GIS

基于Intergraph公司Jupiter技术的地理信息系统软件GeoMedia,是一个在Windows平台上运行的开放式桌面GIS系统。笔者在新疆克拉玛依基础测绘项目中应用该软件生产和加工DLG数据。本文阐述在GeoMedia中入库数据拼接时存在的问题以及解决技巧。

1 GeoMedia入库介绍以及存在的问题

作为一个地理信息显示和分析工具,GeoMedia可以让来自不同信息源、不同数据格式和不同投影方式的数据集成融合于同一环境之中,并实现这些不同数据源的空间数据和属性数据进行多种复杂的查询,产生一系列高质量的视图。在GeoMedia中,特征(feature)是通过几何图形在地图上所表现出来的一个地理实体,通过非几何性的属性数据定义在一个数据库中。仓库(warehouse)对GeoMedia来说就是一个图形数据的数据源。每一个仓库仅包含一种数据类型,如 Access、MGE、ARC/INFO、Oracle、ArcView、Map Info或CAD。

GeoMedia中的数据通过多种方法实现了将图形数据保存在Access小型数据库、SQL Server中型数据库和Oracle大型数据库中。这就使得每次使用数据前都需要通过仓库从工作区建立一个数据库连接,在操作上显得有些繁琐。

另一方面,GeoMedia存储的Access数据库与Arc-GIS存储的Access数据库虽然在原理上基本一致,但在实际物理存储方式和方法上有些差别,导致这两种数据不能相互共享。尤其要指出的是:GeoMedia存储的Access表结构中ID索引为系统自动编号,但在GeoMedia处理数据拼接时又不能自动更新这个ID索引而导致数据部分丢失或出现错误。对于这个问题,本文第三节将作详细阐述。

2 GeoMedia下单幅入库数据的拼接

在GeoMedia下要实现数据拼接,需要把入库的数据一幅一幅按先后顺序打开,且每次只能合并两个数据文件(注意源文件和目标文件的设定)。另外,如果不预先处理好ID索引的更新问题,就无法正常进行拼接操作。根据前面的分析和笔者的实践经验,这里介绍两种方式来快速处理Access入库数据拼接问题。

2.1 对ID索引更新问题的预处理

在Access软件下打开原数据库文件,在表结构设计视图下把ID1字段的类型从“自动编号”修改为“文本”并保存;在更新查询中执行下列语句:

update AANPset ID1=[MAPID]+[ID1]

也可以在设计视图中进行更新查询(如图1所示)。

图1 更新查询

2.2 表结构不同时,在Access软件下用表追加法

预处理完后,在Access软件下打开原数据库文件,选定一个表名,在菜单中选“插入-查询-设计视图”,在显示表中选要追加的表项,然后在每项表格中选对应的表结构。最后在菜单中选“查询-追加查询”,将要追加的表结构追加下表中,就完成了(见图2)。

2.3 表结构相同时,链接并将原数据导入到数据表中

预处理完后,在GeoMedia系统下创建一个新的数据库表。链接原数据表和待追加的数据表,在数据仓库菜单下选导出到特征类,将原来的数据表的数据,全部导入到新建的数据表中。

图2 追加表结构

3 批量入库数据的拼接

上述方法只试用于单幅图的拼接处理。笔者采用ADOX (Microsoft Active X Data Objects Extensions for Data Definition Language and Security技术)基于C#编写了批处理程序,实现了批量拼接。

通过批处理,可以实现对文件夹下所有(*.MDB)入库数据的拼接操作,减少人为出错,提高了效率。

4 GeoMedia的二次开发

GeoMedia软件同样也是一个软件开发环境,我们可以用标准的Windows开发工具如Microsoft Visual Basic或Visual C++来实现自定义功能。GeoMedia提供了三种开发方式:1)通过GeoMedia对象创建一个自定义应用;2)采用COM技术,通过GeoMedia Application对象来实现跨程序应用;3)使用GeoMedia命令向导来创建自定义命令。采用这其中的任何一种方法,我们都可以实现批量入库数据的拼接操作。

5结语

本文详细阐述了GeoMedia的入库方法和分析了入库数据。通过文中介绍的两种方法实现了GeoMedia入库数据的批量拼接,最后简单介绍了GeoMedia的二次开发功能。其实在这两种方法的基础上,通过二次开发都可以实现数据的批量拼接处理,但要能更快地提高生产效率和数据质量,还需要做进一步的研究和试验。

[1] 韩光瞬,杨柏钢,郭金丽,等.跨图幅要素物理无缝拼接关键技术研究及软件实现[J].测绘科学,2010,35(1):119-120

[2] 杜四春,蔡立军.C#程序设计[M].北京:中国水利水电出版社,2006

[3] 赵江洪.GIS中多图幅自动接边的实现方法探讨[J].测绘通报,2006(2):50-52

[4] 罗德安.一个GeoMedia访问扩展类的构建[J].计算机系统应用,2003,9(3):15-17

[5] 张书亮,闾过年,龚健雅,等.地理标示语言-Geo-Web基础[M].北京:科学出版社,2007

Mosaic Techniques for Batch Data Inbound Based on Geo Media

by Xue Ping

This article had introduced and summarized the method for data inbound based on Geo Media and related existing issues,and mainly studied on mosaic techniques for batch data inbound based on Geo Media.Two processing methods had been depicted in details,which had produced very good results in practical project production.

Geo Media,data inbound,Access,SQL code (Page:9)

P208

B

1672-4623(2011)01-0009-02

2010-10-22

薛萍,高级工程师,主要从事国土资源信息化建设以及GIS信息系统的建设和遥感影像的分析与处理。

猜你喜欢
数据表批量二次开发
批量提交在配置分发中的应用
湖北省新冠肺炎疫情数据表(2.26-3.25)
湖北省新冠肺炎疫情数据表
浅谈基于Revit平台的二次开发
浅谈Mastercam后处理器的二次开发
基于列控工程数据表建立线路拓扑关系的研究
西门子Easy Screen对倒棱机床界面二次开发
在数控车床上批量钻铰孔类工件的实践
图表
基于AUTOIT3和VBA的POWERPOINT操作题自动批量批改