カスタム空間リレーションシップ

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フィーチャクラス 2String

含む

ライン

ライン

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

関連トピック