2

基本的に、Google App Engine (Java)、Datastore、および Google Visualization チャートを使用して GWT アプリケーションを作成しています。

次の情報を表すために単純な折れ線グラフを使用しました - 年 (X 軸) に対する値 (Y 軸)

エンティティのリストとしてデータストアから次の値を取得しています。

Jon へのリクエストはエンティティを返します (各行はエンティティです)。

Person | Value | Year
Jon    |  80%  | 1992
Jon    |  74%  | 2010
Jon    |  10%  | 2011 
Jon    |  84%  | 2012

マイク返品のリクエスト:

Person | Value | Year
Mike   |  80%  | 2000
Mike   |  74%  | 2001
Mike   |  10%  | 2002 
Mike   |  84%  | 2003
Mike   |  85%  | 2006
Mike   |  65%  | 2011
Mike   |  55%  | 2012

一人一人のグラフを簡単に作成できます。これを行うには、次のGoogle Visualization Data Source Libraryを使用してサーバー上にDataTableを作成し、 Json を使用して送り返します。

今私が望むのは、両方のDataTableを結合/結合するグラフを作成することです

これを実装する唯一の方法は、各TableRowを個別に作成することです。データは各人の正しい列にある必要があるため、これは現時点ではやり過ぎのように感じます。つまり、2012 年の TableRow は

Year |Mike | Jon
2006 | 85% | null
2011 | 65% | 10%
2010 | null| 84%
2011 | 65% | 10%
2012 | 55% | 84%

私は各人に個別のリクエストを送信するため、これは特に注意が必要です。たとえば、Jon にリクエストすると、各行を表すエンティティのリストを取得しますが、それらを JOIN したい場合は、年、右側の列に値を追加するなど。これはすべてやり過ぎのように思えます。上記の行のセットを自動的に生成できるように、テーブルをマージする方法が必要です。

私が望むのは、Jon と Mike と Sally が来たら DataTable を生成し、それらすべてを 1 つの簡単なコマンドで Merge して、各行が正しい人にマッピングされた素敵なグラフを取得することです。

ps私はこのコードをサーバー上のJavaで書く必要があります...

4

3 に答える 3

1

2 つの Datatables を 1 つに結合することが可能です。

google.visualization.data.join(dt1, dt2, joinMethod, キー, dt1Columns, dt2Columns)

https://developers.google.com/chart/interactive/docs/reference#google_visualization_data_joinをご覧ください

于 2014-02-27T15:00:58.010 に答える
0

JSONに変換してマージできます。
以下のサンプルは Javascript で書かれていますが、Java でも方法は同じです。

    var json1 = JSON.parse(dataTable1.toJSON());
    var json2 = JSON.parse(dataTable2.toJSON());
    var mergedRows = json1.rows.concat(json2.rows);

    json1.rows = mergedRows;
    var mergedDataTable= new google.visualization.DataTable(json1);
于 2014-11-16T11:09:45.930 に答える