使用者の手引きおよび解説書

サンプル・プログラムのステップ

表 5 は、サンプル・プログラムのステップ、関連するストアード・プロシージャー、および各ステップの説明を示しています。ストアード・プロシージャーを呼び出すための C 関数は、 表 5 のアクションの列に括弧付きで表示してあります。ストアード・プロシージャーについての詳細は、ストアード・プロシージャー を参照してください。サンプル・プログラムは、シナリオ: 保険会社が自社の GIS を更新する場合で紹介されているシナリオに基づいています。

表 5. 地理情報エクステンダーのサンプル・プログラム
サンプル・プログラムのステップ アクション 説明
地理情報データベースを使用可 / 使用不可にする
  1. 地理情報データベースを使用可能にする (gseEnableDB)
  2. 地理情報データベースを使用不可にする (gseDisableDB)
  3. 地理情報データベースを使用可能にする (gseEnableDB)

  1. これは、地理情報エクステンダーを使用するために必要な最初のステップです。地理情報操作用として使用可能になったデータベースには、地理情報タイプのセット、地理情報関数のセット、地理情報述部のセット、新規索引タイプ、管理表および管理視点のセットが備わっています。
  2. このステップは通常、間違ったデータベースに対して地理情報機能を使用可能にした場合に実行します。地理情報データベースを使用不可にする場合、地理情報タイプのセット、地理情報関数のセット、地理情報述部のセット、新規索引タイプ、管理表および管理視点のセットを除去してください。

    注:
    データベースの使用可能プロシージャーで作成されたオブジェクトに依存する作成済みオブジェクトがある場合、データベースを使用不可にすることはできません。たとえば、タイプ ST_Point の地理情報列を持つ表を作成すると、データベースは使用不可になりません。その表は、データベースの使用不可プロシージャーによって除去されるタイプ ST_Point に依存しているからです。
  3. 1 と同様。
地理情報参照システムを登録する
  1. CUSTOMERS 表の LOCATION 列について地理情報参照システムを登録する (gseEnableSref)
  2. OFFICES 表の LOCATION 列について地理情報参照システムを登録する (gseEnableSref)
  3. OFFICES 表の LOCATION 列について地理情報参照システムを抹消する (gseDisableSref)
  4. OFFICES 表の ZONE 列について地理情報参照システムを再登録する (gseEnableSref)

  1. このステップは、CUSTOMERS 表の地理情報データを解釈するために使用される新規地理情報参照システム (SRS) を定義します。地理情報参照システムには、地理情報対応データベースの列に格納できる形式で図形データが組み込まれます。 SRS が特定のレイヤーに登録された後、そのレイヤーに適用可能な座標は、関連する CUSTOMERS 表列に格納できます。
  2. このステップは、OFFICES レイヤーの地理情報データを解釈するために使用される新規地理情報参照システム (SRS) を定義します。 各表レイヤーには、SRS を定義しておく必要があります。 OFFICES 表レイヤーは、CUSTOMERS 表レイヤーとは異なる関連 SRS を必要とする場合があります。
  3. このステップは、レイヤーまたは地理情報列に間違った SRS パラメーターを指定した場合に実行します。 OFFICES 表レイヤーの SRS を抹消するときは、その定義ならびに関連パラメーターを除去してください。
  4. このステップは、OFFICES レイヤーの地理情報データを解釈するために使用される新規地理情報参照システム (SRS) を定義します。

地理情報表を作成する
  1. LOCATION 列を追加して CUSTOMERS 表を更新する (gseSetupTables)
  2. OFFICES 表を作成する (gseSetupTables)

  1. CUSTOMERS 表は、何年かの間にデータベースに格納された業務データを表します。 ALTER TABLE ステートメントはタイプ ST_Point の新規列 (LOCATION) を追加します。この列には、後続ステップで住所列をジオコーディングすることによってデータが入れられます。
  2. OFFICES 表は、データの中でも特に、保険会社の各支所の販売地域を表します。表全体には、後続ステップで DB2 以外のデータベースから属性データが入れられます。このステップには、SHAPE ファイルから OFFICES 表に属性データをインポートすることが関係しています。

