diff --git a/src/module_vmap/module/javascript/app/vmap/tools/select/select.js b/src/module_vmap/module/javascript/app/vmap/tools/select/select.js index 50708b52ab98f53011af34de6d4a255122f6f3cf..9c89bc22cbe78198752e73c76846568ace3d2d68 100755 --- a/src/module_vmap/module/javascript/app/vmap/tools/select/select.js +++ b/src/module_vmap/module/javascript/app/vmap/tools/select/select.js @@ -540,14 +540,25 @@ nsVmap.nsToolsManager.Select.prototype.selectController = function ($scope, $tim var aFeatures = evt.features.getArray(); // Évite les superpositions avec les autres couches si besoin + var j = 0; for (var i = 0; i < aFeatures.length; i++) { this_.avoidSuperpositions(aFeatures[i]).then(function(){ + j++; + if (!j < aFeatures.length) { + setTimeout(function () { + this_.putFeaturesOnTheElement(this_.oOverlayFeatures_.getArray()); + }); + } }); } + // Cas où avoidSuperpositions n'ait pas effectué de callback setTimeout(function () { - this_.putFeaturesOnTheElement(this_.oOverlayFeatures_.getArray()); - }); + if (j === 0) { + console.error('avoidSuperpositions never sents callback'); + this_.putFeaturesOnTheElement(this_.oOverlayFeatures_.getArray()); + } + }, 3000); }); /** @@ -2215,6 +2226,8 @@ nsVmap.nsToolsManager.Select.prototype.selectController.prototype.avoidSuperposi this.setDiffGeom_(aSuperpositionBos, olFeature).then(function(olFeature){ deferred.resolve(olFeature); }); + } else { + deferred.resolve(olFeature); } return deferred.promise;