多旅行商分析/物流配送
多旅行商分析也称为物流配送,是指在网络数据集中,给定M个配送中心点和N个配送目的地(M,N为大于零的整数),查找经济有效的配送路径,并给出相应的行走路线。 多旅行商分析功能就是解决如何合理分配配送次序和送货路线,使配送总花费达到最小或每个配送中心的花费达到最小。
多旅行商分析的结果将给出,每个配送中心所负责的配送目的地,并且在某个配送中心向其负责的配送目的地配送货物的时候,又给出经过各个配送目的地的顺序,和相应的行走路线,从而使该配送中心的配送花费最少,或者使得所有的配送中心的总花费最小。
下面以长春数据为例,利用多旅行商分析和旅行商分析对食品厂各个仓库配送中心到用户指定的零售站的配送路线进行分析,并且给出质检员定期到各个零售站检查货品情况时所走的花费最小的路线,其接口使用方法如下所示:
设置多旅行商分析参数 findMTSPPathsParams,包括交通网络分析通用参数、配送中心点集合、配送目标点集合、配送模式等。
//交通网络分析结果参数
var resultSetting = new SuperMap.TransportationAnalystResultSetting({
//是否在分析结果中包含弧段要素集合
returnEdgeFeatures: true,
//返回的弧段要素集合中是否包含集合对象信息
returnEdgeGeometry: true,
//返回的结果中是否包含经过弧段ID集合
returnEdgeIDs: true,
//返回的分析结果总是否包含结点要素集合
returnNodeFeatures: true,
//返回的结点要素集合中是否包含集合对象信息
returnNodeGeometry: true,
//返回的分析结果中是否包含经过结点ID集合
returnNodeIDs: true,
//返回分析结果中是否包含行驶导引集合
returnPathGuides: true,
//返回结果中是否包含路由对象集合
returnRoutes: true
};
//交通网络分析通用参数
var analystParameter = new SuperMap.TransportationAnalystParameter({
//分析结果返回的内容
resultSetting: resultSetting,
//阻力字段的名称
weightFieldName: "length"
});
//多旅行商分析参数
var findMTSPPathsParams = new SuperMap.FindMTSPPathsParameters({
//配送中心集合
centers: [L.latLng(-5500, 6000), L.latLng(-2500, 5500), L.latLng(-3500, 2500)],
//是否通过节点ID号来指定配送中心点和配送目的点
isAnalyzeById: false,
//配送目标集合
nodes: [L.latLng(-5000, 5000), L.latLng(-2800, 8000)],
//配送模式是否为总花费最小方案
hasLeastTotalCost: true,
//交通网络分析通用参数
parameter: analystParameter
});
通过向服务端提交物流配送分析的请求参数,待服务端成功处理并返回分析处理结果后对其进行解析,获得由配送中心依次向各个配送目的地配送货物的最佳路径。
//创建多旅行商分析服务实例
var serviceUrl = "http://support.supermap.com.cn:8090/iserver/services/transportationanalyst-sample/rest/networkanalyst/RoadNet@Changchun";
var findMTSPPathsService = L.supermap.networkAnalystService(serviceUrl);
//向服务器发送请求,并对返回结果进行处理
findMTSPPathsService.findMTSPPaths(findMTSPPathsParams, function (serviceResult) {
//获取服务器返回的结果
var result = serviceResult.result;
});