当前位置:首页 > 述职报告 > 建立公路路面信息数据库:如何建立一个简单的工作信息数据库
 

建立公路路面信息数据库:如何建立一个简单的工作信息数据库

发布时间:2019-03-12 03:52:24 影响了:

  利用先进的信息技术建立和优化公路养护数据库是提升公路养护水平的有效方法。本文以公路养护路面信息数据库为例,向读者介绍利用地理信息系统(GIS)和MapX软件建立和优化数据库的方法。
  随着我国公路建设的不断发展,公路养护管理部门采用传统管理手段与业务需求之间的矛盾日益突出,主要表现在养护业务数据的日益增加,传统纸质资料的存档与查询极为不便,资料利用效率极低。高效地存储管理各类养护资料,建立详细的养护设施地理与属性数据库,查询管理养护数据是各级公路养护部门最为迫切的需求。而利用先进的信息技术建立和优化养护数据库是一步到位的有效方案。这里我们以公路养护路面信息数据库为例,向读者介绍利用地理信息系统(GIS)和MapX软件建立和优化数据库的方法。
  
  空间数据动态分段整理
  
  公路在空间分布上有线性特征,各类公路相关的属性信息一般采用线性参考系统(里程值)采集和存储的,如路面等级、养护质量和交通量等。而传统的GIS一般采用大坐标参考系统,关注的是二维或者三维坐标空间,并不擅长于线性处理。此外,在数据组织方式上,传统的GIS软件一般一个孤段对应一个属性记录,因此要存储这些信息,就需要按照不同的属性采用不同的分段方式。而在实际工作中,公路养护涉及的属性种类广泛,因此按照这种方式组织数据是不可行的。这给GIS处理组织公路相关信息带来了挑战。
  在系统中运用动态分段思想,建立公路里程桩参照系统,解决了传统的公路里程定位与地理坐标定位之间的相互转换问题。如图1所示,根据道路编号、起始点和终点的里程桩号、沿途的百米桩产生公路里程桩号系统。利用动态分段技术,使用已有的里程桩内插,就可以得到公路上任意位置的里程信息,同时也可以查到已知的里程在地图上的对应位置。对于属性数据,采用独立存储方式,在各属性表里分不同路段来记录,属性表里除了公路相关属性外,还增加了该属性对应的路段编号,起始和终止里程信息,如表1所示。采用这种方式组织的属性数据,可以利用属性表中的起始与终止里程字段动态生成公路临时空间数据,从而可以很方便地参与各种空间分析与查询。
  路面养护信息数据库主要包括空间数据库与属性数据库:空间数据库存储道路的空间属性信息,处理关键是确定最小管理单元。根据公路的特征,系统采用各行车方向(上行/下行)各车道的每100米长路段作为一个管理对象,即最小单元段,在GIS中用Polygon表示。利用所在地区的电子地图,首先将其矢量化为CAD图形,然后通过GIS软件将各图层转换为GIS格式,并为其手动赋以标志码“Acode”,惟一标记一个最小单元段,实际使用采用的软件为AutoCAD2000与ESRIArcView3.3。属性数据库存储路面的基本静态信息和决策支持所必须的损坏信息和交通信息等。同样以各行车方向(上行/下行)各车道的每100米长路段作为一个单元段,主码为“Acode”。空间数据库和属性数据库通过“Acode”字段建立一一对应的连接,属性数据库的建立实际使用的是SQL Server 2000。
  实际应用过程中,空间数据的采集和属性数据的归类是数据库建立的基础,在数据库建立之后,如何将地图数据与属性数据关联起来成为养护数据应用的关键,下面我们看看如何利用MapX软件来实现两者的关联。
  使用MapX开发过程中涉及的数据主要包括两个来源:一部分是空间数据库中包含的地图数据文件,这些均属于几何数据文件,其他所有的非几何数据即属性数据均由SQL Server 2000管理。因此,要实现图文互动,必须建立几何数据和属性
  数据之间的关系。
  MapX功能非常强大,支持几乎所有类型的外部数据。例如地图数据,如果用户已经购买了或是利用MapInfo创建了MapInfo地图,可以直接将它们在应用中打开。再例如远程空间数据库,利用MapX可以访问保存在Oracle8i及MapInfo SpatialWare中的地图数据。其中,对Oracle8i的支持是MapX 4.0的新特性。通过Oracle8 Call Interface(OCI),MapX可以将存储在Oracle8i数据库服务器中的MapInfo空间数据和属性数据同时下载到本地。 还有其他远程数据,MapX支持多种对外远程数据的访问方式,如ADO、DAO、及RDO等,更可以通过ODBC使用更广范围内的数据。
  
  ● MapX中的数据绑定
  
  在MapX中,属性数据与几何数据的关联是通过数据绑定实现的。让我们先来了解一下在MapX中什么是数据绑定。简单来说,数据绑定就是将外部数据引入MapX的过程。MapX中可以绑定的数据源包括的类型见表2。
  在MPAX数据绑定主要有两个作用。第一个作用可以以地图中的图形对象来显示数据。通过数据绑定,可以将BindLayer对象作为一个参数,使用Datasets.Add方法将自己的表转变为一个DataSet。这将在地图中创建一个新的图层,并且将表中的数据以点等图形对象表示。一旦将数据引入地图,就可以很容易地使用MapX创建应用程序,并实现多种地图功能。最重要的作用就是将属性数据绑定到地图中,并创建专题图如果地图对象中包含相应的属性信息,也可以使用Datasets.Add方法将某个属性字段添加到地图中,进而就可以按照需要创建相关的专题图。
  
  ● 数据绑定的具体实现
  
  到底如何来实现数据绑定呢?使用Datasets.Add可以将用户数据绑定到地图中。在MapX中,每张地图对应多个图层(Layers),每一个图层(Layer)都有一个Datasets,其中包含DataSet对象。Datasets拥有一些属性和方法,用来在集合中添加和删除Dataset 对象,主要方法包括Add和Remove。
  使用Datasets.Add绑定的最终结果是Dataset对象的创建。这个Dataset对象被加入到Datasets集合中,包含了被绑定图层的对象的计算结果。比如说,如果数据被绑定到江苏公路地图,每一个市将对应一个新的数据值,这个数据值被用来控制地图的绘制。如果数据源中含有某个市的多个记录,则这些记录的值可以进行累加、平均值等计算。使用Dataset的Value方法可以取得地图中每一个对象的计算结果。Datasets.Add方法的使用主要需确定所绑定数据源的类型、绑定到地图的哪一层以及与地图之间关联的字段。
  Datasets.Add方法的语法如下:Datasets.Add Type, SourceData, [Name], [Geofield], [SecondaryGeofield], [BindLayer], [Fields], [Dynamic]。其中[]中的参数是可选的。Type的取值范围为DatasetType常量,对应于可绑定的数据类型,根据DatasetType的不同,SourceData有不同的取值。Name为String类型,惟一标识Dataset。Geofield指定数据源中包含地理信息的字段名称或索引。比如在2004年开始建立的“合宁高速养护数据库”中,表T_DJQH的xzqybh字段其实就是用来标识地图中地级行政区划的,因此在调用Datasets.Add时Geofield参数即传递xzqybh。 如果要将数据表示为地图上的图形对象,数据源中GeoField所表示的字段必须惟一,并且被用来命名新的图层中的对象。非惟一值将在新的图层中以一点代替,重复记录对应的数据值将被求和。如果定义了Fields,则Geofield参数将表示Fields中的字段,而不是sourcedata。 可以看到,Geofield在几何数据与属性数据关联中起了绝对关键的作用。BindLayer指明外部数据应该绑定到地图中的哪一层。该参数可选,未指定时MapX自动在GeoDictionary中查找相匹配的图层。但是从性能考虑,在肯定的情况下应当明确指定。Fields 属性描述外接数据源中的哪些字段被引用,以及当数据源中有多条记录对应一个地图对象时使用哪些集合函数,默认的集合函数是SUM(求和)。Dynamic为布耳类型参数,用于控制数据绑定是否动态,默认为False,表示静态绑定,即当数据库被打开时MapX将拷贝所需数据;如果设定为True,MapX会以实时的方式访问数据。

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3