HTMLへの埋め込み
以下のコードを basic_line.tql として保存してください。この文書では、この TQL の結果をWebページに埋め込む方法を説明します。
FAKE( linspace(0, 360, 100))
MAPVALUE(2, sin((value(0)/180)*PI))
CHART(
theme("white"),
chartOption({
"xAxis": { "type": "category", "data": column(0) },
"yAxis": {},
"series": [ { "type": "line", "data": column(1) } ]
})
)IFRAME
| |
JSONレスポンスの利用
TQLスクリプトの呼び出し時に X-Tql-Output: json ヘッダーを追加すると
Since v8.0.42
、既定のHTMLの代わりにJSONを取得できます(従来の X-Chart-Output ヘッダーは非推奨です
Since v8.0.14
)。
このJSONにはチャートの描画に必要なJavaScriptのパスが含まれるため、任意のDOM位置に直接挿入できます。X-Tql-Output: json ヘッダーは、CHART() シンクで chartJson(true) オプションを使用する場合と同じです。例は読み取りAPIとして使用を参照してください。
/db/tql がJSONを返す場合、必要なスクリプトのアドレスも含まれます。
{
"chartID": "NDg4ODQ4MzMxMjgyMDYzMzY",
"jsAssets": ["/web/echarts/echarts.min.js"],
"jsCodeAssets": ["/web/api/tql-assets/NDg4ODQ4MzMxMjgyMDYzMzY.js"],
"style": {
"width": "600px",
"height": "600px"
},
"theme": "white"
}chartID: EChartsで使用するランダムなIDです。必要に応じてchartID()オプションで指定できます。jsAssets: ECharts本体とプラグインのパスを含みます。jsCodeAssets: 結果データの描画用にMachbase Neoが生成したJavaScriptです。
以下のHTMLは、上記のJSONを使ってチャートを描画する例です。
| |
- 3行目:レスポンスの
jsAssetsに含まれるApache EChartsライブラリを事前に読み込みます。 - 14行目:
X-Tql-Output: jsonヘッダーを指定してJSONメタ情報を要求します。GETリクエストは既定でHTML文書を返しますが、このヘッダーを指定するとJSONを返します。 - 23行目:レスポンスの
jsCodeAssetsリストを走査し、DOMに動的に挿入します。
TQLの動的な呼び出し
/db/tql エンドポイントは、POSTで渡されたTQLスクリプトを実行し、結果のJavaScriptを返します。
以下の例のように、クライアント側でJavaScriptを動的に読み込めます。20行目で chartID() を指定し、同じ id を持つ <div> をあらかじめ用意しています。
| |
読み込み順序の問題
上記の例で jsAssets と jsCodeAssets を同時に loadJS で処理すると、次のコードのように順序の問題が発生することがあります。
| |
jsAssets に含まれるEChartsライブラリの読み込みが完了する前に jsCodeAssets を実行すると、エラーが発生します。読み込み完了時のコールバックを使い、順番に読み込んでください。
| |
最後の jsAssets を読み込んでから jsCodeAssets を読み込むと、この問題を防げます。
| |