Point in Polygon サブフロー

この手順では、Query Spatial Data ステージを使用して、ポイントが特定のポリゴン内にあるかを判断するサブフローを作成する方法を説明します。

このサブフローは、ソースとして x と y を受け取り、Spatial Calculator の Create Point 操作を使用してポイント ジオメトリを作成します。生成されるジオメトリは、出力シンクへの出力となる Query Spatial Data ステージの入力です。

この手順は、ポリゴン内のポイントを検索する方法の 1 つです。別の方法として、Centrus データベースを使用する Point in Polygon ステージがあります。どちらの処理も、『Spectrum Spatial ガイド』の「開発」セクションにある「Point In Polygon のベスト プラクティス」の項で説明されています。

Point in Polygon サブフローを作成するには、次の手順を実行します。

  1. Enterprise Designer で、[ファイル] メニューから [新規作成] > [データフロー] > [サブフロー] の順に選択するか、[タスク] ウィンドウから [新規作成] > [サブフロー] の順に選択します。

    サブフローの作成方法の詳細については、[ヘルプ] メニューから『データフロー デザイナーズ ガイド』を参照してください。

  2. [Input] アイコンをキャンバスにドラッグし、ダブルクリックして [オプション] ダイアログを表示します。
  3. [追加] ボタンをクリックして [カスタム フィールドの追加] ダイアログを表示します。[追加] をクリックし、フィールド名を 'x'、タイプを double と指定します。[OK] をクリックします。
  4. ステップ 3 を繰り返して、タイプ double のフィールド 'y' を追加します。[OK] をクリックして [入力オプション] ウィンドを閉じます。
  5. パレットの [Location Intelligence ステージ] セクションからデザイン キャンバスに Spatial Calculator をドラッグします。Input ステージの右側 (出力ポート) にある黒い三角形をクリックし、キャンバス上の Spatial Calculator ステージの左側にドラッグして、チャネルを作成します。
  6. [Spatial Calculator] をダブルクリックして [オプション] ダイアログを表示します。操作のリストから [ポイント ジオメトリの作成] を選択します。必要に応じて座標系を選択します。[OK] をクリックします。内容を思い出せるように、Spatial Calculator の名前を Create Point に変更します。
  7. Query Spatial Data ステージをキャンバス上にドラッグします。Create Point 操作の出力ポートを Query Spatial Data ステージの入力ポートに接続します。
  8. Query Spatial Data ステージをダブルクリックして [オプション] ダイアログを表示します。表示されるボックスに MISQL 文を入力して、[確認] をクリックします。

    MISQL 文の例を以下に示します。データに合わせてフィールドと名前付きテーブルを変更します。

    select STATE from "/Samples/NamedTables/USA" where Obj contains ${Geometry}
  9. Output シンクをキャンバス上にドラッグします。Query Spatial Data ステージの出力ポートを Output シンクの入力ポートに接続します。
  10. Output シンクをダブルクリックして、エクスポーズするフィールドのチェックボックスをオンにします。この例では、State フィールドのチェックボックスをオンにします。[OK] をクリックします。
  11. サブフローを保存します。サブフローをエクスポーズしてデータフローで使用するには、[ファイル][エクスポーズ/アンエクスポーズして保存] の順に選択するか、[エクスポーズ/アンエクスポーズして保存] ボタンをクリックします。サブフローが [ユーザ定義ステージ] フォルダに表示されます。

    以上で、サブフローを Point in Polygon データフローに組み込む準備が整います。