diff --git a/lib/world-map.js b/lib/world-map.js index df9a8181..1a9e977b 100644 --- a/lib/world-map.js +++ b/lib/world-map.js @@ -68,6 +68,7 @@ * @param {Function} params.onMarkerOut (Event e, String code) Will be called on marker mouse out event. * @param {Function} params.onMarkerClick (Event e, String code) Will be called on marker click event. * @param {Function} params.onMarkerSelected (Event e, String code, Boolean isSelected, Array selectedMarkers) Will be called when marker is (de)selected. isSelected parameter of the callback indicates whether marker is selected or not. selectedMarkers contains codes of all currently selected markers. + * @param {Function} params.onZoom (Event e, Number scale) Triggered the map is zoomed. */ jvm.WorldMap = function(params) { var map = this, @@ -442,7 +443,8 @@ jvm.WorldMap.prototype = { }, setScale: function(scale, anchorX, anchorY, isCentered) { - var zoomStep; + var zoomStep, + viewportChangeEvent = jvm.$.Event('zoom.jvectormap'); if (scale > this.params.zoomMax * this.baseScale) { scale = this.params.zoomMax * this.baseScale; @@ -463,6 +465,9 @@ jvm.WorldMap.prototype = { this.scale = scale; this.applyTransform(); + + console.log(this.baseScale); + this.container.trigger(viewportChangeEvent, [scale/this.baseScale]); }, /** @@ -862,4 +867,5 @@ jvm.WorldMap.apiEvents = { onMarkerOut: 'markerOut', onMarkerClick: 'markerClick', onMarkerSelected: 'markerSelected', + onZoom: 'zoom' }; \ No newline at end of file diff --git a/tests/markers.html b/tests/markers.html index 848e7208..d414a311 100644 --- a/tests/markers.html +++ b/tests/markers.html @@ -134,6 +134,9 @@ JSON.stringify(selectedRegions) ); } + }, + onZoom: function(e, scale){ + console.log('viewportChange', scale); } });