首页 / 浏览问题 / 云GIS / 问题详情
请求路网,数据返回成功,但不能使用
2EXP 2020年08月06日

这是请求代码,数据可以成功返回,如下图所示

在此之前,一切正常.但是继续使用 serviceResult.result.pathList 就会报undefined error.可以查看返回结果,不能涉及任何操作,哪怕是克隆,复制取出里面的数据,对新数据进行操作,serviceResult.result就会报错


                var resultSetting = new SuperMap.TransportationAnalystResultSetting({
                    returnEdgeFeatures: true,
                    returnEdgeGeometry: true,
                    returnEdgeIDs: true,
                    returnNodeFeatures: true,
                    returnNodeGeometry: true,
                    returnNodeIDs: true,
                    returnPathGuides: true,
                    returnRoutes: true
                });
                var analystParameter = new SuperMap.TransportationAnalystParameter({
                    resultSetting: resultSetting,
                    weightFieldName: "Smlength"
                });
                var findPathParameter = new SuperMap.FindPathParameters({
                    isAnalyzeById: false,
                    // nodes: nodes,
                    nodes: [{"x":-2325864.1151754856,"y":477119.93055607023},{"x":-2296894.481455404,"y":476775.9639287869}],
                    hasLeastEdgeCount: false,
                    parameter: analystParameter
                });
                new ol.supermap.NetworkAnalystService("http://10.16.105.13:8090/iserver/services/transportationAnalyst-indoorMap/rest/networkanalyst/data_Network@data")
                    .findPath(findPathParameter, function (serviceResult) {

                });

使用产品:Iserver 9D

1个回答

您好,new ol.supermap.NetworkAnalystService("http://10.16.105.13:8090/iserver/services/transportationAnalyst-indoorMap/rest/networkanalyst/data_Network@data") .findPath(findPathParameter, function (serviceResult) { console.log(serviceResult)});打印下结果,看控制台是否有输出。或者是您那边看到的是只调用一次方法却出现了两次请求?
3,352EXP 2020年08月06日
您好,这个结果是可以打印的,对应的pathlist也有值,请求也只有一条,但就是不能对返回的对象进行操作,很苦恼

这个是路网请求以及相对应的返回值,具体使用 serviceResult 的时候就会报错

方法确实执行了两次,我在请求那加了个变量输出,结果这样了.请问该如何解决呢

再封装一层promise,reslove(reslut)弹出当前输出结果

promise可以 setTimeOut也行

...