3.4.2数据操作类CDbProcess方法的具体实现
3.4.2.1 控件的初始化
由于在此次开发过程中,我们使用了DataGrid控件来存储基本的数据,因此在使用该控件时,必须对其进行初始化。初始化过程就相当于数据的重新安排以及数据表格的生成,生成的数据必须有利于后面的地图控件对数据的读取,同时,也需考虑到如何方便使用者读取数据。
为了满足地图控件的要求,首先考虑地图上最基本的点对象的三维坐标系统信息的存储,这些基本的信息是必须记住的,在随后的算法计算当中会使用到这些数据。因此,在数据中必须保证准确实时的存储点对象最基本的数据值坐标(X,Y,Z),同时,本系统结合的是本专业专业知识,因此,同时需要记录给出图上线路(即:管路)的长度以及管路之间的连接方式,所以我们采用了图论中的树的出入度来表示管路之间的联系方式;在管网计算当中,图上的区域的面积(即:排水管网的排水区域面积)也必须记录下来,方便随后的计算程序计算。
上述数据的信息需要记录在DataGrid控件当中,数据的结构记录则是在控件开始初始化时所进行的。具体实现代码如下:
public void FillPointData(DataGrid dg) { try { DataTable dt=new DataTable(); DataColumn cols; cols=new DataColumn(); cols.ColumnName="编号"; cols.DataType=Type.GetType("System.Int32"); dt.Columns.Add(cols); cols=new DataColumn(); cols.ColumnName="坐标X"; cols.DataType=Type.GetType("System.Double"); dt.Columns.Add(cols); cols=new DataColumn(); cols.ColumnName="坐标Y"; cols.DataType=Type.GetType("System.Double"); dt.Columns.Add(cols); cols=new DataColumn(); cols.ColumnName="高程Z"; cols.DataType=Type.GetType("System.Double"); dt.Columns.Add(cols); dg.DataSource=dt; } catch(Exception ex) { msg="错误原因:"+ex.Message+"/n错误源:"+ex.Source+"/n错误帮助:"+ex.HelpLink; } } |
3.4.2.2 数据的记录
综上所述,数据记录的表头按照如下格式记录。在该记录表中,不仅标示了涂上数据的相关图信息,同时也为随后的计算准备了数据计算源,以方便计算。
表 3-6 数据记录表头
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
坐标X |
坐标Y |
上游节点编号 |
下游节点编号 |
本段街坊面积 |
计算管段长度 |
上游地面标高 |
本段集中流量 |
上游接管数 |
本段比流量 |