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
|
上游节点编号
|
下游节点编号
|
本段街坊面积
|
计算管段长度
|
上游地面标高
|
本段集中流量
|
上游接管数
|
本段比流量
|