サポート > PC-MAPPING ヒント集 > ベクターデータ > 位相一貫性のチェック
位相一貫性のチェック
[編集]-[編集]-[交点・ダブリアーク]-[位相一貫性のチェック]は、アークについて次のような項目のチェックをします。
  1. 1要素について、連続する補間点が同一座標や微小距離の場合
  2. 自己交差や重なり(ダブリ)の場合
  3. 前景レイヤー内でアークが他のアークと交差している場合や、重なっている(ダブリ)場合
  4. レイヤー間のアーク同士で交差や重なり(ダブリ)がある場合
外部のデータをインポートした結果アークが構造化されていない場合など、どこにどのようなエラーがあるかをチェックする事ができます。
■ 操作方法
  1. [編集]-[編集]-[交点・ダブリアーク]-[位相一貫性のチェック]を実行すると表示される[位相一貫性のチェック]ダイアログボックスで、エラーをチェックしたい項目のチェックボックスをONにし、<OK>ボタンを押します。

  2. 処理が実行され、結果のエラーメッセージのダイアログが表示されます。
    この内容は Ctrl+Cキーでクリップボードにコピーできます。

  3. エラーの箇所にポイントが生成され、新規に作成された「位相チェック」レイヤーに保存されます。
    また、「位相チェック」のポイント内部属性にエラーの詳細が記載されます。

  4. ここでは、[位相一貫性のチェック]ダイアログボックスで設定する項目について、具体的な例で説明します。

■ チェック項目(1) 連続する同一点、微小セグメント
しきい値
エラーと判断するしきい値(m実長)を入力します。
前景レイヤーのアークの各要素について、連続する補間点の間(セグメント)の長さが[しきい値]より小さい場合、「微小セグメント」のエラーとして検出します。
連続する補間点の座標が同じ場合は、「連続する同一点」のエラーとなります。

《処理例》
  1. 「図1」に対して、「連続する同一点、微小セグメント」を実行した結果は次のようになります。
    ▼ 図1
    処理内容
    [連続する同一点、微小セグメント]チェックボックス:ON
    しきい値:0.01(m実長)

  2. エラーの箇所にはポイントが生成され、エラーの要素は「エラー強調線形」で描画されます。
    ▼ 図1:処理後

    ▼ 属性テーブル
    • 「種別」:エラーの種類が記載されます。
    • 「要素ID」:アーク内部番号が記載されます。
    • 「記述」:実長が記載されます。

  3. エラーの要素の座標値を調べてみると、「しきい値」より小さいセグメントがある事が分かります(座標リストを得るには、[属性照会]-[アーク属性照会]-[属性照会]ダイアログボックスで、対象のアークを選択して<座標リスト>ボタンをクリックします)。
    ▼ エラー要素の座標値リスト

  4. 「エラー強調線形」での描画を元に戻すには、[編集]-[エラー強調フラグのクリア]を実行します。

■ チェック項目(2) 自己交差(ねじれ)、ダブリ等
前景レイヤーのアークの各要素について、1つの要素内でのセグメントの交差や重なりをチェックします。

■ チェック項目(3) 交差(同一レイヤー内)
前景レイヤーのアーク間での、交差や重なりをチェックします。

■ チェック項目(4) 交差(レイヤー間)
異なるレイヤーのアーク間での交差や重なりをチェックします。
対象レイヤー
[交差(レイヤー間)]を実行するレイヤーを選択します。複数レイヤーが選択可能です。
例えば、[対象レイヤー]として「レイヤーA」・「レイヤーB」を選択した場合、次の3つの組み合わせについてチェックを行います。
  • 前景レイヤーと選択レイヤーA
  • 前景レイヤーと選択レイヤーB
  • 選択レイヤーAと選択レイヤーB

■ 交差判定方法について
「自己交差(ねじれ)、ダブリ等」・「交差(同一レイヤー内)」・「交差(レイヤー間)」を実行する場合、交差を判定する方法として、
  • 「分解能(解像度)を指定して交差判定をする」
  • 「しきい値を指定して交差判定する」
のいずれを選択します。
[分解能(解像度)を指定して交差判定をする]ラジオボタン
ONの場合、各ベクターデータの座標値は一旦、指定の分解能までの値で丸められます。
すなわち、指定の分解能を1単位(ピクセル)とした整数値にする事に相当します。
この状態で、交差判定を行います。
[しきい値を指定して交差判定する]ラジオボタン
ONの場合、一方の要素(またはセグメント)について、しきい値によるバッファー領域を作成したとき、他方の要素(またはセグメント)の全体または一部がそのバッファー領域内にあるかどうで判定します。

エラー項目ごとのエラー種別は、「分解能」か「しきい値」かによって次のようになります。
エラー項目指定種別エラー種別
連続する同一点、微小セグメント ◎しきい値 ・連続する同一点
・微小セグメント
自己交差(ねじれ)、ダブリ等 ◎分解能 ・自己ダブリ
・自己ダブリ(部分的)
・自己交差
・自己交差(補間点上)
◎しきい値 ・途中接触
・自己交差
交差(同一レイヤー内) ◎分解能 ・ダブリ
・ダブリ(部分的)
・交差
・交差(補間点上)
◎しきい値 ・交差
・途中接続(接触)
・オーバーラップ
・始終点が途中接続(接触)
・始終点が途中接続(接触)
交差(レイヤー間) ◎分解能 ・(レイヤー間)ダブリ
・(レイヤー間)ダブリ(部分的)
・(レイヤー間)交差
・(レイヤー間)交差(補間点上)
◎しきい値 ・交差
・途中接続(接触)
・オーバーラップ
・始終点が途中接続(接触)
・始終点が途中接続(接触)

