首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >地理图:使用ISO 3266-2区域代码,但显示实名。

地理图:使用ISO 3266-2区域代码,但显示实名。
EN

Stack Overflow用户
提问于 2012-06-19 09:28:07
回答 2查看 8.2K关注 0票数 5

我正在使用Google可视化地理图API创建一个国家地区的地图。我提供了ISO 3266-2国家分区代码并得到了正确的结果。然而,在图表中显示ISO 3266-2代码作为标签是一种糟糕的用户体验。所以我想提供一个定制标签。以这为例:

代码语言:javascript
复制
  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泽西”)

是允许的,它是非常不可靠的,不适用于“巴伐利亚”的例子。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-14 15:49:52

这是一个概念的快速证明,我正在看一些类似的东西,并希望自动获得名称,但我不确定这是否可能,但这至少允许手动填充工具提示文本。

关键因素是使用所需的列创建表,然后按需要应用PatternFormat获取工具提示,然后只创建数据绑定所需列的数据视图。

代码语言:javascript
复制
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});
    }
票数 12
EN

Stack Overflow用户

发布于 2014-08-28 14:18:46

根据我的经验,除了大多数凡人不知道的代码外,ISO 3166-2还有几个问题。

  1. 似乎没有一个位置可以找到一个机器处理的最新版本可以免费获得。
  2. 除了在美国和加拿大等最稳定的(典型的联邦)国家外,任务不断变化。有机器处理的,但过时的版本,免费提供。
  3. 人们使用的国名并不总是官方名称(稍长一些)。
  4. 一些国家的区域名称不符合当地对这些区域的真实看法(在分区域一级要糟糕得多)。
  5. (子)区域名称是英语或当地语言的一种奇怪的混合。
  6. 对于那些仍以ASCII为焦点的应用程序,不存在Unicode名称的正式ASCII回退。

我没有解决这个问题的算法解决方案,但我对国家代码问题的务实解决方案是有一个长的查阅表来处理通常的国名变体,然后反向查找从代码到可接受的“规范”形式。因为在我的例子中#6,我确保规范形式是ASCII。我对ISO 639-1和-3中的语言做了类似的工作.

在ISO 3166-2中为所有地区制定这样一份清单是一项非常长的任务--目前我的重点是经合组织、金砖四国和欧盟国家,因为这将是一项漫长的工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11098153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档