地理情報レイヤーを登録する
  1. CUSTOMERS 表の LOCATION 列をレイヤーとして登録する (gseRegisterLayer)
  2. CUSTOMERS 表の LOCATION 列を抹消する (gseUnregisterLayer)
  3. OFFICES 表の ZONE 列をレイヤーとして登録する (gseRegisterLayer)

これらのステップは、LOCATION および ZONE 列をレイヤーとして地理情報エクステンダーに登録します。地理情報エクステンダー・ユーティリティー (たとえば、ジオコーダー) で地理情報列にデータを取り込んだりアクセスしたりするには、該当する列をレイヤーとして登録する必要があります。レイヤーを地理情報エクステンダー・ユーティリティーからアクセス可能にした後で、それを登録抹消することもできます。レイヤーとして登録抹消した後でも、関連した列は残ります。
地理情報レイヤーにデータを取り込む
  1. CUSTOMERS 表の LOCATION 列の住所データをジオコーディングする (gseRunGC)
  2. 追加モードを使って OFFICES 表をロードする (gseImportShape)
  3. 作成モードを使って HAZARD_ZONE 表をロードする (gseImportShape)

  1. このステップは、ジオコーダー・ユーティリティーを呼び出して、バッチ・ジオコーディングを実行します。バッチ・ジオコーディングは通常、表のかなりの部分をジオコーディングまたは再びジオコーディングする必要がある場合に実行します。
  2. このステップは、OFFICES 表に、 SHAPE ファイルの形式で存在する地理情報データをロードします。 OFFICES 表が存在し、OFFICES/ZONE レイヤーが登録されているので、ロード・ユーティリティーは既存表に新規レコードを追加します。
  3. このステップは、HAZARD_ZONE レイヤーに、 SHAPE ファイルの形式で存在する地理情報データをロードします。表およびレイヤーが存在しないので、ロード・ユーティリティーは表を作成し、データがロードされる前にレイヤーを登録します。

ジオコーダーの登録
  • それがデフォルトでなければ、ジオコーダーを登録します (gseRegisterGc)
  • 登録済みのジオコーダーを抹消します (gseUnregisterGc)
  • それがデフォルトでなければ、ジオコーダーを登録します (gseRegisterGc)


地理情報索引を使用可能にする
  1. CUSTOMERS 表の LOCATION 列の地理情報索引を使用可能にする (gseEnableIdx)
  2. OFFICES 表の ZONE 列の地理情報索引を使用可能にする (gseEnableIdx)
  3. OFFICES 表の LOCATION 列の地理情報索引を使用可能にする (gseEnableIdx)
  4. HAZARD_ZONE 表の BOUNDRY 列の地理情報索引を使用可能にする (gseEnableIdx)

これらのステップは、CUSTOMERS、OFFICES、および HAZARD_ZONE 表の地理情報索引を使用可能にします。
自動ジオコーディングを使用可能にする
  1. CUSTOMERS 表の LOCATION および ADDRESS 列の自動ジオコーディングを使用可能にする (gseEnableAutoGC)

このステップは、ジオコーダーの自動呼び出しをオンにします。自動ジオコーディングを使用すると、 CUSTOMERS 表の LOCATION および ADDRESS 列を互いに同期させて、後続の挿入および更新操作を行うことができます。
CUSTOMERS 表に対して挿入 / 更新 / 削除する
  1. 異なる町名を持つ特定のレコードを挿入する (gseInsDelUpd)
  2. 新しい住所を持つ特定のレコードを更新する (gseInsDelUpd)
  3. 表からすべてのレコードを削除する (gseInsDelUpd)

