Data Reviewer のライセンスで利用可能。
[DE-9IM] オプションは、[フィーチャ間] チェックで使用できる、DE-9IM (Dimensionally Extended 9-Intersection Model) 形式の文字列を使用するカスタム空間リレーションシップ タイプです。 カスタム空間処理は、2 つのフィーチャクラスのフィーチャの内部、境界、外部によって定義されます。
空間リレーションシップ タイプとして [DE-9IM] を選択すると、次の 3 つの側面に基づいて 2 つの形状間の空間的な交差を比較できます。
- 内部 - 境界を除く形状全体。 すべてのジオメトリ タイプには内部があります。
- 境界 - ライン フィーチャのすべての線形パーツの端点またはポリゴンの線形アウトライン。 境界を持つのはラインとポリゴンのみです。
- 外部 - 形状の外側の領域で、境界は含まれません。 すべてのジオメトリ タイプには外部があります。
フィーチャ ジオメトリの各タイプにおいて内部、境界、外部がどのように定義されるかを理解することは、関係演算子を理解する上で重要です。
- ポイント - ポイントは、空間内の 1 つの位置を表します。 ポイントの内部はポイント自身、境界は空集合 (存在しない境界)、外部はその他すべてのポイントです。
- マルチポイント - マルチポイントは、ポイントの順序付きのコレクションです。 マルチポイントの内部はコレクション内のポイントの集合、境界は空集合 (存在しない境界)、外部はコレクション内にないポイントの集合です。
- ポリライン - ポリラインは 1 つ以上のパスの順序付きのコレクションです。各パスは、隣接セグメントのコレクションです。 セグメントには始点と終点があります。ポリラインの境界は各パスの始点と終点の集合、内部は境界にないポリライン内のポイントの集合、外部は境界または内部にないポイントの集合です。 次の図のポリラインでは、境界を構成するポイントの集合が青で示されています。 ポリラインの内部はオレンジで示されています。  
- ポリゴン - ポリゴンは、リングまたはリングのコレクションで定義されます。 各リングは隣接セグメントのコレクションであり、始点と終点が同じです。 - ポリゴンの境界は、ポリゴンを定義するリングまたはリングのコレクションです。 境界には、1 つ以上の外部リングと 0 個以上の内部リングが含まれます。 外部リングは時計回り、内部リングは反時計回りです。 境界に沿って時計回りに歩くことを想像してください。 すぐ右のエリアはポリゴンの内部で、左側は外部です。 次の図のポリゴンでは、境界が青、内部がオレンジで示されていて、外部は境界外の空の空間です。  
DE-9IM 空間リレーションシップは、次の文字で構成される 9 文字の一連の文字列によって定義されます。
- T (true) - フィーチャには、交差する内部、境界、外部があります。
- F (false) - フィーチャには、交差する内部、境界、外部がありません。
- 0 (無次元) - フィーチャの内部、境界、外部の交差によりポイントが作成されます。
- 1 (1 次元) - フィーチャの内部、境界、外部の交差によりラインが作成されます。
- 2 (2 次元) - フィーチャの内部、境界、外部によりポリゴンが作成されます。
- * (チェックしない) - 内部、境界、外部のリレーションシップの側面がチェックされません。
それぞれの文字の配置は、2 つのフィーチャ間でチェックされる内容を決定するので重要です。 次の表は、フィーチャクラス 1 とフィーチャクラス 2 という 2 つのリージョン間の空間リレーションシップを記述する文字の順序を示しています。
たとえば、フィーチャクラス 1 とフィーチャクラス 2 の内部を比較する場合、スロット 1 に「T」と入力します。 それらを比較しない場合は、スロット 1 に「*」と入力します。
| 文字のスロット番号 | フィーチャクラス 1 | フィーチャクラス 2 | 
|---|---|---|
| 1 | 内部 | 内部 | 
| 2 | 内部 | 境界 | 
| 3 | 内部 | 外部 | 
| 4 | 境界 | 内部 | 
| 5 | 境界 | 境界 | 
| 6 | 境界 | 外部 | 
| 7 | 外部 | 内部 | 
| 8 | 外部 | 境界 | 
| 9 | 外部 | 外部 | 
図の例
次のシナリオは、赤のジオメトリ タイプが、その内部、境界、外部に基づいて互いにどのように関連しているかを示しています。
| フィーチャクラス 2内部 | フィーチャクラス 2境界 | フィーチャクラス 2外部 | |
|---|---|---|---|
| フィーチャクラス 1 (ポリゴン) |  T***T**** FC1 (ポリゴン) は FC2 (ポリゴン) と境界を共有し、内部が交差しています。 |  F***1**** FC1 (ポリゴン) は FC2 (ポリゴン) と境界を共有しています。 内部は交差しておらず、共有された境界がラインを形成しています。 | 
 ***1***** FC1 (ポリゴン) の外部が FC2 (ライン) の内部と同じ長さで交差しています。 | 
