我正在使用Google可视化地理图API创建一个国家地区的地图。我提供了ISO 3266-2国家分区代码并得到了正确的结果。然而,在图表中显示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'});
}我想提供'DE-BY‘,但有’巴伐利亚‘作为标签。我有必要使用ISO 3266-2代码,尽管Google写到
英文文本对等(例如"US-NJ“或"New泽西”)
是允许的,它是非常不可靠的,不适用于“巴伐利亚”的例子。
发布于 2012-08-14 15:49:52
这是一个概念的快速证明,我正在看一些类似的东西,并希望自动获得名称,但我不确定这是否可能,但这至少允许手动填充工具提示文本。
关键因素是使用所需的列创建表,然后按需要应用PatternFormat获取工具提示,然后只创建数据绑定所需列的数据视图。
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});
}发布于 2014-08-28 14:18:46
根据我的经验,除了大多数凡人不知道的代码外,ISO 3166-2还有几个问题。
我没有解决这个问题的算法解决方案,但我对国家代码问题的务实解决方案是有一个长的查阅表来处理通常的国名变体,然后反向查找从代码到可接受的“规范”形式。因为在我的例子中#6,我确保规范形式是ASCII。我对ISO 639-1和-3中的语言做了类似的工作.
在ISO 3166-2中为所有地区制定这样一份清单是一项非常长的任务--目前我的重点是经合组织、金砖四国和欧盟国家,因为这将是一项漫长的工作。
https://stackoverflow.com/questions/11098153
复制相似问题