Early Access: The content on this website is provided for informational purposes only in connection with pre-General Availability Qlik Products.
All content is subject to change and is provided without warranty.
メイン コンテンツをスキップする 補完的コンテンツへスキップ

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 を使用して、ロケーション サービスから 2 つの郵便番号項目のみをロードします。

Load * Extension GeoOperations.ScriptEval('

SELECT Name as PostalCode, LocationArea FROM

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

 

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

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 スクリプトのトラブルシューティング

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

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