| フィーチャクラス 1 (ライン/ポリライン) |  TT*FFT*** FC1 (ライン) の内部は FC2 (ライン) に含まれています。 |  FF*FT**** FC1 (ライン) が FC2 (ポイント) の境界に接し、内部は交差していません。 |  TT**F**** FC1 (ライン) の外部と内部が FC2 (ポリゴン) と交差しています。 | 
| フィーチャクラス 1 (ポイント) |  T******** FC1 (ポイント) の内部が FC2 (ライン) 内にあります。 |  *T******* FC1 (ポイント) の内部が FC2 (ライン) の境界に接しています。 |  TF****T** FC1 (ポイント) の外部が FC2 (ポリゴン) の内部の中にあり、FC2 の境界は除外します。 | 
リレーションシップのパターン
[DE-9IM] オプションを選択すると、[DE-9IM 文字列] テキスト ボックスが表示され、パターン文字列を入力できます。 特定のリレーションシップを見つけるために使用できるパターンを次の表に示します。
| 空間リレーションシップ | フィーチャクラス 1 | フィーチャクラス 2 | String | 
|---|---|---|---|
| 含む | ライン | ライン | TT*FFT*** | 
| 含む | ライン | ポイント | T**F*T*** | 
| 含む | ポイント | ポイント | T******** | 
| 含む | ポリ | ライン | TT*FFT*** | 
| 含む | ポリ | ポリ | TT*FFT*** | 
| 横切る | ライン | ライン | TF*FF**** | 
| 横切る | ライン | ポリ | TT**F**** | 
| 横切る | ポリ | ライン | T***F**T* | 
| オーバーラップする | ライン | ライン | TT*T***** | 
| 重なる | ポイント | ポイント | T******** | 
| 重なる | ポリ | ポリ | TT*T***** | 
| 接する | ライン | ライン | FF*FT**** | 
| 接する | ライン | ポリ | FF*FT**** | 
| 接する | ポリ | ライン | FF*FT**** | 
| 接する | ポリ | ポリ | FF*FT**** | 
| 含まれる | ライン | ライン | TF**F**** | 
| 含まれる | ライン | ポイント | T******** | 
| 含まれる | ポイント | ポイント | T******** | 
| 含まれる | ポリ | ライン | TF**F**** | 
| 含まれる | ポリ | ポリ | TF**F**** | 
[DE-9IM 文字列] テキスト ボックスで使用される文字列のその他の例を次の表に示します。
| 空間リレーションシップ | フィーチャクラス 1 | フィーチャクラス 2 | 使用する文字列 | 
|---|---|---|---|
| 境界を共有する | ポリ | ポリ | ****T**** | 
| 境界を共有し、内部は交差する | ポリ | ポリ | T***T**** | 
| 境界を共有し、内部は交差しない | ライン | ライン | F***T**** | 
| 境界は接さず、内部は交差する | ポリ | ポリ | T***F**** | 
| ポリゴンの境界はラインの内部と合同の長さで交差する | ポリ | ライン | ***1***** | 
| 正確に一致する | ポリ | ポリ | **F*TF*** | 
| 境界に接する | ライン | ライン | ****T**** | 
| 線分を共有する | ポリ | ポリ | F***1**** | 
| アウトラインと交差する | ポリ | ライン | TT**F**** | 
