基于GeoMedia平台的GIS数据库技术研究
李 梓1,杨 伟2,李洪波3
(1.大庆师范学院计算机科学与信息技术系,大庆163712;
2.辽宁石油化工大学职业技术学院,抚顺113001;3.大庆油田建设公司,大庆163712)
摘 要:在对地理信息系统(GIS)平台GeoMedia数据库系统充分分析,以及对GdataBase地理
信息对象研究的基础上,给出了采用应用程序实现GeoMedia地理信息数据库设计的模型和方法,并结合油田电力GIS实际开发,对技术实现的要点进行具体阐述。关键词:GIS;GeoMedia;数据库;对象
StudyonGISdatabasebasedonGeoMedia
LIZi,YANGWei,LIHong2bo
1
2
3
(1.DepartmentofComputerScienceandInformationTechnology,DaqingNormalUniversity,Daqing163712,China;2.VocationalTechnicalCollege,LiaoningUniversityofPetroleum&ChemicalTechnology,Fushun113001,China;
3.DaqingOilfieldConstructionCompany,Daqing163712,China)
Abstract:BasedonanalyzingGeoMediaGeographicInformationSystem(GIS)databaseandresearchingGda2taBasegeographicobject,thispaperproposesthemodelandmethodtorealizeGeoMediageographicaldatabasebyprogramming,andpresentsthekeyitemsaboutprogrammingaccordingtothedevelopmentoftheoilfieldpowerfacilitiesGIS.Keywords:GIS;GeoMedia;database;object
0 引言
GIS是一种基于计算机的工具,它可以对在地球上存在的事物进行成图和分析,在计算机的支持下,以一定的格式输入、存贮、检索、显示和综合分析应用的技术系统,是以采集、贮存、管理、处理分析和描述整个或部分地球表面与空间和地理分布有关的数据的空间信息系统。GIS技术把地图这种独特的视觉化效果和地理分析功能与一般的数据库操作集成在一起。GeoMedia是第一个建立在开放标准的WINDOWS基础上的以数据库管理为核心的企业级地理信息系统,发挥了Windows的图形对象的整合能力。本文通过对GeoMedia数据库的研究,和对数据库管理模式的具体分析,详细解析了基于GeoMe2dia平台,采用应用程序控制和开发地理信息数据库的技术实现过程。
的后台数据库采用Oracle系统,地理信息数据库管理是通过专用的GeomediaProfessional专业软件来实现。通过GeomediaProfessional地理信息软件可以建立数据表,提供后台数据表服务。这种建表方式有三个缺点:一是当建立某一种地理信息对象时,保存地理信息的字段名不确定,用户前台无法控制;二是建表时会产生冗余字段;三是建表时必须提供主键字段,否则系统自动创建字段,新建字段无法控制。1.2 程序控制管理模式
在地理信息数据库管理过程中,调用与管理地理信息字段数据时不能通过普通的数据库调用方法管理地理信息数据,如何通过程序创建与管理地理信息数据库是应用程序开发的重点。利用面向对象编程技术直接与GeoMedia数据模型进行交流,不仅可以完全利用GeoMedia对象,而且可以限制用户的
收稿日期:2007-02-05
作者简介:李梓(1970-),女,毕业于哈尔滨工程大学,硕士研究生,
研究方向是计算机网络和数据库。
1 GeoMedia数据库管理模式
1.1 专业软件管理模式
Geomedia平台是一套专业的地理信息平台,它
—135—
访问权限和控制工作流程。
2 GeoMedia数据库分析
2.1 地理信息数据库结构
GeoMedia地理信息数据库结构与普通数据库有多方面的不同,主要区别有两点。
(1)系统表。系统表作为地理信息特有的数据表,是地理信息数据库管理的关键,系统表的产生是地理信息数据库创建时由系统自动创建的表,它包括系统信息表、字段信息表、字段属性信息表、地理信息字段表等八个系统表,这些系统表的存在保证了地理信息数据的正常读取。
系统表是基础数据表与地理信息进行交流的接口与控制中心。每当系统调地理信息时,首先在系统中进行检索,如:调用“油井”表,首先进入字段信息表中检索所有表名等于“油井”记录,将这些记录取出作为“油井”字段的基础信息,然后进入字段属性信息表中将所有字段属性信息与字段名相对应,最后利用地理信息字段表确定地理对象类别及存储地理对象的字段名。
(2)字段存储内容。地理信息字段不同于普通的文本、数据、日期类型字段,它是由地理系统将可视的地理信息坐标数据转成特殊的二进制数据流,保存在二进制字段中的。这种二进制字段数据不能通过普通方法打开,必须通过Geomedia才能解析打开,程序开发过程中不能象调用普通数据那样调用该数据,必须通过专有地理信息函数管理地理信息字段。2.2 地理信息数据库对象结构
地理信息数据管理必须通过一套完整的地理信息数据库对象来实现,这种结构是以GdataBase作为对象最上层,逐级衍生不同类对象,使地理信息数据库的管理自上而下,形成层层产生的树形结构。图
1为地理信息数据库对象结构图。
图1 地理信息数据库对象结构图
—136—
最上层是GdataBase对象,下一层是GrecordSets数据集对象和GTableDefs表结构对象,其它对象由这两个对象派生而来。
2.3 数据库开发模型
数据库的开发和管理必须采用控制GeoMedia的结构化数据库对象才能完成,利用控制对象的应用程序将数据创建与管理功能由上至下、分层分段进行开发,可以解决多种数据库开发过程中遇见的各种问题。图2给出了基于GeoMedia平台的数据库开发模型。
(1)利用GTableDefs表结构对象创建表结构。GtableDefs是程序操作数据库表结构最大的对象,所有数据库结构的操作必须围绕该对象实现。利用GtableDefs对象创建Gfields对象,Gfields有很多方法与属性,通过方法与属性设置字段的具体内容,利用GtableDefs追加命令加载字段,使数据库产生相应字段,从而实现由程序控制字段产生与设置。
(2)利用GrecordSets数据集对象管理数据。GrecordSets数据集可以分为普通数据管理模式和地理信息管理模式。普通数据管理模式主要是利用数据集的记录及数据编辑方法实现对非地理信息数据的管理。地理信息管理模式利用GeometryStorageService数据存储转换对象的方法SetGeometry和Get2Geometry,以数据集对象字段和地理信息对象作为参数完成地理数据存储。
图2 地理信息数据库开发模型
3 GIS数据库的开发实现
3.1 数据库连接
通过创建连接对象和数据对象两种连接模式连
接数据源。
(1)创建连接对象模式。利用Geomedia对象中的Connection对象连接数据库:
DimobjConnectionsAsNewConnectionsDimobjConnectionAsConnection
DimobjOPipeAsOriginatingPipe
SetobjConnection=objConnections.Add(″Connec2
tionName″
)WithobjConnection .Type=″Access.GDatabase″ .Location=″…\\warehouses\\myDB.mdb″ .ConnectEndWith
当连接对象建立后,通过建立通道方式交流数据:objConn.CreateOriginatingPipeobjOPipeWithobjOPipe
.GeometryFieldName=″Geometry″.Table=″油井″EndWith
objrs=objOPipe.OutputRecordset
通过这种方式采用建立连接对象及数据通道多层数据库联接方式,打开的数据库只能进行浏览,不能对数据库进行任何管理。∞(2)创建数据对象模式。在Geomedia对象中有Gdatabase对象,由该对象可以创建和管理地理信息数据库:
setdb=createobject(″ACCESS.GDataBase″)db.opendatabase″…\\oilfield\\map.mdb″
这种连接方式不仅可以直接连接数据源,减少大量冗余代码,还可以利用结构化方式管理数据库的结构信息。3.2 创建数据库
必须保证两方面数据的建立,一方面是对地理信息数据字段的建立,另一方面是将地理信息基础表信息加载到系统表中,通过两方面数据的完善才能达到地理信息数据表正常管理的目的。
(1)建立地理信息字段。地理信息字段的建立采用数据库(Gdatabase)、数据表(Gtabledef)、数据字段(Gfield),从上至下,层层创建,层层加载方式实现。
(2)系统表的维护。系统表作为地理信息关键表,保存着地理信息所有字段不同结构信息,必须将每个字段的基础结构加载到系统表中,才能使地理信息正常管理,与建结构联系最紧密的是Fieldlook2up,Gfeatures,AttributePropertics三个系统表。3.3 数据库操作与管理
地理信息数据管理包括各种打开、修改、更新等正常的数据库操作,这些基本操作的完成通过Gda2tabase对象衍生Grecordset来完成,所有数据的操作都是通过该对象的方法执行与属性设置完成的。下面通过油田电力GIS为例来说明数据集对象的使用。油田电力的线路与线路负载遍布于油田每一个角落,线路与负载分别与地理信息中的线与点对应。创建电力线数据表、字段,向系统表中加载具体信息实现如下:
SetDB=CreateObject(″Access.GDatabase″)
DB.OpenDatabase″…\\oilfield\\dlxt.mdb″
SetTbl=DB.CreateTableDef(″电力线″
)SetFld=Tbl.CreateField(″gid″,gdbText)Fld.Required=FalseFld.Size=20
Tbl.GFields.AppendFld
SetFld=Tbl.CreateField(″Geometry″,gdbSpatial)WithFld .Type=gdbSpatial .Required=TrueEndWith
Tbl.GFields.AppendFld
DB.GTableDefs.AppendTblquerystring=″select3fromfieldlookup″
Setobjrs=DB.OpenRecordset(querystring,gd2bOpenDynaset)
objrs.AddNew
objrs.GFields(″table″)=″电力线″objrs.GFields(″field″)=″gid″
objrs.Update
querystring=″select3fromGFeatures″
Setobjrs=DB.OpenRecordset(querystring,gd2bOpenDynaset)
objrs.AddNewobjrs.GFields(″Name″)=″电力线″
objrs.GFields(″PrimaryGeometryFieldName″)=″Ge2ometry″
objrs.Update
通过上述方法建立电力线基础表“,Geometry”作为地理信息字段名,以“点”型作为地理信息子类,实现了电力线数据的操作和管理。
4 结束语
地理信息技术是一项专业性很强的开发技术,通过对GeoMedia地理信息数据库的开发和应用研究,深刻体会到了GIS的强大功能和发展潜力。当前无论是企业还是政府部门,应用地理信息平台进行数据管理和共享的需求越来越大,GIS技术的开发应用将越来越深入和广泛。参考文献:
[1] 毛锋,等1地理信息系统建库技术及其应用[M]1科学出版社,
19991
[2] 乌伦,刘瑜,等1地理信息系统原理、方法和应用[M]1科学出
版社,20011
[3] 张健沛,等1数据库原理及应用系统开发[M]1中国水利水电
出版社,19991
责任编辑:肖滨
—137—
因篇幅问题不能全部显示,请点此查看更多更全内容