diff options
| -rw-r--r-- | chimere/static/chimere/js/jquery.chimere.js | 29 | 
1 files changed, 26 insertions, 3 deletions
diff --git a/chimere/static/chimere/js/jquery.chimere.js b/chimere/static/chimere/js/jquery.chimere.js index 88c9407..b72edf6 100644 --- a/chimere/static/chimere/js/jquery.chimere.js +++ b/chimere/static/chimere/js/jquery.chimere.js @@ -1029,8 +1029,19 @@ function transformCoordToLonLat(coord) {              settings.map.beforeRender(pan, zoom);              // center -            v.setCenter(feature.getGeometry().getCoordinates()); - +            if ($("#panel").is(":visible")){ +                var delta_x = $("#panel").width() / 2; +                // paning before zoom base delta divided by 2 +                if (zoom_level < settings.maxZoom){ +                    delta_x = delta_x / 2; +                } +                v.centerOn( +                    feature.getGeometry().getCoordinates(), +                    [0, 0], +                    [delta_x, 0]); +            } else { +                v.setCenter(feature.getGeometry().getCoordinates()); +            }              // max zoom reached              if (zoom_level >= settings.maxZoom){                  return methods.displayClusterDetail(feature); @@ -1047,6 +1058,9 @@ function transformCoordToLonLat(coord) {                  function(){                      // our cluster must be at the center (if it exists after zoom)                      var pixel = settings.map.getPixelFromCoordinate(v.getCenter()); +                    if ($("#panel").is(":visible")){ +                        pixel[0] = pixel[0] + $("#panel").width() / 2; +                    }                      var new_feature;                      settings.map.forEachFeatureAtPixel(                          pixel, function(feat, layer){ @@ -2566,7 +2580,16 @@ function transformCoordToLonLat(coord) {                                  {duration: settings.animation_duration,                                   source: settings.view.getCenter()})                              settings.map.beforeRender(pan); -                            settings.view.setCenter(center_position); + +                            if ($("#panel").is(":visible")){ +                                var delta_x = $("#panel").width() / 2; +                                settings.view.centerOn( +                                    center_position, +                                    [0, 0], +                                    [delta_x, 0]); +                            } else { +                                settings.view.setCenter(center_position); +                            }                              // waiting for the pan to finish                              setTimeout(function(){                                  // to trigger autopan  | 
