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**** |