获取谷歌可视化图像图的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的评论部分更新。