获取谷歌可视化图像图的URL

问题描述:

所以我想要做的是获取谷歌可视化图像图表(而不是SVG版本)的URL。获取谷歌可视化图像图的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> 

这将创建一个图像,但我无法得到一个可变的内部URL。 (是的,我能明显的图像复制的页面加载后并获取URL)

我曾尝试:

chart.getImageURL() 

..但没有任何运气。

任何帮助,非常感谢。这对我来说是个大问题。

感谢, 菲尔

谷歌可视化图表不会呈现图像,并且不能被保存为图片的默认行为。可以创建一个将SVG图表保存为PNG图像的功能,如here所述。

这可以通过按照this page上的步骤完成。请注意,文章中的代码是基于使用iframe的旧版Google Visualization,并且不会像发布一样工作。但是,您可以使用下面的代码(在评论中发现的)做相同的:

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; 

注:我没有创建这个代码,它最初是由上述网站(里卡多Govoni)的作者创建和在用户Thomas的评论部分更新。