SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

Google Visualization APIを使ってWebアプリケーションにグラフィカルデータを表示する

Google Visualization APIの基本事項から高度な内容まで

ビジュアライゼーション用データの準備

 Google Visualization APIを手っとり早く試す方法は、公開ギャラリーにあるビジュアライゼーションの1つを使うことです。最初に、組織図を表示するWebページを作成してみましょう。図の表示はGoogleビジュアライゼーションによって行い、基になるローカルデータの提供にはJavaScriptを使います。

 まず、好みのエディタで新規HTMLファイルを作成し、以下のコードを貼り付けます。

<html>
<head>
  <script type="text/javascript"
    src="http://www.google.com/jsapi"></script>  
  <script type="text/javascript">
    google.load("visualization", "1", {packages:["orgchart"]});
  
    // Set callback to run when API is loaded
    google.setOnLoadCallback(drawVisualization); 

    // Called when the Visualization API is loaded.
    function drawVisualization() {
      // ... implement your drawing code here.
    }  
  </script>
</head>
<body>
  <div id="orgchartdiv" ></div>
  <p>This page demonstrates using an existing
    OrgChart visualization, with locally created data.</p>
</body>
</html>

 このコードには、Googleビジュアライゼーションの利用に必要な次の手順がすべて含まれています。

  1. Google jsapiスクリプトをロードします。このスクリプトには、Googleライブラリとのやりとりを行う基本的な関数が用意されています。
  2. google.load()関数によってビジュアライゼーションパッケージをロードします。
  3. 使用するビジュアライゼーションを指定します(ここではorgchartパッケージのみ。複数のビジュアライゼーションを用いる場合はpackagesパラメータ内にそれらを列挙します。利用可能なパッケージの一覧はビジュアライゼーションギャラリーで確認できます)。
  4. setOnLoadCallback()関数を使って、すべてのライブラリのロードが完了した時点で呼び出されるコールバックを登録します。

 drawVisualization()関数の内部では、ビジュアル化するデータの収集と表示を行います。ビジュアライゼーションをWebページのどこに配置するかの指定には、DOM(Document Object Model)要素がプレースホルダとして使えます(ここではorgchartdiv)。リスト1にdrawVisualization()関数の内容を示します。

リスト1 組織図ビジュアライゼーションの描画
function drawVisualization() {                
  // Create and populate a data table.
  var data = new google.visualization.DataTable();      
  data.addColumn('string', 'Name');
  data.addColumn('string', 'Parent');
  data.addRows(10);

  // Add more data rows and cells here      
  var row = 0;
  addRow(data, row++, "Apples", "Root");
  addRow(data, row++, "Braeburn", "Apples");
  addRow(data, row++, "Cox", "Apples");
  addRow(data, row++, "Golden Delicious", "Apples");
  addRow(data, row++, "English", "Golden Delicious");
  addRow(data, row++, "French", "Golden Delicious");
  addRow(data, row++, "Bananas", "Root");
  addRow(data, row++, "Caribbean", "Bananas");
  addRow(data, row++, "Central American", "Bananas");
  addRow(data, row++, "Clementines", "Root");
  
  var orgchart = new google.visualization.OrgChart(
    document.getElementById('orgchartdiv'));
    
  orgchart.draw(data, {
    selectionColor: 'yellow'
  });      
}

// Utility function to create new rows in the Datatable
function addRow(data, rownum, name, parent) {
  data.setCell(rownum, 0, name);
  data.setCell(rownum, 1, parent);
}

 リスト1で注目したいのがgoogle.visualization.DataTablegoogle.visualization.OrgChartです。前者はビジュアライゼーションに表示するデータを入れる汎用的な表組みコンテナ、後者はビジュアライゼーションそのものです。

 DataTableは、2次元の表と同じように行と列で構成されています。行方向にはビジュアライゼーションのアイテムが、列方向にはアイテムの属性が並びます。また、データの入力や記述に使えるメソッドが数多く用意されています(詳細については公式ドキュメントを参照)。決まって使われる重要なものとして、addRows()addColumn()setCell()があります。これらの呼び出しではそれぞれ、ビジュアライゼーションで表示するアイテム数(データの行数)、アイテムが持つ属性の数と種類、アイテムと属性を対にした値を指定します。列については、型が定義されています。サポートされているのは、string(文字列)、number(数値)、boolean(ブール値)、date(日付)、datetime(日時)、timeofday(時刻)です。

ビジュアライゼーションのインスタンス化

 データが準備できたら、ビジュアライゼーションのインスタンスを生成することができます。そのためには、ビジュアライゼーションを配置するプレースホルダDOM要素を指定してから、DataTableインスタンスをパラメータとして渡し、ビジュアライゼーションを描画します。

 draw()メソッドには、2つのパラメータが必要です。1つ目のパラメータは、使用するDataTableを指定します。2つ目のパラメータには、カスタマイズ用オプションのリストをJavaScriptオブジェクトでラップしたものを指定します(オブジェクトの各プロパティがカスタマイズのキーを表します)。使用可能なオプションはビジュアライゼーションごとに異なるため、使用するビジュアライゼーションのドキュメントで確認してください。リスト1のサンプルでは、selectionColorオプションによって、組織図のノードがユーザーによって選択されたときの強調表示の色を設定しています。

 また、DataTableに含めるべき列もビジュアライゼーションごとに決まっています。組織図の場合は、文字列型の2つの列が必要です。それぞれのツリーノードの名前と、その親ノードの名前です。ビジュアライゼーションが違えば、定義すべき列も変わってきます。例えば円グラフの場合は、円を構成する扇形のそれぞれに対するラベルと値を表す文字列型と数値型の列が1つずつ必要になります。それぞれのビジュアライゼーションで要求される列については、該当するドキュメントを参照してください。

 図1は、作成した組織図をWebページに表示させた結果です。

図1 作成した組織図はWebページにこのように表示される
図1 作成した組織図はWebページにこのように表示される

次のページ
独自のビジュアライゼーションの作成

この記事は参考になりましたか?

japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Riccardo Govoni(Riccardo Govoni)

2003年からJ2EE開発者としてイタリアの金融サービス会社に勤務。ソフトウェアアーキテクトとして従来の銀行システムのWebフロントエンドの設計に従事。物理学修士。SCJP(Sun Certified Java Programmer)資格を持つ。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/3660 2009/03/26 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー