Skip to content

Commit

Permalink
Implements relative zoom for onZoom
Browse files Browse the repository at this point in the history
  • Loading branch information
Indigo744 committed Dec 18, 2015
1 parent 7ac9fdf commit b17da7e
Showing 1 changed file with 29 additions and 5 deletions.
34 changes: 29 additions & 5 deletions js/jquery.mapael.js
Expand Up @@ -412,10 +412,10 @@
self.$container.trigger("zoom." + pluginName, {"level": 0});
},
"in": function () {
self.$container.trigger("zoom." + pluginName, {"level": self.zoomData.zoomLevel + 1});
self.$container.trigger("zoom." + pluginName, {"level": "+1"});
},
"out": function () {
self.$container.trigger("zoom." + pluginName, {"level": self.zoomData.zoomLevel - 1});
self.$container.trigger("zoom." + pluginName, {"level": -1});
}
};

Expand Down Expand Up @@ -586,16 +586,40 @@
*/
onZoomEvent: function (e, zoomOptions) {
var self = this;
var newLevel = Math.min(Math.max(zoomOptions.level, 0), self.options.map.zoom.maxLevel);
var newLevel = 0;
var panX = 0;
var panY = 0;
var previousZoomLevel = (1 + self.zoomData.zoomLevel * self.options.map.zoom.step);
var zoomLevel = (1 + newLevel * self.options.map.zoom.step);
var zoomLevel = 0;
var animDuration = (zoomOptions.animDuration !== undefined) ? zoomOptions.animDuration : self.options.map.zoom.animDuration;
var offsetX = 0;
var offsetY = 0;
var coords = {};

// Get user defined zoom level
if (typeof zoomOptions.level === "string") {
// level is a string, either "n", "+n" or "-n"
if ((zoomOptions.level.slice(0, 1) === '+') || (zoomOptions.level.slice(0, 1) === '-')) {
// zoomLevel is relative
newLevel = self.zoomData.zoomLevel + parseInt(zoomOptions.level);
} else {
// zoomLevel is absolute
newLevel = parseInt(zoomOptions.level);
}
} else {
// level is integer
if (zoomOptions.level < 0) {
// zoomLevel is relative
newLevel = self.zoomData.zoomLevel + zoomOptions.level;
} else {
// zoomLevel is absolute
newLevel = zoomOptions.level;
}
}
// Make sure we stay in the boundaries
newLevel = Math.min(Math.max(newLevel, 0), self.options.map.zoom.maxLevel);
zoomLevel = (1 + newLevel * self.options.map.zoom.step);

if (zoomOptions.latitude !== undefined && zoomOptions.longitude !== undefined) {
coords = self.mapConf.getCoords(zoomOptions.latitude, zoomOptions.longitude);
zoomOptions.x = coords.x;
Expand Down Expand Up @@ -1891,7 +1915,7 @@
}, interval
);
},

/*
* Check for Raphael bug regarding drawing while beeing hidden (under display:none)
* See https://github.com/neveldo/jQuery-Mapael/issues/135
Expand Down

0 comments on commit b17da7e

Please sign in to comment.