假设存在一个应用程序,其中您有多个不同的视图,每个视图包含多个相同类型的图形。
我的问题是,每次创建新图时是否需要加载可视化API,如本示例http://code.google.com/p/gwt-google-apis/wiki/VisualizationGettingStarted所示,或者如果我加载一次可视化,我是否不再需要创建Runnable加载可视化时等待,以便显示数据?
答案 0 :(得分:2)
是的,我们无法使用Google图表离线。
作为本地机器的we cannot download the 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>
核心图包中包含区域,条形图,柱形图,直线图,饼图和散点图可视化的新版本的代码,这些代码以前由单独的包加载。
然后
PieChart pie = new PieChart(createTable(result), createOptions());
pie.addSelectHandler(createSelectHandler(pie));
dataCHTabel.clear();
dataCHTabel.add(pie);
geochart未包含在核心中所以,如果你想加载地理图表,你必须添加
google.load('visualization', '1', {'packages': ['geochart']});