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:09:22 +0200
commit1c5913d2f83f65a6ab2b052c34189d398fcc95af (patch)
treeb0e9379e450fb37b69bf4f452cdcf8a863830ca9
parent3a9d2408ee376deb0e76601b704d561e1cac4227 (diff)
downloadChimère-1c5913d2f83f65a6ab2b052c34189d398fcc95af.tar.bz2
Chimère-1c5913d2f83f65a6ab2b052c34189d398fcc95af.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 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