更改highmaps的缩放级别

时间:2016-05-18 04:10:51

标签: javascript highcharts zoom highmaps

按下放大/缩小按钮时,我一直在努力减少地图放大/缩小的数量。似乎没有变量,并且需要使用http://api.highcharts.com/highmaps#Chart.mapZoom

的自定义函数

我想要做的是使用自定义事件覆盖放大/缩小按钮的默认事件,该事件使用mapZoom的自定义值' howMuch'参数。这是我能够找到mapZoom函数的唯一示例 - http://jsfiddle.net/z8X6B/1/

Highcharts.Chart.prototype.mapZoom = function (howMuch, centerXArg, centerYArg, mouseX, mouseY) {}

但我还没有能够弄清楚如何使用自定义功能覆盖现有的放大/缩小按钮事件(我希望避免创建自己的按钮)。

1 个答案:

答案 0 :(得分:4)

好问题!我在地图的导航按钮(http://api.highcharts.com/highmaps#mapNavigation.buttons)上挖掘了Highmaps API参考,并想出了如何执行此操作:

mapNavigation: {
    buttons: {
        zoomIn: {
            // the lower the value, the greater the zoom in
            onclick: function () { this.mapZoom(0.1); }
        },
        zoomOut: {
            // the higher the value, the greater the zoom out
            onclick: function () { this.mapZoom(10); }
        }
    }
},

这是一个基于其中一个Highmaps演示的活跃小提琴:http://jsfiddle.net/brightmatrix/d51g1jt2/

从我的测试中看,放大时mapZoom()的值似乎需要是缩放后仍想要看到的地图的百分比(在此示例中,我们只想看到10%的总图)。价值1或更高的任何东西似乎都不起作用。

对于缩小,mapZoom()的值似乎是乘数。因此,在这种情况下,我们放大到地图值的10%,因此缩小是该值的10倍。

放大和缩小的默认值分别为0.52,这是有意义的(放大到地图大小的50%;缩小2倍)。< / p>

我希望这些信息对您有用且有用!