道路の競合を解決 (Resolve Road Conflicts) ツールの機能

[道路の競合を解決 (Resolve Road Conflicts)] ツールは、シンボル表示された道路フィーチャをグラフィックス上で重ならないように調整します。 道路データが作成時よりも小さい縮尺で表示された場合、通常、グラフィックスが重なって表示されます。 ライン シンボルを適用すると、隣接する道路同士が互いに重なることがあります。

道路の競合を解決ツールの機能

入力フィーチャは、基準縮尺でシンボル表示されるときに、互いに近接し、平行であるかどうかが評価されます。 これらのフィーチャは、[階層フィールド] の値に基づいてランク付け、分類されます。 グラフィックスの重なりを解消して明確に表示するために、フィーチャ (フィーチャの一部) がわずかに移動されます。 フィーチャの一部のみが移動される場合、移行は円滑に処理されます。 行われた移動は、必要に応じてポリゴン出力フィーチャクラスに保存できます。 このフィーチャクラスを [移動の反映 (Propagate Displacement)] ツールへの入力として使用することで、他のフィーチャとの空間的関係を維持できます。

このツールは、フィーチャを空間的関係および相対的階層に基づいて移動します。

  • 異種フィーチャ - 異種フィーチャはそれぞれ階層値が異なります。 例として、高速道路の車線と並んで走る側道があります。 このようなフィーチャのシンボルのエッジが基準縮尺で互いに 0.3 mm の範囲内にある場合、それらのフィーチャは、フィーチャ間で視覚的な 0.3 mm の間隔だけ外側に移動されます。 下位階層値の (重要性の高い) フィーチャが収まるだけの領域が確保されるように、上位階層値の (重要性の低い) フィーチャを移動します。
  • 同種フィーチャ - 同種フィーチャはそれぞれ階層値が同じです。 例として、2 車線の高速道路や 2 車線の大通りがあります。 これらのフィーチャが平行 (またはほぼ平行) で、フィーチャのシンボルのエッジが基準縮尺で物理的に重なり合っている場合、それらのフィーチャは、シンボルが間隔を空けずに互いに隣接して表示されるように分離して移動されます。 同様に、2 つのシンボルがかなり接近し合っているときは、一緒にスナップするので、シンボル同士が互いに隣接します。
  • 行き止まり - 行き止まりの道路の一端と別の道路の間に、視覚的に認識できる空間が存在しない場合、行き止まりの道路 (一端で接続されていないダングル フィーチャ) がわずかに短縮されます。 これは、何も存在しない場合に、接続された交差点が表示されないようにするためです。 接続されていない道路セグメントのシンボルのエッジが別の入力フィーチャから基準縮尺で 0.5 mm 未満離れているときは、行き止まりが 0.5 mm の間隔だけ短縮されます。
  • 円 - ロータリーなどの円形 (またはほぼ円形) のフィーチャは、シンボルの内側のエッジ間に基準縮尺で 0.3 mm の視覚的に認識できる間隔を空けて、拡大 (外側へ展開) されます。

データの準備に関する考慮事項

