INNER CODE UNIT · JavaScript
zoomClick
Brbb/graphql-rover · js/zoom.js:35
function zoomClick(source) {
var direction = 1,
factor = 0.2,
target_zoom = 1,
center = [svg.attr("width") / 2, svg.attr("height") / 2],
extent = zoom.scaleExtent(),
translate = zoom.translate(),
translate0 = [],
l = [],
view = {x: translate[0], y: translate[1], k: zoom.scale()};
direction = (source.id === 'zoom_in') ? 1 : (source.id === 'zoom_out') ? -1 : 0;
target_zoom = zoom.scale() * (1 + factor * direction);
if (target_zoom < extent[0] || target_zoom > extent[1]) { return false; }
translate0 = [(center[0] - view.x) / view.k, (center[1] - view.y) / view.k];
view.k = target_zoom;