1

我需要在谷歌地理地图中绘制上一次委内瑞拉总统选举的结果。

我正在尝试将两位市长候选人的结果放在同一张图表中,但 Google Chart 似乎无法做到这一点。

我正在尝试重现Google Code Playground上显示的示例, 使用选项options['region'] = 'VE';将限制地图设置为我的国家和我所在地区的 ISO 3166城市代码,但仍然无法在同一张地图上显示两组数据。这是我正在使用的数据。

样本数据将是:

    function drawVisualization() {
  var data_candidate_a = google.visualization.arrayToDataTable([
            ['Ciudad', 'Result','Label'],
            ['VE-A', 200,'CARACAS'],
            ['VE-B', 300,'AMAZONAS'],
            ['VE-C', 400,'BOLIVAR'],
            ['VE-C', 500,'BARINAS'],
            ['VE-D', 600,'ANZOATEGUI'],
            ['VE-E', 700,'MIRANDA']
          ]);

   var data_candidate_b = google.visualization.arrayToDataTable([
                ['Ciudad', 'Result','Label'],
                ['VE-A', 100,'CARACAS'],
                ['VE-B', 150,'AMAZONAS'],
                ['VE-C', 200,'BOLIVAR'],
                ['VE-C', 600,'BARINAS'],
                ['VE-D', 300,'ANZOATEGUI'],
                ['VE-E', 800,'MIRANDA']
              ]);

  var geomap = new google.visualization.GeoMap(
      document.getElementById('visualization'));
  var options = {};
  options["region"] = "VE";
  geomap.draw(data_candidate_a, options);
}
4

1 回答 1

1

问题#1:你的图表上不能有一个“标签”列——谷歌不喜欢它。

解决方案#1:使用{v: 'value', f: 'format'}技巧在鼠标悬停时显示城市名称(您的 C 列标签)。

问题 #2:您没有显示州级边界。

解决方案#2:您需要为resolution: 'provinces'

我在下面重新创建了您的图表的工作版本(使用 GeoChart 而不是 GeoMap,它可能也适用于 GeoMap,但 GeoChart 通常更易于访问,因为它不使用闪存):

function drawVisualization() {
  var data = new google.visualization.DataTable();
  data.addColumn('string', 'Ciudad');
  data.addColumn('number', 'result');
  data.addRows([
    [{v: 'VE-A', f: 'CARACAS'}, 200],
    [{v: 'VE-B', f: 'AMAZONAS'}, 300],
    [{v: 'VE-C', f: 'BOLIVAR'}, 400],
    [{v: 'VE-C', f: 'BARINAS'}, 500],
    [{v: 'VE-D', f: 'ANZOATEGUI'}, 600],
    [{v: 'VE-E', f: 'MIRANDA'}, 700]
  ]);

  var geochart = new google.visualization.GeoChart(
      document.getElementById('visualization'));

  var options = {
    region: "VE",
    resolution: "provinces"
  };

  geochart.draw(data, options);
}
于 2013-04-21T23:53:22.633 回答