2016-05-18 149 views
2

我一直在尝试缩小地图放大/缩小时按下放大/缩小按钮的数量。这似乎没有变数,它需要一个自定义函数使用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) {} 

但我一直无法弄清楚如何覆盖现有变焦用自定义/缩小按钮事件函数(我想避免创建我自己的按钮)。

回答

3

伟大的问题!我通过在地图上的导航按钮(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/

从我的测试,当放大时需要您仍然想要查看的地图的百分比(在此示例中,我们只想看到总地图的10%)时,它看起来像是您的值mapZoom()。任何值为1或更高的值似乎都不起作用。

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

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

我希望这些信息对您有帮助和有用!

+1

优秀!这比我想象的要简单得多。您建议的值会增加缩放级别。对于较小的增量,以下效果很好:zoomIn:this.mapZoom(0.8); zoomOut:this.mapZoom(1.25); – Fred

+0

我很高兴为您效力!并感谢您为'mapZoom'建议的参数。 –

相关问题