大家好:我现在封装一个多路径规划服务,想控制多对起止点中任意一对起止点规划出来的路径,也就是想让起止点对与相应的路径绑定起来,请问有相关经验的同学如何实现?
说明:我的多路径规划是共用的一套算路逻辑。我初步想法是设置起止点和对应的路径线相同的uuid,但是,api中算路成功后的回调,貌似是和前置参数脱节的,毫无关系;我仔细看了算路完成的回调参数findPathEventArgs对象,里面也没有附带起止点的任何除经纬度以外的信息(findPathEventArgs.object.options.nodes中包含的就是起止点的经纬度信息),我现在有好几类的路径结果,想要分别控制。
期待大牛答复,谢谢!
相关代码如下:
that.nodeArray.forEach((item) => { //that.nodeArray是一个二维数组,每一个元素是一个起止点对
// 算路
that.findPath(item, []);
});
//----------------------------------split line
findPath: function (nodes, barrierPoints) {// 算路方法 - 共用
var findPathService, parameter, analystParameter;
analystParameter = new SuperMap.REST.TransportationAnalystParameter({
resultSetting: this.resultSetting,
weightFieldName: this.weightFieldName
, barrierPoints: barrierPoints
});
parameter = new SuperMap.REST.FindPathParameters({
isAnalyzeById: false,
nodes: nodes,
hasLeastEdgeCount: false,
parameter: analystParameter
});
findPathService = new SuperMap.REST.FindPathService(url5, {//url5 路网服务
eventListeners: {
"processCompleted": this.processRoadCompleted.bind(this),
"processFailed": this.processFailedResult.bind(this)
}
});
findPathService.processAsync(parameter);
},
/**
* 算路完成处理
*/
processRoadCompleted: function (findPathEventArgs) {
var result = findPathEventArgs.result;
this.allScheme(result);
},
/**
* 算路失败
* @param {} findPathEventArgs
* @returns
*/
processFailedResult: function (findPathEventArgs) {
// console.warn(findPathEventArgs);
toastr.info('经过分析,没有可达路径');
return;
},
allScheme: function (result) {
this.addPath(result);
this.addPathGuideItems(result);
},