基于ARCGIS SERVER的网络分析功能实现及应用
资源配送的实现
资源分配问题,就是将数量一定的资源(如原材料、资金、机器设备、劳动力、食品等)恰当地分配给若干个使用者, 使总的路径值最优
private void SolveSource()
{ try
{ //取得网络分析服务
using (NAServerProxy naServer = NAServerProxy.Create(SERVER_NAME, ROUTE_SERVICE_NAME, null))
{ if (naServer == null)
throw (new System.Exception("Could not find the web service."));
//取得网络分析参数
string[] naLayers = naServer.GetNALayerNames(esriNAServerLayerType.esriNAServerRouteLayer); NAServerSolverParams solverParams = naServer.GetSolverParameters(naLayers[0]) as NAServerSolverParams;
//设置网络分析参数
NAServerRouteParams routeParams = solverParams as NAServerRouteParams;
……………
//对起点和终点地理编码
LoadLocationsSource(solverParams);
//查找路径
NAServerSolverResults solverResults;
solverResults = naServer.Solve(solverParams);
//显示结果
OutputSourceResults(solverResults);
}
}
1.1.5 道路分析与建议
根据道路的统计数据分析各条道路的现状,以及给行人分析行走路线或者给政府部门进行各种整顿工作.
如下代码是显示道路数据的明细情况:
string strQuery = "select * from streetculture ";
DataSet ds = new DataSet();
OleDbDataAdapter adapter = new OleDbDataAdapter();
adapter.SelectCommand = new OleDbCommand(strQuery, conn);
adapter.Fill(ds);
this.GridView3.DataSource = ds;
this.GridView3.DataBind();
如下代码是综合得分的代码:
………
while (reader.Read())
{ score[i] = (int)100 - (int)reader.GetValue(1) * 2 - (int)reader.GetValue(2) * 3 - (int)reader.GetValue(3);
name[i] = (string)reader.GetValue(0);
i++;
}
………
}
如下代码是给各个部门的建议:
………
string strQuery1 = "select * from streetculture where 堵车次数>10";
OleDbCommand cmd = new OleDbCommand(strQuery1, conn);
OleDbDataReader reader = cmd.ExecuteReader();
this.TextBox8.Text = "以下地方请政府部门注意,希望能够加强道路分流";
while (reader.Read())
{ this.TextBox8.Text += (string)reader.GetValue(0) + ",";}
………
reader.Close();
conn.Close();
1.2 综合实例的实现
1.2.1 道路通之一:轿车助手
本实例是综合了最优路径查询与设置障碍点, 障碍点可以用户自己设置,可以增加也可以删除.系统默认有四个障碍,列在表中,当用户设置完成后,只要点击确定就可以找到最优路径.其核心代码如下:
private void SolveCAR()
{ try
{ //取得网络分析服务
using (NAServerProxy naServer = NAServerProxy.Create(SERVER_NAME, ROUTE_SERVICE_NAME, null))
{ if (naServer == null)
throw (new System.Exception("Could not find the web 751com.cn
//取得网络分析参数
string[] naLayers = naServer.GetNALayerNames(esriNAServerLayerType.esriNAServerRouteLayer); NAServerSolverParams solverParams = naServer.GetSolverParameters(naLayers[0]) as NAServerSolverParams;
//设置网络分析参数
NAServerRouteParams routeParams = solverParams as NAServerRouteParams;
……………
//对起点和终点地理编码
LoadLocationsCar(solverParams);
//查找路径
NAServerSolverResults solverResults;
solverResults = naServer.Solve(solverParams);
//显示结果
OutputResults(solverResults);
}
}
上一页 [1] [2] [3] 下一页
网络分析系统设计 第2页下载如图片无法显示或论文不完整,请联系qq752018766