Highmaps:如何检测 enableDoubleClickZoomTo 的目标?
Highmaps: how do I detect the target of enableDoubleClickZoomTo?
我在 Highmaps 中渲染了一张美国地图,enableDoubleClickZoomTo
设置为 true
。我一直试图辨别用户双击缩放地图的状态,并想知道是否有隐藏在 redraw
事件中的信息可以帮助我计算这个。
这是一个 fiddle 问题: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'
}
}
}]
});
当我 console.log event
双击一个状态后,我得到一个大对象,其中包含有关整个图表状态的信息。
如果我单击 select 一个状态,然后双击放大它,我会从 this.getSelectedPoints()
获得有关该状态的信息 - 但是,期望它是不合理的任何内容都将在缩放之前进行 selected。在某些地图中,它可能会被完全禁用。我将其包含在这里作为我最初希望从 redraw
获得的输出类型的演示。计算邮政编码、州名或索引来过滤原始系列是可以接受的。
我认为通过包装 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)
我在 Highmaps 中渲染了一张美国地图,enableDoubleClickZoomTo
设置为 true
。我一直试图辨别用户双击缩放地图的状态,并想知道是否有隐藏在 redraw
事件中的信息可以帮助我计算这个。
这是一个 fiddle 问题: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'
}
}
}]
});
当我 console.log event
双击一个状态后,我得到一个大对象,其中包含有关整个图表状态的信息。
如果我单击 select 一个状态,然后双击放大它,我会从 this.getSelectedPoints()
获得有关该状态的信息 - 但是,期望它是不合理的任何内容都将在缩放之前进行 selected。在某些地图中,它可能会被完全禁用。我将其包含在这里作为我最初希望从 redraw
获得的输出类型的演示。计算邮政编码、州名或索引来过滤原始系列是可以接受的。
我认为通过包装 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)