2013-02-26 25 views
1

所以我想要做的是獲取谷歌可視化圖像圖表(而不是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() 

..但沒有任何運氣。

任何幫助,非常感謝。這對我來說是個大問題。

感謝, 菲爾

回答

0

谷歌可視化圖表不會呈現圖像,並且不能被保存爲圖片的默認行爲。可以創建一個將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的評論部分更新。