[英]Google Geochart (1.1) tooltip styles
我正在使用Google的Geochart,并在此处跟踪了许多示例和选项: https : //developers.google.com/chart/interactive/docs/gallery/geochart ,通常它已经成功了,但是我对两件事感到很好奇:
tooltip
的宽度,边框等。 tooltip
的字体大小,但似乎不起作用。 我正在使用1.1版,因为它允许在工具提示中使用HTML,但是我在任何地方都找不到此文档。
google.load('visualization', '1.1', {packages: ['geochart'], callback: drawVisualization});
function drawVisualization() {
var data = google.visualization.arrayToDataTable([
['Country', 'Coverage', {role: 'tooltip', p:{html:true}}],
['United Kingdom', 2, 'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.'],
['United States', 2, 'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.'],
['China', 2, 'Hello China'],
['Brazil', 2, '<img src="https://www.google.com/images/srpr/logo6w.png"/>']
]);
var options = {
sizeAxis: { minValue: 0, maxValue: 100 },
legend: 'none',
tooltip: {
isHtml: true,
textStyle: {
fontSize: 21
}
},
colorAxis: {colors: ['#F1F1F1', '#4CBCBF']} // grey to cyan
};
var chart = new google.visualization.GeoChart(document.getElementById('chart-canvas'));
chart.draw(data, options);
}
<div id="chart-canvas" style="height:500px;"></div>
为了我们的理智,我建立了一个jsFiddle http://jsfiddle.net/w5DYt/
谢谢,R
1)Google不支持此功能,但是您可以手动覆盖它:
.google-visualization-tooltip{
width:100px !important;
border: 2px solid red !important;
}
2) isHtml: true
覆盖您的textStyle配置,您应该使用一个类将文本包装在一个范围内,然后使用CSS设置所需的textStyle
3)Google不支持点击处理程序,但是有一个选择项。 您可以执行以下操作:
var chart = new google.visualization.GeoChart(document.getElementById('chart-canvas'));
function ready(){
google.visualization.events.addListener(chart, 'select', handler);
function handler(){
var selection=chart.getSelection();
if(selection.length==1){
console.log(data.getValue(selection[0].row,2))
}
}
}
google.visualization.events.addListener(chart, 'ready', ready);
chart.draw(data, options);
完整的提琴: http : //jsfiddle.net/w5DYt/1/
您可以将工具提示内容包装在div中,然后使用类(或内联样式)对其进行样式设置:
[javascript]
function drawVisualization() {
var data = google.visualization.arrayToDataTable([
['Country', 'Coverage', {role: 'tooltip', p:{html:true}}],
['United Kingdom', 2, '<div class="tooltip">Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat. Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum.</div>'],
['United States', 2, '<div class="tooltip">Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.</div>'],
['China', 2, '<div class="tooltip">Hello China</div>'],
['Brazil', 2, '<div class="tooltip">Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquid ex ea commodi consequat.</div>']
]);
var options = {
sizeAxis: { minValue: 0, maxValue: 100 },
legend: 'none',
tooltip: {
isHtml: true,
textStyle: {
fontSize: 21
}
},
colorAxis: {colors: ['#F1F1F1', '#4CBCBF']} // grey to cyan
};
var chart = new google.visualization.GeoChart(document.getElementById('chart-canvas'));
chart.draw(data, options);
}
[CSS]
.tooltip {
width: 200px;
min-height: 50px;
}
您可以使用两个事件来捕获点击: select
和regionClick
。 当用户单击有数据的区域(在您的示例中为英国,美国,中国,巴西)时, select
(如juvian所示)有效; 单击任何区域时,即使该区域不在您的数据集中,也将触发regionClick
,并返回一个具有region
属性的对象,该对象保存该region
的ISO代码:
google.visualization.events.addListener(chart, 'regionClick', function (e) {
// e.region contains the ISO code for the clicked region
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.