[道路の競合を解決 (Resolve Road Conflicts)] ツールは、ライン フィーチャが出力縮尺でシンボル表示されたときにグラフィックス上で見やすくなるようにそれらのフィーチャを調整します。 一度に複数のレイヤーにアクセスして処理できます。 交通ネットワーク内に共存するときのフィーチャのリレーションシップを維持するには、入力フィーチャのジオメトリがツールで正しく設定されていることが極めて重要です。 入力データに関して、次の要件と推奨事項を念頭に置いてください。

  • シングルパート フィーチャ - 入力フィーチャにマルチパート フィーチャを含めることはできません。 フィーチャをシングル パートに変換するには、[マルチパート → シングルパート (Multipart To Singlepart)] ツールを使用するか、または [単一パートから構成される] ルールでトポロジを作成します。

  • 共有セグメント - 入力フィーチャ同士は、セグメントを共有するので、互いにオーバーラップすることはできません。 これらの問題を解決するには、[重複しない] ライン ルールおよび [同一ライン内で重複しない] ライン ルールでトポロジを作成してください。 複数の入力レイヤーでツールを実行する場合、[他クラスと重複しない] ルールでトポロジを作成してください。 共有セグメントが検出されると、警告が発生しますが、ツールの実行は続行されます。 関与しているフィーチャのオブジェクト ID は、SharedGeom#.txt (# は各ログ ファイルが生成されるたびに増分する数値) という名前のログ ファイルに書き込まれます。

  • 自己交差フィーチャ - 入力ライン フィーチャが交差している場合、始点と終点が同一の場合は、予期しない結果になる可能性があります。 これらの領域を特定するには、[同一ライン内で交差しない] ライン ルールでトポロジを作成してください。 自己交差フィーチャが検出されると、警告が発生しますが、ツールの処理は続行されます。 自己交差フィーチャのオブジェクト ID は、SelfIntersect#.txt (# は各ログ ファイルが生成されるたびに増分する数値) という名前のログ ファイルに書き込まれます。

  • XY 許容値未満のジオメトリ - マップ内またはツールの環境で指定された XY 許容値に達しないフィーチャがデータ内に存在することがあります。 長さが許容値に達しないフィーチャが検出された場合、警告が表示され、それらのフィーチャにはツールの処理が行われません。 許容値未満のジオメトリを持つフィーチャのオブジェクト ID は、GeomBelowTolerance#.txt (# は各ログ ファイルが生成されるたびに増分する数値) という名前のログ ファイルに書き込まれます。

  • 空または Null ジオメトリ - 入力フィーチャは有効なジオメトリで構成する必要があります。 形状長さがゼロまたは NULL のフィーチャが検出された場合、警告が発生し、それらのフィーチャはツールに無視されます。 空または NULL ジオメトリを持つフィーチャのオブジェクト ID は、EmptyGeom#.txt (# は各ログ ファイルが生成されるたびに増分する数値) という名前のログ ファイルに書き込まれます。 必要に応じて [ジオメトリの修正 (Repair Geometry)] ツールを使用して、これらのフィーチャを修正してください。

  • 隠れた行き止まり - 最終的な縮尺でシンボル表示したときに、外観上はあたかも接続されているかのように見えても、実は接続されていない場合があります。そのようなセグメントを「隠れた行き止まり」といいます。 行き止まりでよい場合もありますが、本来行き止まりであってはならず、ただ見かけ上つながっているように見えるため、気付かれずに放置されている場合があります。 それを修復しないままツールを実行すると、つながっていない箇所が見た目にも明らかになることがあります。 別のセグメントから 0.5 ミリメートル (基準縮尺を考慮) 以内にある端点は、隠れた行き止まりとして検出されます。 隠れた行き止まりが検出されると、警告が発生しますが、ツールの処理は続行されます。 隠れた行き止まりは、検出されたときに DeadEnd#.txt (# は各ログ ファイルが生成されるたびに増分する数値) という名前のログ ファイルに書き込まれます。

  • 頂点 - 頂点が余計なものかどうかは、品質と処理時間の兼ね合いで判断してください。 余分な頂点を除去するには、適宜に [ラインの単純化 (Simplify Line)] ツールを使用します。

  • このツールは、シンボル表示されたフィーチャのグラフィックス競合を評価します。 シンボル範囲と基準縮尺は、互いの関連で使用されます。 このツールは、シンボル表示を完成させてから実行してください。そうすることにより、目標とする最終的な出力縮尺に対応した基準縮尺が確実に得られます。

  • ラインおよびアウトライン シンボル幅がゼロである場合、エラーが発生します。 特定のフィーチャを表示しないようにするには、レイヤーで定義クエリを使用します。

    シンボルの幅が 0 であると検出されたフィーチャは、NoLineWidth#.txt (# はログ ファイルが生成されるたびに増加する数値) という名前のログ ファイルに書き込まれます。

  • 座標系を評価するには、カートグラフィの座標系環境が使用されます (設定されている場合)。設定されていない場合は、マップの座標系が使用されます。 上記の両方が使用可能でない場合は、入力レイヤーの座標系が使用されます。

  • Windows オペレーティング システムでは、警告またはエラーが C:\Users\<user name>\AppData\Local\ESRI\GeoProcessing に書き込まれると、ログ ファイルが生成されます。

ワークフローに関する考慮事項

