1

だから私がやろうとしているのは、Google Visualization IMAGE Chart (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>

これにより、画像が作成されますが、変数内の 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 に答える