大家好:我现在封装一个多路径规划服务,想控制多对起止点中任意一对起止点规划出来的路径,也就是想让起止点对与相应的路径绑定起来,请问有相关经验的同学如何实现?
说明:我的多路径规划是共用的一套算路逻辑。我初步想法是设置起止点和对应的路径线相同的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);
    },