物流配送分析。
命名空间:
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(); }