0

假设存在一个应用程序,其中您有多个不同的视图,每个视图都包含多个相同类型的图形。

我的问题是,每次创建新图表时是否需要加载可视化 API,如本示例http://code.google.com/p/gwt-google-apis/wiki/VisualizationGettingStarted所示,或者如果我加载一次可视化,我是否不再需要创建一个 Runnable 来等待加载可视化以便显示数据?

4

1 回答 1

2

是的,我们不能离线使用 Google Charts。

由于我们无法将 Google Visualization api 下载到我们的本地机器,我们必须动态加载它们。

可运行的方式

  Runnable onLoadCallback = new Runnable() {
                      public void run() 
                      {
  PieChart pie = new PieChart(createTable(result), createOptions());
  pie.addSelectHandler(createSelectHandler(pie));
   dataCHTabel.clear();
    dataCHTabel.add(pie);
    }
    };
   VisualizationUtils.loadVisualizationApi(onLoadCallback, PieChart.PACKAGE);

新的可视化 API 加载方式:

不推荐使用上述行,加载所有图表的新方法是

VisualizationUtils.loadVisualizationApi(onLoadCallback, CoreChart.PACKAGE);  

通过在应用加载时加载所有包

通过在我的主机页面上添加以下代码(appname.html

<script type="text/javascript" src="http://www.google.com/jsapi"></script>
 <script type="text/javascript">
    google.load("visualization", "1", {'packages' : ["corechart"] });
 </script>

corechart 包包括新版本的区域、条形、列、线、饼图和散点图可视化的代码,这些可视化以前由单独的包加载。

进而

 PieChart pie = new PieChart(createTable(result), createOptions());
 pie.addSelectHandler(createSelectHandler(pie));
 dataCHTabel.clear();
 dataCHTabel.add(pie);

geochart 不包含在核心中所以,如果你想加载地理图表,你必须添加

google.load('visualization', '1', {'packages': ['geochart']});
于 2013-03-24T09:54:24.430 回答