summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2016-10-07 16:09:22 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2016-10-07 16:11:28 +0200
commit7f6bd113c0b3ab5fda4143cf8beb5cbf72f140b4 (patch)
treeff54267a2229fabfab38016604fe34c673ea6870
parenta0e55c1c2f256aac90bb602b1d8dd8010f987e1f (diff)
downloadChimère-7f6bd113c0b3ab5fda4143cf8beb5cbf72f140b4.tar.bz2
Chimère-7f6bd113c0b3ab5fda4143cf8beb5cbf72f140b4.zip
JS: recenter considering the side panel
-rw-r--r--chimere/static/chimere/js/jquery.chimere.js29
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