1

所以我想要做的是获取谷歌可视化图像图表(不是 SVG 版本)的 URL。

要创建图表,我使用以下代码:

 <script type='text/javascript'>
  google.load('visualization', '1', {packages:['imagelinechart']});
  google.setOnLoadCallback(drawChart);
  function drawChart() {
    var data = google.visualization.arrayToDataTable([
    ['Time', 'Value'], 

 ['5:00', 13535],['5:30', 13549]
 ]);
  var chart = new google.visualization.ImageLineChart(document.getElementById('chart_div'));
  chart.draw(data, {width: 750, height: 240, legend: 'none', title: 'TITLE'});


  }


  </script>

这会在 a 中创建图像,但我无法在变量中获取 URL。(是的,我显然可以在页面加载后复制图像并获取 URL)

我努力了:

 chart.getImageURL() 

..但没有任何运气。

任何帮助是极大的赞赏。这对我来说是个大问题。

谢谢,菲尔

4

1 回答 1

0

Google 可视化图表不呈现为图像,并且不能作为默认行为保存为图像。可以创建一个函数,将 SVG 图表保存为 PNG 图像,如此所述。

这可以通过遵循此页面上的步骤来完成。请注意,本文中的代码基于使用 iframe 的旧版 Google 可视化,并且不会像发布的那样工作。但是,您可以使用以下代码(在注释中找到)执行相同操作:

var svg = $(chartContainer).find('svg').parent().html();
var doc = chartContainer.ownerDocument;
var canvas = doc.createElement('canvas');
canvas.setAttribute('style', 'position: absolute; ' + '');
doc.body.appendChild(canvas);
canvg(canvas, svg);
var imgData = canvas.toDataURL("image/png");
canvas.parentNode.removeChild(canvas);
return imgData; 

注意:我没有创建此代码,它最初由上述网站的作者(Riccardo Govoni)创建,并由用户 Thomas 在评论部分更新。

于 2013-02-26T23:28:20.267 回答