我正在使用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/

10-10 17:08