空间分析,循环时有问题

0 投票

空间分析放在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);
        }
        }

11月 16, 2017 分类:  303次浏览 | 用户: Ace丶林 才疏学浅 (10 分)
重新分类 11月 17, 2017 用户:孔祥

1个回答

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