我有一张以Highmaps呈现的美国地图,enableDoubleClickZoomTo
设置为true
。我一直试图辨别用户双击的状态来缩放地图,并且想知道redraw
事件中是否有隐藏的信息可以帮助我计算出来。
这是问题的一个小提琴:http://jsfiddle.net/tjnicolaides/x8q1d1cs/
$('#container').highcharts('Map', {
chart: {
events: {
redraw: function (event) {
console.log(event);
console.log(this.getSelectedPoints());
}
}
},
mapNavigation: {
enabled: true,
enableDoubleClickZoomTo: true
},
series: [{
data: data,
mapData: Highcharts.maps['countries/us/us-all'],
joinBy: 'hc-key',
allowPointSelect: true,
states: {
hover: {
color: '#BADA55'
},
select: {
color: 'purple'
}
}
}]
});
当我在双击某个州后调试.log event
时,我得到一个大型对象,其中包含有关整个图表状态的信息。
如果我单击以选择状态,然后双击以放大它,我从this.getSelectedPoints()
获取有关状态的信息 - 但是,期望在之前选择任何内容是不合理的。缩放。在某些地图中,它可能会被完全禁用。我把它包含在这里作为我原本希望从redraw
得到的输出类型的演示。计算邮政编码,州名或索引以过滤原始系列是可以接受的。
答案 0 :(得分:1)
我认为通过包装Pointer.onContainerDblClick
来检测这一点的最简单方法是:
(function (H) {
H.wrap(H.Pointer.prototype, "onContainerDblClick", function (p, event) {
console.log(this.chart.hoverPoint); // hovered point - may not exist, e.g. when clicking on the blank space
p.call(this, event);
});
})(Highcharts)