我正在使用Google Visualization Geochart API创建一个国家/地区的 map 。我提供了ISO 3266-2 Country subdivision code并获得了正确的结果。但是,在图表中将ISO 3266-2代码显示为标签是不好的用户体验。因此,我想提供一个自定义标签。以此为例:
function drawVisualization() {
var data = google.visualization.arrayToDataTable([
['Country', 'Popularity'],
['DE-BY', 200],
['DE-NW', 500]
]);
var geochart = new google.visualization.GeoChart(
document.getElementById('visualization'));
geochart.draw(data, {width: 556, height: 347, region: 'DE', resolution: 'provinces'});
}
[在Code Playground]上尝试
我想提供“DE-BY”,但标有“Bavaria”。对于我来说,有必要使用ISO 3266-2代码,就像Google写道
是允许的,这是非常不可靠的,并且不适用于示例“巴伐利亚”。
最佳答案
这是一个可行的快速概念验证,我正在寻找类似的东西,希望自动获得名称,但是我不确定是否还可以,但这至少允许手动填充工具提示文本。
关键因素是使用所需列创建表,然后根据需要应用PatternFormat获取工具提示,然后仅使用数据绑定(bind)所需的那些列创建数据 View 。
function drawVisualization() {
var data = new google.visualization.DataTable();
data.addColumn('string', 'Country');
data.addColumn('number', 'Value');
data.addColumn('string', 'Display');
data.addRows([
['Germany', 200, 'Germany'],
['United States', 300, 'USA'],
['Brazil', 400, 'Brasil'],
['Canada', 500, 'Canada'],
['France', 600, 'France'],
['RU', 700, 'Russia']
]);
var geochart = new google.visualization.GeoChart(
document.getElementById('visualization'));
var formatter = new google.visualization.PatternFormat('{1}');
formatter.format(data, [0, 2]);
var view = new google.visualization.DataView(data);
view.setColumns([0, 1]);
geochart.draw(view, {width: 556, height: 347});
}
关于javascript - Geochart : Using ISO 3266-2 region code but show real name,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11098153/