メイン コンテンツをスキップする 補完的コンテンツへスキップ

Qlik GeoOperations を使用したスクリプト作成

Qlik GeoOperations コネクタは、GeoOperations スクリプトを作成してフォーマットします。これらのスクリプトは データ ロード エディター で変更できます。Qlik GeoOperations コネクタを使用する代わりに、GeoOperations 関数を使用して手動でスクリプトを作成することもできます。

Qlik GeoOperations の動作

最初に、Qlik GeoOperations コネクタをデータ ソースとして追加します。アプリの データ ロード エディター では、コネクタからロードするデータを選択するときに、実行する演算子と適用するパラメーターを選択できます。次に、Qlik GeoOperations コネクタは、対応する GeoOperations スクリプトをロード スクリプトに追加します。このスクリプトを手動で追加することもできます。

各演算子スクリプトは、使用するデータを選択する Load ステートメントと、演算子で構成されます。これらは、ロード スクリプトで GeoOperations 拡張に送信されます。次に、サーバー側の拡張機能はデータを返します。Qlik GeoOperations は、GeoOperations と呼ばれる Advanced Analytics Integration オブジェクトをスクリプト言語で使用できるようにします。これにより、スクリプトとテーブルを拡張に送信するための関数 ScriptEval が提供されます。

例えば、以下は、Travel areas 演算子を以前にロードされたテーブル MyPoints に適用し、移動領域のサイズ/コストのパラメーターを指定するためのロード スクリプトです。

Load * Extension GeoOperations.ScriptEval('TravelAreas(costValue="10", costUnit="Minutes")', MyPoints);

スクリプトは ScriptEval の最初のパラメータとして、テーブルは 2 番目のパラメータとして送信されます。

GeoOperations はデータセットを操作する関数です。データセットは、Qlik Sense で読み込まれたデータか、地理ファイルや場所サービスなどの外部ソースから取得します。スクリプトから送信されたデータは、INTABLE というデータセットとして利用できます。そのデータに追加のパラメータを指定したい場合は、関数呼び出しの後に DATASOURCE として宣言する必要があります。例:

Load * Extension GeoOperations.ScriptEval('TravelAreas(costValue="10", costUnit="Minutes") DATASOURCE myPoints INTABLE pointField="Point"', MyPoints);

他のデータ ソースは常に宣言する必要があり、URL などのパラメーターを指定する必要があります。各演算で、使用するデータ ソースを指定できます。演算 (英語のみ)で各演算について説明のとおり、既定では、演算は利用可能なデータセットを取得します。

GeoOperations 項目の選択と名前の変更

GeoOperations 関数は項目を返します。既定ではすべての項目が返され、含められています。GeoOperations 関数の前に SELECT ステートメントを付けて、関心のある特定の項目を選択し、オプションで名前を変更することができます。例えば、このスクリプトでは、SELECT、Location Service から郵便番号項目のうち 2 つだけをロードしています。

Load * Extension GeoOperations.ScriptEval('

SELECT Name as PostalCode, LocationArea FROM

Load() DATASOURCE PostalCodes LOCATIONSERVICE type="PostalCode", country="se"');

 

GeoOperations スクリプトで SELECT ステートメントを使用すると、Qlik LOAD ステートメントで項目を指定するよりも効率的です。これは、GeoOperations スクリプトで選択されていない場合、Qlik Sense にデータがロードされないためです。

SELECT を使用すると、計算された項目を結果に返さないようにすることができます。例えば、Intersects によって返される相対的な重複項目を除外することができます。

情報メモ

ロードスクリプトで同じ演算を複数回使用する場合は、SELECT ステートメントを使用して項目名を変更します。

スクリプト構文

GeoOperations に送信されたスクリプトの構文は次のとおりです。

1. 演算

スクリプトの最も単純な形式は、演算を実行します。

構文:  

Operation(paramName="paramValue", ...)

 

Cluster(distance="100000")

 

詳細については、演算とそのパラメータのリストを参照してください。

2. データセット

2 番目のステップは、選択した演算を適用するためのデータセットをロードすることです。

構文:  

Operation(paramName="paramValue", ...)

DATASOURCE name TYPE paramName="paramvalue", ...

 

Within()

DATASOURCE states LOCATIONSERVICE type="STATE", country="US"

 

詳細については、データセットとそのパラメータのリストを参照してください。

3. まとめる

完成したスクリプトは データ ロード エディター でこのように表示されます。

[MyPointsInStates]:

Load * Extension GeoOperations.ScriptEval(’

Within()

DATASOURCE states LOCATIONSERVICE type=”STATE”, country=”US”

’, MyTable);

 

この例では、MyTable は、点、線、名前付き領域、またはその他の地理データを含む、ロードされた他のテーブルの場合があります。

4. 項目を絞り込む

以下の追加により、演算の結果をさらにフィルタリングすることができます。

[MyPointsInStates]:

Load * Extension GeoOperations.ScriptEval(’

SELECT Name, states.Name as State FROM

Within()

DATASOURCE states LOCATIONSERVICE type=”STATE”, country=”US”

’, MyTable{Name, Point});

パラメータ名と項目名では大文字と小文字が区別されますが、演算子、パラメータ オプション (metersminutes, など)、または SELECTFROM などのキーワードでは区別されません。

AddressPointLookup および PointToAddressLookup スクリプトのトラブルシューティング

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。