地理图表:使用 ISO 3266-2 区域代码,但显示真实姓名
Geochart: Using ISO 3266-2 region code but show real name
>我正在使用Google可视化Geochart 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 代码,因为尽管谷歌写道
等效英语文本(例如,"US-NJ"或"New Jersey")
是允许的,它非常不可靠,并且不适用于示例"巴伐利亚"。
这是一个有效的快速概念证明,我正在寻找类似的东西,并希望自动获得名称,但我不确定这是否可能,但这至少允许手动填充工具提示文本。
关键因素是创建具有所需列的表,然后应用 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});
}
根据我的经验,除了大多数凡人不知道的代码外,ISO 3166-2还存在几个问题。
-
似乎没有一个地方可以免费找到机器可处理的最新版本。
-
除了美国和加拿大等最稳定(通常是联邦)的国家/地区外,分配不断变化。有机器可加工但过时的版本免费提供。
-
人们使用的国家名称并不总是官方名称(有点长的名称)。
-
一些国家的区域名称与当地对区域真实情况的看法不符(在次区域一级要糟糕得多)。
-
(子)区域名称是英语或当地语言的奇怪混合。
-
对于那些仍然以 ASCII 为中心的应用程序,Unicode 名称没有官方的 ASCII 回退。
到代码问题的务实解决方案是有一个长查找表来处理国家/地区名称的常见变体,然后从代码反向查找为可接受的"规范"形式。由于在我的情况下为 #6,我确保规范形式是 ASCII。我对 ISO 639-1 和 -3 中的语言执行类似的任务。
在ISO 3166-2中为所有地区制定这样的清单是一项非常漫长的任务 - 目前我专注于经合组织,金砖四国和欧盟国家,因为这需要很长的路要走。
- 如何将代码显示为<代码>
- 为什么获胜't我的javascript代码显示一个在当前日期出生的名人的名字
- setInterval代码的优化建议,该代码显示每秒出生的小狗、小猫等数量
- 如何将Javascript代码显示为页面内容
- 为什么这个代码显示异常行为?(未提交表格)
- Javascript代码显示文本
- 代码显示意外行为
- 如何通过JavaScript代码显示谷歌地图并在设备上获取坐标
- Javascript 代码显示选择值
- Java 脚本代码 (显示更多 - 显示更少)
- IE 9 :: 使用 Javascript 将 XML 代码显示到 Div 中
- 谷歌地图代码显示当前位置,并在Php:-Firefox中触摸时创建新标记
- 如何使用下面的JQuery代码显示一个元素
- 我可以用这个代码显示两个不同的窗口吗
- ruby代码显示为文本,而不是在js.erb文件中执行
- 角度代码显示在页面中
- 示例PHP或JS代码显示FaceBook喜欢上的内容
- 为什么这个代码显示错误
- 为什么我的JS/DOM代码显示没有内容
- 函数的代码显示在网页的顶部