PHP谷歌图表API(PHP Google Charts API)

2019-10-17 17:32发布

我正在写一个程序,采取产生的数据通过谷歌API集,并显示在PHP。 这是完全正常的,并已经实现了,但是我想缩略图添加到其中显示同一数据集的不同的图表(以缩略图形式)的代码。

我使用谷歌API生成数据并显示它,但我不知道我怎么会得到它(目前使用派为主体的图),以改变可视化类型,从而使用户能够查看不同的可视化该数据集。

这是有问题的代码:

加载AJAX API

 <script type="text/javascript" src='https://www.google.com/jsapi?autoload={"modules":[{"name":"visualization","version":"1","packages":["corechart","table"]}]}'></script>

数据:

var data = new google.visualization.DataTable();
data.addColumn('string', 'City');
data.addColumn('number', 'Number of Crimes');
data.addRows([
             ['Cardiff', 300],
             ['London', 900],
             ['Manchester', 500],
             ['Dublin', 400],
             ['Liverpool', 600]
             ]);

绘制图形:

var chart = new google.visualization.PieChart(document.getElementById('chart_div'));
chart.draw(data, options);

这里有缩略图:

<div id="left">
  <p>Bar chart</p>
  <a href="#"><img src="http://donsmaps.com/clickphotos/dolnivi200x100.jpg"></img></a>
  <p>Another chart</p>
  <a href="#"><img src="http://donsmaps.com/clickphotos/dolnivi200x100.jpg"></img></a>
  <p>Another chart</p>
  <a href="#"><img src="http://donsmaps.com/clickphotos/dolnivi200x100.jpg"></img></a>
</div>
<div id="right">
  <p>Scatter Chart</p>
  <a href="#"><img src="http://donsmaps.com/clickphotos/dolnivi200x100.jpg"></img></a>
  <p>Another chart</p>
  <a href="#"><img src="http://donsmaps.com/clickphotos/dolnivi200x100.jpg"></img></a>
  <p>Another chart</p>
  <a href="#"><img src="http://donsmaps.com/clickphotos/dolnivi200x100.jpg"></img></a>
</div>

所以基本上,我怎么会得到google.visualization.BarChart(和其他人)到IMG SRC的缩略图?

这是甚至可能吗?

谢谢

Answer 1:

我已经解决了类似的问题,有两种解决方法(即我所知道的),这两者都不是完美的。

第一个解决方案是使用谷歌的图像图表API基本上重新创建您的SVG图表。 您可以在动态数据通过传递src的图像的URL。 这种方法的主要缺点是:(a)你必须重新创建通过图像,图表API每个排行榜中; 和(b) 谷歌图片图表API被正式弃用 。 然而,谷歌已承诺至少在2015年4月维护服务,因此,如果您希望该网站由那么它是一个有效的方法来发展。 要提到的另一件事是,你可能想创建比较大的缩略图,然后扩展下来,这样的比例(文字大小,例如)相匹配的最终版本SVG的相对比例。

第二个解决方案 (这我目前使用)是采用像屏幕捕获服务URL2PNG 。 大多数屏幕捕捉的API将无法正常工作,因为他们要么忽略JS或已经应用了JS之前采取的截图,但url2png和一些其他服务都能够做到这一点。 只需创建一个简单的缓存系统存储在每个排行榜中的截图(你可能希望在每个排行榜是通过显示在另一张空白模板图表URL访问,这样你就不必担心屏幕位置或裁剪的问题) ,并有此缓存被清除并重建该数据被更改的任何时间(你需要一个高速缓存,虽然,因为屏幕捕获服务本质上是相当缓慢)。 这种方法的主要缺点是,你将不得不支付服务(我不知道任何免费的屏幕捕捉服务,可以准确地捕捉谷歌图表)。

就个人而言,我很失望,谷歌并没有创造一个简单的方法来创建缩略图,因为它似乎是一个很常见的任务,但是据我所知某种解决办法像这是必要的。



文章来源: PHP Google Charts API