diff --git a/src/module_vmap/module/javascript/app/vmap/map/mapcompare.js b/src/module_vmap/module/javascript/app/vmap/map/mapcompare.js
index 37bbe8aeaa3c138abd6a0ec03a879b724e4b4531..4fdf3a756d3a58291345c3b5b19ca7a9428f311a 100644
--- a/src/module_vmap/module/javascript/app/vmap/map/mapcompare.js
+++ b/src/module_vmap/module/javascript/app/vmap/map/mapcompare.js
@@ -446,6 +446,26 @@ nsVmap.MapCompare.prototype.mapCompareController = function ($scope, $window, $e
      */
     this.duration = 1000;
 
+    /**
+     * Timestamp of the last map center sync
+     */
+    this.lastMapSyncCenter_ = 0;
+
+    /**
+     * Timestamp of the last map compare center sync
+     */
+    this.lastCompareMapSyncCenter_ = 0;
+
+    /**
+     * Timestamp of the last map scale sync
+     */
+    this.lastMapSyncScale_ = 0;
+
+    /**
+     * Timestamp of the last map compare scale sync
+     */
+    this.lastCompareMapSyncScale_ = 0;
+
     /**
      * @type {ol.Map}
      * @private
@@ -547,24 +567,30 @@ nsVmap.MapCompare.prototype.mapCompareController.prototype.startAnimation = func
     this.animationDelay.start();
 };
 
-
 /**
  * Update the map size with animation
  * @returns {undefined}
  */
 nsVmap.MapCompare.prototype.mapCompareController.prototype.synchronizeMap = function () {
     oVmap.log('nsVmap.MapCompare.prototype.mapCompareController.prototype.synchronizeMap');
+
     var this_ = this;
-    // blocage infinite loop
+
+    // Synchro Échelle
     oVmap.getMap().getOLMap().getTargetElement().addEventListener('mouseenter', function(){
-        oVmap.getMap().getOLMap().getView().on("change:resolution", this_.updateCompareScaleMap, this_);
-        this_.map.getView().un("change:resolution", this_.updateScaleMap, this_);
+        oVmap.getMap().getOLMap().on("moveend", this_.updateCompareScaleMap, this_);
+        this_.map.un("moveend", this_.updateScaleMap, this_);
     });
     this_.map.getTargetElement().addEventListener('mouseenter', function(){
-      oVmap.getMap().getOLMap().getView().un("change:resolution", this_.updateCompareScaleMap, this_);
-      this_.map.getView().on("change:resolution", this_.updateScaleMap, this_);
+      oVmap.getMap().getOLMap().un("moveend", this_.updateCompareScaleMap, this_);
+      this_.map.on("moveend", this_.updateScaleMap, this_);
     });
-    // position du curseur sur l'autre carte
+
+    // Synchro centre
+    oVmap.getMap().getOLMap().on("pointerdrag", this_.updateCenterCompareMap, this_);
+    this_.map.on("pointerdrag", this_.updateCenterMap, this_);
+
+    // Synchro curseur sur l'autre carte
     oVmap.getMap().getOLMap().on('pointermove', function(e){
       var coord = e.coordinate;
       //si le composant existe sur l'autre composant on le supprime
@@ -623,50 +649,58 @@ nsVmap.MapCompare.prototype.mapCompareController.prototype.synchronizeMap = func
 
       this_.targetOverlay_.setPosition(convertCoord);
     });
-    // synchro de la carte avec la carte de comparaison
-    oVmap.getMap().getOLMap().on("pointerdrag", this_.updateCenterCompareMap, this_);
-    // synchro de la carte de comapraison avec la carte de base
-    this_.map.on("pointerdrag", this_.updateCenterMap, this_);
 };
+
 /**
  * Update the map extent with animation
  * @returns {undefined}
  */
-nsVmap.MapCompare.prototype.mapCompareController.prototype.updateCompareScaleMap = function(e){
-  var this_ = this
-  this_.updateCenterCompareMap();
-  oVmap.getMapCompare().setScale(oVmap.getMap().getScale());
+nsVmap.MapCompare.prototype.mapCompareController.prototype.updateCompareScaleMap = function(e) { console.log('updateCompareScaleMap');
+    var this_ = this
+    this_.updateCenterCompareMap();
+    oVmap.getMapCompare().setScale(oVmap.getMap().getScale());
+
+    this.lastCompareMapSyncScale_ = Date.now();
 }
+
 /**
  * Update the map extent with animation
  * @returns {undefined}
  */
-nsVmap.MapCompare.prototype.mapCompareController.prototype.updateScaleMap = function(e){
-  var this_ = this
-  this_.updateCenterMap();
-  oVmap.getMap().setScale(oVmap.getMapCompare().getScale())
+nsVmap.MapCompare.prototype.mapCompareController.prototype.updateScaleMap = function(e) { console.log('updateScaleMap');
+    var this_ = this
+    this_.updateCenterMap();
+    oVmap.getMap().setScale(oVmap.getMapCompare().getScale());
+
+    this.lastMapSyncScale_ = Date.now();
 }
+
 /**
- * Update the map extent with animation
- * @returns {undefined}
- */
-nsVmap.MapCompare.prototype.mapCompareController.prototype.updateCenterMap = function(e){
-  var this_ = this
-  // Récupère l'étendue de la carte principale
-  var oldCenter = this_.map.getView().getCenter();
+* Update the map extent with animation
+* @returns {undefined}
+*/
+nsVmap.MapCompare.prototype.mapCompareController.prototype.updateCenterMap = function(e) {
+
+    var this_ = this
+    // Récupère l'étendue de la carte principale
+    var oldCenter = this_.map.getView().getCenter();
 
-  // Récupère l'ancienne et la nouvelle projection
-  var newProjection = oVmap.getMap().getOLMap().getView().getProjection().getCode();
-  var oldProjection = this_.map.getView().getProjection().getCode();
+    // Récupère l'ancienne et la nouvelle projection
+    var newProjection = oVmap.getMap().getOLMap().getView().getProjection().getCode();
+    var oldProjection = this_.map.getView().getProjection().getCode();
 
-  var newCenter = ol.proj.transform(oldCenter, oldProjection, newProjection);
-  oVmap.getMap().getOLMap().getView().setCenter(newCenter);
+    var newCenter = ol.proj.transform(oldCenter, oldProjection, newProjection);
+    oVmap.getMap().getOLMap().getView().setCenter(newCenter);
+
+    this.lastMapSyncCenter_ = Date.now();
 }
+
 /**
- * Update the map extent with animation
- * @returns {undefined}
- */
-nsVmap.MapCompare.prototype.mapCompareController.prototype.updateCenterCompareMap = function(e){
+* Update the map extent with animation
+* @returns {undefined}
+*/
+nsVmap.MapCompare.prototype.mapCompareController.prototype.updateCenterCompareMap = function(e) {
+
     var this_ = this;
     // Récupère l'étendue de la carte principale
     var oldCenter = oVmap.getMap().getOLMap().getView().getCenter();
@@ -677,6 +711,8 @@ nsVmap.MapCompare.prototype.mapCompareController.prototype.updateCenterCompareMa
 
     var newCenter = ol.proj.transform(oldCenter, oldProjection, newProjection);
     this_['map'].getView().setCenter(newCenter);
+
+    this.lastCompareMapSyncCenter_ = Date.now();
 }
 
 /**