Query Spatial Data のバッチ フロー

この手順では、Query Spatial Data ステージを使用して、ポリゴンが一連のポイントを含むかを判断するサブフローを作成する方法を説明します。ここでは、データにおいてポイントの方がポリゴンよりも多い場合に、ポリゴンで繰り返し処理を行う (Read Spatial Data を使用してポリゴンを 1 つずつ読み取り、Query Spatial Data (MI_Contains 操作または MI_Intersects 操作) を使用してポイント テーブルに対して検索する) 例を示します。

注: Enterprise Designer を使用する方法の詳細については、『データフロー デザイナーズ ガイド』または Enterprise Designer 内のヘルプを参照してください。

Query Spatial Data のバッチ サブフローを作成するには

  1. Enterprise Designer で、[ファイル] メニューから [新規作成] > [データフロー] > [サブフロー] の順に選択するか、[タスク] ウィンドウから [新規作成] > [サブフロー] の順に選択します。
  2. パレットから、Read Spatial Data ステージをデザイン キャンバス上にドラッグします。
  3. Read Spatial Data ステージをダブルクリックして [オプション] ダイアログを表示します。[全般] タブで、ポリゴンを読み込むための MISQL 式を入力します。以下の例では、SELECT obj FROM "/PolygonTable" という基本的な select 文が示されています (ここで、PolygonTable はリポジトリ内のポリゴンに対するリソースです)。[OK] をクリックします。
  4. パレットから、Query Spatial Data ステージをデザイン キャンバス上の Read Spatial Data ステージの右にドラッグします。Read Spatial Data ステージの右側 (出力ポート) にある黒い三角形をクリックし、Query Spatial Data ステージの左側にドラッグして、チャネルを作成します。
  5. Query Spatial Data ステージをダブルクリックして [オプション] ダイアログを表示します。表示されるボックスに contains MISQL 文を入力して、[確認] をクリックします。

    MISQL 文は、ポイント テーブルを読み取り、いずれかのポリゴンがそれらのポイントを含むかどうかを判断するものにする必要があります。例:

    SELECT * FROM "/PointTable" WHERE MI_Contains(${Obj}, obj)
  6. Query Spatial Data ステージ上の [実行時...] ボタンをクリックして、コンピュータ上のコア数を設定します。同様に、空間リモート コンポーネントのプール サイズにも同じ値を設定する必要があります。プール サイズの設定方法については、パフォーマンス チューニングを参照してください。
  7. Output シンクをキャンバス上にドラッグします。Query Spatial Data ステージの出力ポートを Output シンクの入力ポートに接続します。
  8. Output シンクをダブルクリックして、エクスポーズするフィールドのチェックボックスをオンにします。[OK] をクリックします。
  9. サブフローを保存します。サブフローをエクスポーズしてデータフローで使用するには、[ファイル][エクスポーズ/アンエクスポーズして保存] の順に選択するか、[エクスポーズ/アンエクスポーズして保存] ボタンをクリックします。サブフローが [ユーザ定義ステージ] フォルダに表示されます。