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 ef7c3d0..ab951a4 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){ @@ -2563,7 +2577,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 |