これらのステップは、CUSTOMERS 表の LOCATION 列に対する挿入、更新、および削除を示します。自動ジオコーディングが使用可能になると、ADDRESS 列からの情報は、 LOCATION 列の中で挿入または更新されるときに自動的にジオコーディングされます。このプロセスは、前のステップで使用可能にされています。
自動ジオコーディングを使用不可にする
  1. CUSTOMERS レイヤーの自動ジオコーディングを使用不可にする (gseDisableAutoGC)
  2. CUSTOMERS レイヤーの地理情報索引を使用不可にする (gseDisableIdxCustomersLayer)

これらのステップはジオコーダーおよび地理情報索引の自動呼び出しを使用不可にし、次のステップの準備を行います (次のステップには、 CUSTOMERS 表全体の再ジオコーディングが関係しています)。大量の地理データをロードする場合は、データをロードする前に地理情報索引を使用不可にした後、ロードが完了してから地理情報索引を使用可能にすることをお勧めします。
CUSTOMERS 表を再びジオコーディングする
  1. CUSTOMERS レイヤーを低い精度レベル (100% ではなく 90%) で再びジオコーディングする (gseRunGC)
  2. CUSTOMERS レイヤーの地理情報索引を再び使用可能にする (gseEnableIdx)
  3. 自動ジオコーディングを低い精度レベル (100% ではなく 90%) で再び使用可能にする (gseEnableAutoGC)

これらのステップは、ジオコーダーをバッチ・モードで再び実行し、新しい精度レベルで自動ジオコーディングを再び使用可能にし、地理情報索引および自動ジオコーディングを再び使用可能にします。この処置は、地理情報管理者がジオコーディング・プロセスの失敗率が高いことに気付いた場合にお勧めします。精度レベルを 100% に設定すると、参照データ内に一致する住所が見つからないために、住所のジオコーディングが失敗する恐れがあります。精度レベルを下げることにより、ジオコーダーが一致するデータを見つける確率は高くなります。表を再びバッチ・モードでジオコーディングしたら、自動ジオコーディングと地理情報索引の両方を再び使用可能にして、後続の挿入および更新を行うために地理情報索引と地理情報列の増分保守を行えるようにします。
視点を作成し、その地理情報列を視点レイヤーとして登録する
  1. CUSTOMERS 表と HAZARD_ZONE 表の結合に基づいて視点 HIGHRISK_CUSTOMERS を作成する (gseCreateView)
  2. 視点の地理情報列を視点レイヤーとして登録する (gseRegisterLayer)

これらのステップは、視点を作成し、その地理情報列を視点レイヤーとして登録します。
地理情報分析を実行する
  1. 各オフィスからの平均顧客距離を検出する (ST_Within、ST_Distance)
  2. オフィスごとに顧客の平均的な所得と保険料を検出する (ST_Within)
  3. 既存オフィスの管轄下にいない顧客を検出する (ST_Within)
  4. 各オフィスの管轄範囲が重なり合う危険地帯の数を検出する (ST_Overlaps)
  5. 特定顧客の位置から最も近いオフィスを検出する (そのオフィスはオフィス地域の中心部に位置すると仮定する) (ST_Distance、ST_Centroid)
  6. 特定の危険地帯の境界に近い位置の顧客を検出する (ST_Buffer、ST_Overlaps)
  7. 特定のオフィスの管轄下にある、リスクの高い顧客を検出する
(すべてのステップは gseRunSpatialQueries を使用する)
これらのステップは、DB2 SQL 言語で地理情報の述部と関数を使って地理情報分析を実行します。 DB2 照会最適化プログラムは、地理情報列の地理情報索引を活用して、可能な限り、照会パフォーマンスを向上させます。
地理情報レイヤーをファイルにエクスポートする highRiskCustomers レイヤーをエクスポートする (gseExportShape) このステップでは、SHAPE ファイルに対する照会結果をエクスポートする例を示します。照会結果を別のファイル形式にエクスポートすると、その情報を第三者のツール (たとえば、ESRI ArcInfo) で使用できるようになります。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]