このツールはほとんどの場合、他の「ジェネラライズ」ツールや「シンボル表現の競合解決」ツールと一緒に使用するのが一番効果的です。 これらのツールをワークフロー内の他のレイヤーおよび他のツールと一緒に使用するうえで参考になるヒントを、以下にいくつか紹介します。

  • 入力フィーチャクラスに変更が加えられることを念頭に置きます。 このツールでは、新しい道路フィーチャクラスが出力として生成されない代わりに、入力フィーチャクラスのデータが直接更新されます。 処理を実施する前に、フィーチャクラスのコピーを作成し、元の状態を保存しておくことをお勧めします。
  • 最初に、余計なフィーチャを除去します。 道路網の密度に応じて、先に余分な生活道路フィーチャを除去し、間隔を広げることで競合を解決することをお勧めします。 この除去を行うには、定義クエリまたは選択によって 1 つ以上の道路クラスを除去するか、[道路網の間引き (Thin Road Network)] ツールを使用してさらに対象範囲を絞り込みます。
  • 道路をマージしてから道路を移動します。 [道路のマージ (Merge Divided Roads)] ツールは本質的に、道路の競合を解決ツールとは正反対です。 このツールは、互いに近接し、実質的に平行である道路フィーチャ (通例、分割された単一の道路フィーチャの個別の車線) を評価し、代表的ラインを生成して、道路をより明確に表示するために使用します。 いずれの方法も、合流する道路の問題に対する有効な解決策です。 一般的に、大きな出力縮尺では、個別の車線を視覚的に区別する方が望ましく、これに対して小さな縮尺では、それらの車線を単一のラインにマージする必要があります。 中間の縮尺では、それぞれの道路クラスで両方の方法を使用することが望ましい場合があります。 両方のツールをともに 1 つのワークフローで使用する場合、最初に該当のフィーチャに対して [道路のマージ (Merge Divided Roads)] を実行してから、そのツールの結果を [道路の競合を解決 (Resolve Road Conflicts)] ツールへの入力として使用してください。
  • フィーチャ階層を設定します。 道路フィーチャの相対的な重要度を特定するには、[階層フィールド] パラメーターを使用します。 道路フィーチャの重要度は通常、道路の分類およびシンボル表示の仕方に対応しています。 重要度の低い道路は、重要度の高い道路の表示に合わせて調整されます。 階層値 1 は最も重要な道路を示し、大きい整数値は重要度の低い道路を示します。 最適な結果を得るには、入力データに適用する階層クラスを 5 つ以下に抑えてください。 あるフィーチャ階層に対してすべての入力レイヤーを一括して評価するには、同じ分類値を使用して各レイヤーに同じ名前のフィールドを格納しておく必要があります。 このフィールドのデータ タイプは Short または Long Integer である必要があります。
  • 特定のフィーチャをロックすることを検討してください。 [階層フィールド] パラメーターを使用して、フィーチャの [階層フィールド] の値を 0 に計算することにより、フィーチャをロックすることもできます。 ロックされたフィーチャは移動されることはありません。 これは、他のマップ フィーチャ (特に、標高などの連続データ) との関係上、道路を移動できない場合に便利です。 たとえば、道路のセクションが急勾配の狭い谷を通っていて、その道路を現在の位置から移動すると、地図学的に不正確になる場合などです。
  • バリアを定義する際は、ロックを使用してください。 ロックを使用すると、道路の位置を変えるうえで妨げとなる場合もありえます。 たとえば、鉄道レイヤーは道路とともに [入力道路レイヤー] パラメーター リストに含めることができます。 すべての鉄道フィーチャに階層値 0 が割り当てられている場合、道路は鉄道とグラフィックスを競合していると評価されるので、鉄道の上部または鉄道の真上の位置には移動しません。ただし、鉄道フィーチャ自体には変更が加えられません。
  • オプションの [出力移動フィーチャクラス] パラメーターは、ポリゴンのフィーチャクラスを作成します。このフィーチャクラスは、発生した変位の量と方向を示します。 このフィーチャクラスは、目視検査と空間クエリに使用することも、[移動の反映 (Propagate Displacement)] ツールへの入力として使用することもできます。

大きなデータセットの分割

このツールは、個々のフィーチャの最終的な状態を決定する際に、隣接および接続したフィーチャが考慮されるよう状況に応じて機能します。 複数のデータセットを一度に入力することができるため、これらはすべて同時に考慮されます。 大量の入力データを (または個別の入力レイヤーを多く) を使用すると、メモリの制限を超えることがあります。 これを防ぐには、このツールの実行中にパーティション化を有効にすることを検討します。それは、カートグラフィック パーティション環境にフィーチャクラスの分割を指定することによって行います。 分割が有効になっている場合、ツールは、論理的で処理しやすいサイズで順次データを処理します。 各パーティションのポリゴンに特定された入力フィーチャは、パーティションを囲むバッファー ゾーンからの別データとともにツールに読み込まれます。 この別データは、処理の進行と同時に反映されます。 これにより、作成されたフィーチャクラスがシームレスになり、パーティションの境界を越えて重なり合うフィーチャの状態の整合性がとれるようになります。

道路の競合が分割によって解決される場合、各パーティションの境界線を超えたバッファー内にあるフィーチャも修正されます。 それらのフィーチャは、パーティションの境界線で、パーティション内で起こった移動に一致させられます。 パーティションのエッジから離れるにつれ、移動の量が減少するため、円滑な移行が可能になります。 これは、それぞれのパーティションの処理時に道路ネットワークの接続性がそのまま維持されるようにするためです。 隣接するパーティションが処理されるときに、減少する移動が競合として検出され、通常どおり解決されます。 結果として、境界を越えて道路の移動の整合性が保たれます。

関連トピック