メイン コンテンツをスキップする

Qlik Sense GeoOperations

Qlik Sense GeoOperations は地理的な計算と、ルートや移動エリアの計算などの機能を有効にします。また、さまざまなデータ ソースから地理データをロードできるようにします。Qlik Sense GeoOperations を使用すると、次のようなデータの地理的な問題を解決できます。

  • 店舗の場所から車で 15 分以内に住んでいる顧客の数を特定します
  • GPS の位置を会場、地域、または道路網にリンクします
  • 自治体のリストからカスタム販売エリアを構築します
  • 患者のリストに最も近い病院を見つけます

GeoOperations 関数は、データ ロード スクリプトとビジュアライゼーションの数式の両方で、スクリプトで使用できます。各 GeoOperations 関数は、データを明示的にロードできます。GeoOperations 関数は、地理データの変換や計算にも使用できます。

情報メモGeoOperations の使用方法の例については、[GeoOperations の例] を参照してください。

機能

  • Qlik Sense SaaS のスクリプト言語で利用できます。

  • Qlik で処理できるように、空間関係を抽出します。
  • 場所の時間検索をロードします (マップ チャートでの表示時間検索の代わりとして)。
  • クラスターまたはビン内のポイントの集約。
  • 次のように場所を指定します。
    • QlikGeoAnalytics および Qlik Sense と同じ形式の点、線、またはエリアのジオメトリ
    • [緯度] 項目と [経度] 項目
    • 名前付きのポイントまたはエリア
  • さまざまな入力形式から地理データをロードします。
  • Qlik に既にロードされているデータへの演算子を使用します。

GeoOperations の動作

 

Qlik Sense GeoOperations は、スクリプトとオプションでテーブルをロード スクリプトの GeoOperations 拡張に送信することで機能します。次に、サーバー側の拡張機能はデータを返します。GeoOperations は、スクリプトとテーブルを拡張機能に送信するための関数 ScriptEval を提供するスクリプト言語で「GeoOperations」と呼ばれる高度な分析統合オブジェクトを使用できるようにします。例えば、以下は、TravelAreas 演算子を以前にロードされたテーブル 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 項目の選択と名前の変更

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 ステートメントを使用して項目の名前を変更します。

制限事項

データセットの最大サイズには、次の制限が適用されます。

  • 最大行数: 50,000
  • メモリ内の最大データセット サイズ: 150 MB
  • ルーティングの最大行数: 400
  • 名前検索の最大行数: 20,000

一部の演算子は、Qlik Engine からのデータのストリーミングをサポートしています。Qlik Engine からストリーミングされるデータは大きくなる可能性がありますが、ルーティングのサイズ制限は引き続き適用されます。

スクリプト構文

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 などのキーワードでは区別されません。