物流配送分析。

命名空间:  SuperMap.Analyst.NetworkAnalyst
程序集:  SuperMap.Analyst.NetworkAnalyst (in SuperMap.Analyst.NetworkAnalyst)
版本: dll

语法

C#
public VRPAnalystResult FindVRPPath(
	VRPAnalystParameter parameter,
	VehicleInfo[] vehicleInfos,
	CenterPointInfo[] centerInfos,
	DemandPointInfo[] demandInfos
)

参数

parameter
Type: SuperMap.Analyst.NetworkAnalyst..::.VRPAnalystParameter
物流配送分析参数对象。
vehicleInfos
Type: array< SuperMap.Analyst.NetworkAnalyst..::.VehicleInfo >[]()[]
车辆信息数组。
centerInfos
Type: array< SuperMap.Analyst.NetworkAnalyst..::.CenterPointInfo >[]()[]
中心点信息数组。
demandInfos
Type: array< SuperMap.Analyst.NetworkAnalyst..::.DemandPointInfo >[]()[]
需求点信息数组。

返回值

物流配送分析结果对象。从9.0.1开始返回值变更为VRPAnalystResult

备注

该接口和之前的物流配送接口FindMTSPPath相比,多出了车辆信息、需求量等的设置,可以更充分的满足不同情况下的需求。

物流配送分析参数对象 VRPAnalystParameter可以设置障碍边、障碍点、权值字段信息的名字标识、转向权值字段,还可以对分析结果进行一些设置,即在分析结果中是否包含分析途经的以下内容:结点集合,弧段集合,路由对象集合以及站点集合。

车辆信息 VehicleInfo中可以设置每辆车各自的负载量、最大耗费等条件,VehicleInfo[1]表示所有车辆为同一规格,VehicleInfo[N]表示可以提供N辆车;中心点信息 CenterPointInfo中可以设置包括中心的坐标或者结点ID;需求点信息 DemandPointInfo中可以设置每个需求点的坐标或者结点ID,以及各自的需求量。

通过对车辆、需求点和中心点相关信息的设置,该接口可以根据这些条件来合理划分路线,完成相应的分配任务。

示例

以下代码示例了根据输入的交通网络分析参数返回一个耗费矩阵。

下面函数中操作的网络数据集为安装目录\SampleData\changchun\下的 changchun.udb 数据源中的名为 RoadNet 的网络数据集。

CopyC#
 public void ComputeWeightMatrixExample(DatasetVector networkDataset) 
 {
     //创建交通网络分析参数对象并进行相应设置
     TransportationAnalystSetting transportationAnalystSetting = new TransportationAnalystSetting();
     transportationAnalystSetting.NetworkDataset = networkDataset;
     transportationAnalystSetting.NodeIDField = "SmNodeID";
     transportationAnalystSetting.EdgeIDField = "SmID";
     transportationAnalystSetting.Tolerance = 89.00;

     //设置权重信息
     WeightFieldInfos weightInfos = new WeightFieldInfos();
     WeightFieldInfo weightInfo = new WeightFieldInfo();
     weightInfo.FTWeightField = "SmLength";
     weightInfo.TFWeightField = "Smlength";
     weightInfo.Name = "Name";
     weightInfos.Add(weightInfo);
     transportationAnalystSetting.WeightFieldInfos = weightInfos;

     //创建交通网络分析对象并设置分析环境对象
     TransportationAnalyst transportationAnalyst = new TransportationAnalyst();
     transportationAnalyst.AnalystSetting = transportationAnalystSetting;

     //加载网络模型
     transportationAnalyst.Load();

     //构造物流分析参数设置对象,设置权重名称、分析模式:
     VRPAnalystParameter parameter = new VRPAnalystParameter();
     parameter.WeightName = weightInfo.Name;
     parameter.AnalystType = AnalystType.LeastCost;

     //设置车辆信息数组:
     VehicleInfo[] vehicles = new VehicleInfo[2];
     vehicles[0] = new VehicleInfo();
     vehicles[0].Cost = 5000;
     vehicles[0].LoadWeight = 50;
     vehicles[1] = new VehicleInfo();
     vehicles[1].Cost = 8000;
     vehicles[1].LoadWeight = 60;

     //设置中心点信息数组:
     CenterPointInfo[] centers = new CenterPointInfo[1];
     centers[0] = new CenterPointInfo();
     centers[0].CenterID = 2695;

     //设置需求点信息数组:
     DemandPointInfo[] demands = new DemandPointInfo[5];
     demands[0].DemandID = 2718;
     demands[0].Demand = 15;
     demands[1].DemandID = 4449;
     demands[1].Demand = 18;
     demands[2].DemandID = 2572;
     demands[2].Demand = 15;
     demands[3].DemandID = 5028;
     demands[3].Demand = 15;
     demands[4].DemandID = 1749;
     demands[4].Demand = 20;

     //进行物流分析,返回物流分析方案
     VRPAnalystResult result = transportationAnalyst.FindVRPPath(parameter, vehicles, centers, demands);

     //释放资源
     workspace.Dispose();
}

请参见