「分解能(解像度)を指定して交差判定をする」の場合
「ダブリ」や「交差」は次図のようになります。
  • 1つの要素内のセグメント同士なら、「自己ダブリ」・「自己ダブリ(部分的)」・「自己交差」・「自己交差(補間点上)」
  • 1つのレイヤー内の2つの要素間なら、「ダブリ」・「ダブリ(部分的)」・「交差」・「交差(補間点上)」
  • 別のレイヤーの要素間なら、「(レイヤー間)ダブリ」・「(レイヤー間)ダブリ(部分的)」・「(レイヤー間)交差」・「(レイヤー間)交差(補間点上)」

「しきい値を指定して交差判定する」の場合
「途中接続(接触)」や「交差」は次図のようになります。
  • 1つの要素内のセグメント同士なら、(a)・(b)が「途中接触」、(e)が「自己交差」
  • 1つのレイヤー内の2つの要素間なら、(a)・(b)が「途中接続(接触)」、(c)・(d)が「始終点が途中接続(接触)」、(e)が「交差」
  • 別のレイヤーの要素間なら、(a)・(b)が「途中接続(接触)」、(c)・(d)が「始終点が途中接続(接触)」、(e)が「交差」
    注)(c)・(d)の場合、相手要素の補間点近辺ならエラーになりません

「オーバーラップ」は次図のようになります。
  • (a)・(b) が「途中接続(接触)」で、その間の長さ D1 > 「しきい値」なら、「オーバーラップ」(セグメントの中点(c)にポイント生成)
  • (d)・(e) が「途中接続(接触)」で、その間の長さ D2 > 「しきい値」なら、「オーバーラップ」(セグメントの中点(f)にポイント生成)

《処理例:「自己交差(ねじれ)、ダブリ等」・「交差(同一レイヤー内)」》
  1. 「図2」に対して、「自己交差(ねじれ)、ダブリ等」・「交差(同一レイヤー内)」を「分解能(解像度)を指定して交差判定をする」/「しきい値を指定して交差判定する」で実行した結果は次のようになります。
    ▼ 図2

  2. 「分解能(解像度)を指定して交差判定をする」で実行した場合
    処理内容
    [自己交差(ねじれ)、ダブリ等]チェックボックス:ON
    [交差(同一レイヤー内)]チェックボックス:ON
    ◎分解能(解像度)を指定して交差判定をする:0.01/1m(実長)
    ▼ 図2:処理後

    ▼ 属性テーブル
    • 「種別」が「交差」・「ダブリ」の場合、「要素2ID」に相手要素のアーク内部番号が記載される。

  3. 「しきい値を指定して交差判定する」で実行した場合
    処理内容
    [自己交差(ねじれ)、ダブリ等]チェックボックス:ON
    [交差(同一レイヤー内)]チェックボックス:ON
    ◎しきい値を指定して交差判定をする:0.01(m実長)
    ▼ 図2:処理後

    《注》「しきい値」より短いセグメントがある場合(すなわち「微小セグメント」のエラーになる要素の場合)、「途中接触」エラーになる場合があります。
    ▼ 属性テーブル
    • 「種別」が「交差」・「途中接続(接触)」・「始終点が途中接続(接触)」・「オーバーラップ」の場合、「要素2ID」に相手要素のアーク内部番号が記載される。

■ 補足
「しきい値を指定して交差判定する」で実行する場合には、指定した「しきい値」によっては次図のように「エラー種別」が異なってくる場合もあります。
※以下の図で、水色のラインは、アークから1mの距離のバッファーラインです。
処理内容(1)
[交差(同一レイヤー内)]チェックボックス:ON
◎しきい値を指定して交差判定をする:0.01(m実長)
処理内容(2)
[交差(同一レイヤー内)]チェックボックス:ON
◎しきい値を指定して交差判定をする:1(m実長)

《処理例:交差(レイヤー間)》
  1. 「図3」には『建築物』『町字界線』『道路縁』のレイヤーがあり、『建築物』が前景レイヤーとなっています。
    この時、「交差(レイヤー間)」を「分解能(解像度)を指定して交差判定をする」/「しきい値を指定して交差判定する」で実行した結果は次のようになります。
    ▼ 図3

  2. 「分解能(解像度)を指定して交差判定をする」で実行した場合
    処理内容
    [交差(レイヤー間)]チェックボックス:ON
    ◎分解能(解像度)を指定して交差判定をする:0.01/1m(実長)
    対象レイヤー:『町字界線』『道路縁』を選択
    ▼ 図3:処理後

    ▼ 属性テーブル
    • 「レイヤー2名」・「要素2ID」に相手要素のレイヤー名・アーク内部番号が記載される。

  3. 「しきい値を指定して交差判定する」で実行した場合
    処理内容
    [交差(レイヤー間)]チェックボックス:ON
    ◎しきい値を指定して交差判定をする:0.01(m実長)
    対象レイヤー:『町字界線』『道路縁』を選択
    ▼ 図3:処理後

    ▼ 属性テーブル
    • 「レイヤー2名」・「要素2ID」に相手要素のレイヤー名・アーク内部番号が記載される。