首页 / 浏览问题 / WebGIS / 问题详情
supermap classic jsapi 多路径规划的疑问
8EXP 2021年06月09日
大家好:我现在封装一个多路径规划服务,想控制多对起止点中任意一对起止点规划出来的路径,也就是想让起止点对与相应的路径绑定起来,请问有相关经验的同学如何实现?

说明:我的多路径规划是共用的一套算路逻辑。我初步想法是设置起止点和对应的路径线相同的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);
    },

1个回答

让起止点与对应的路径进行绑定应该是不能实现的,假如您有两个路径的起止点是一样的,但是障碍点不一样的话,就没法判断路径分别是要绑定哪个了。

每次执行路径分析后会得到一个与之对应起止点、障碍点的path.jsonp,可以通过该文件来对其路径结果进行分析。
2,248EXP 2021年06月09日
假如您有两个路径的起止点是一样的,但是障碍点不一样的话,

张老师,不幸被您言中,正好项目上有这样的情况。。。。看样子只能算完一条路后算另一条路。。。

非常感谢您的回复!
...