我正在尝试使用ControlWrapper过滤数据以在仪表板内的GeoChart上显示。问题如下:我必须有三列:'国家','价值'和'季度'。现在,我想仅显示四分之一的信息,我可以通过CategoryPicker选择。然后,使用仪表板功能,我想将我的选择器绑定到我的GeoChart。但是,我无法显示我的GeoChart,因为它引发了一个错误,因为我使用三列,我应该只有两个......
我知道诀窍是使用DataView并隐藏第三列但我无法链接我的过滤器和我的geochart。
这里有解决方法吗?我的部分代码可以在下面找到。顺便说一句,这适用于其他类型的图表,但不适用于GeoChart ......为什么?
事先,非常感谢你的帮助!
var data = response.getDataTable();
var dashboard = new google.visualization.Dashboard(document.getElementById('dashboard_div'));
var quarterSelector = new google.visualization.ControlWrapper({
'controlType': 'CategoryFilter',
'containerId': 'filter_div',
'options': {
'filterColumnLabel': 'Quarter',
ui: {
allowTyping: false,
allowMultiple: false,
allowNone: false
},
'chartView': {
'columns': [0,1]
},
}
});
var mapChart = new google.visualization.ChartWrapper({
'chartType': 'GeoChart',
'containerId': 'regions_div',
'options': {
'displayMode': 'regions',
'region': '150',
'view': {'columns':[0,1]}
}
});
dashboard.bind(quarterSelector, mapChart);
dashboard.draw(data);
答案 0 :(得分:1)
首先,chartView
是ChartRangeFilter上ui
的一部分 - 而不是CategoryFilter
此外,view: {'columns':[0,1]}
不应该是options
的一部分
但与options
,chartType
和containerId
然而,这里既不需要......
google.charts.load('current', {
packages: ['controls', 'geochart'],
callback: drawChart
});
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Country', 'Popularity', 'Quarter'],
['Germany', 200, 1],
['United States', 300, 2],
['Brazil', 400, 3],
['Canada', 500, 4],
['France', 600, 3],
['RU', 700, 2]
]);
var dashboard = new google.visualization.Dashboard(document.getElementById('dashboard_div'));
var quarterSelector = new google.visualization.ControlWrapper({
controlType: 'CategoryFilter',
containerId: 'filter_div',
options: {
filterColumnLabel: 'Quarter',
ui: {
allowTyping: false,
allowMultiple: false,
allowNone: false
}
}
});
var mapChart = new google.visualization.ChartWrapper({
chartType: 'GeoChart',
containerId: 'regions_div',
options: {
displayMode: 'regions'
}
});
dashboard.bind(quarterSelector, mapChart);
dashboard.draw(data);
}

<script src="https://www.gstatic.com/charts/loader.js"></script>
<script src="https://www.google.com/jsapi"></script>
<div id="dashboard_div">
<div id="filter_div"></div>
<div id="regions_div"></div>
</div>
&#13;