首页 / 浏览问题 / 云GIS / 问题详情
空间分析,循环时有问题
10EXP 2017年11月16日

空间分析放在for循环里,运行时iserver就自己关闭了,

function calc(){
        for (var i = 1; i < 500; i++) {
                var topographyServiceByDatasets = new SuperMap.REST.OverlayAnalystService(url3);
                var dsTopographyAnalystParameters = new SuperMap.REST.DatasetOverlayAnalystParameters({
                        sourceDataset: "安康市地形地貌分布图@192.168.30.10_map_ankang",
                        operateDataset: "安康市2500米网格@192.168.30.10_map_ankang2",
                        //operateDatasetFilter: {attributeFilter: "smid = 276"},
                        operateDatasetFilter: {attributeFilter: "smid ="+i+""},
                        sourceDatasetFields:["topography","probability"],
                        operateDatasetFields:["smid","SmArea"],
                        tolerance: 0,
                        operation: SuperMap.REST.OverlayOperationType.INTERSECT
                });
                
                topographyServiceByDatasets.events.on({"processCompleted": function(args){
                    var feature, features = [];
                    var p1=0;
                     for(var i=0;i<args.result.recordset.features.length;i++){
                         feature = args.result.recordset.features[i];
                         var areaTotal=feature.attributes.SmArea_2;
                         var probability=feature.attributes.probability;
                         var area=feature.attributes.SmArea;
                         var p=(area/areaTotal)*probability;
                         p1+=p;
                     } 
                     console.log(p1);
                }, "processFailed": overlayAnalystFailed});
                topographyServiceByDatasets.processAsync(dsTopographyAnalystParameters);
        }
        }

1个回答

空间分析本身就是个 吃运算的过程,不知道你连续500次并发运算是 需要测试性能么,  对于这种高并发,建议你搭载iServer分布式集群提高运算能力
186EXP 2017年11月17日
我需要循环计算每个网格跟另外一个图层的交集
...