[道路の競合を解決 (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)] ツールは、ライン フィーチャを出力縮尺でシンボル表示されたときにグラフィックス上で見やすくなるように調整します。一度に 2 つ以上のレイヤーを評価し、処理できます。交通ネットワーク内で共存するフィーチャ間のリレーションシップをツールでメンテナンスするためには、入力フィーチャのジオメトリを正しく設定することがきわめて重要です。入力データに関して、次の要件と推奨事項を念頭に置いてください。
シングルパート フィーチャ: 入力フィーチャにマルチパート フィーチャを含めることはできません。フィーチャをシングル パートに変換するには、[マルチパート → シングルパート (Multipart To Singlepart)] ツールを使用するか、または [単一パートから構成される] ルールでトポロジを作成します。
共有セグメント - 入力フィーチャ同士は、セグメントを共有するので、互いにオーバーラップすることはできません。これらの問題を解決するには、[重複しない] ライン ルールおよび [同一ライン内で重複しない] ライン ルールでトポロジを作成してください。複数の入力レイヤーでツールを実行する場合、[他クラスと重複しない] ルールでトポロジを作成してください。共有セグメントが検出されると、警告が発生しますが、ツールの実行は続行されます。関与しているフィーチャのオブジェクト ID は、SharedGeom#.txt(# は各ログ ファイルが生成されるたびに増分する数値) という名前のログ ファイルに書き込まれます。
自己交差フィーチャ - 入力ライン フィーチャが交差している場合、始点と終点が同一の場合は、予期しない結果になる可能性があります。これらの領域を特定するには、[同一ライン内で交差しない] ライン ルールでトポロジを作成してください。自己交差フィーチャが検出されると、警告が発生し、ツールの処理が続行されます。自己交差フィーチャのオブジェクト ID は、SelfIntersect#.txt(# は各ログ ファイルが生成されるたびに増分する数値) という名前のログ ファイルに書き込まれます。
XY 許容値未満のジオメトリ - マップ内またはツールの環境で指定された XY 許容値に達しないフィーチャがデータ内に存在することがあります。長さが許容値に達しないフィーチャが検出された場合、警告が表示され、それらのフィーチャにはツールの処理が行われません。許容値未満のジオメトリを持つフィーチャのオブジェクト ID は、GeomBelowTolerance#.txt (# は各ログ ファイルが生成されるたびに増分する数値) という名前のログ ファイルに書き込まれます。
空または Null ジオメトリ - 入力フィーチャは有効なジオメトリで構成する必要があります。形状長さがゼロまたは NULL のフィーチャが検出された場合、警告が発生し、それらのフィーチャはツールに無視されます。空または NULL ジオメトリを持つフィーチャのオブジェクト ID は、EmptyGeom#.txt (# は各ログ ファイルが生成されるたびに増分する数値) という名前のログ ファイルに書き込まれます。必要に応じて [ジオメトリの修正 (Repair Geometry)] ツールを使用して、これらのフィーチャを修正してください。
隠れた行き止まり - 最終的な縮尺でシンボル表示したときに、外観上はあたかも接続されているかのように見えても、実は接続されていない場合があります。そのようなセグメントを「隠れた行き止まり」といいます。行き止まりでよい場合もありますが、本来行き止まりであってはならず、ただ見かけ上つながっているように見えるため、気付かれずに放置されている場合があります。それを修復しないままツールを実行すると、つながっていない箇所が見た目にも明らかになることがあります。別のセグメントから 0.5 mm (基準縮尺を考慮) 以内にある端点は、隠れた行き止まりとして検出されます。隠れた行き止まりが検出されると、警告が発生しますが、ツールの処理は続行されます。隠れた行き止まりは、検出されたときに DeadEnd#.txt (# は各ログ ファイルが生成されるたびに増分する数値) という名前のログ ファイルに書き込まれます。
頂点: 頂点が余計なものかどうかは、品質と処理時間の兼ね合いで判断してください。余計な頂点を除去するには、適宜に [ラインの単純化 (Simplify Line)] ツールを使用します。
このツールは、シンボル表示されたフィーチャのグラフィックス競合を評価することによって処理を行います。シンボル範囲と基準縮尺は、互いの関連について考慮されます。このツールは、シンボル表示を完成させてから実行してください。そうすることにより、目標とする最終的な出力縮尺に対応した基準縮尺が確実に得られます。
ラインおよびアウトライン シンボル幅がゼロである場合、エラーが発生します。ディスプレイから特定のフィーチャを削除するには、レイヤーでフィルター設定を使用することを検討してください。
シンボルの幅が 0 であると検出されたフィーチャは、NoLineWidth#.txt(# は各ログ ファイルが生成されるたびに増加する数値) という名前のログ ファイルに書き込まれます。
座標系を評価するには、カートグラフィの座標系環境変数 (設定済みの場合) を使用します。それ以外の場合、ArcMap のフォアグラウンドでツールを実行するときはデータ フレームの座標系が使用されます。上記の両方が使用可能でない場合は、入力レイヤーの座標系が使用されます。
Windows オペレーティング システムでは、警告またはエラーが C:\Users\<user name>\AppData\Local\ESRI\GeoProcessing に書き込まれると、ログ ファイルが生成されます。
ワークフローに関する考慮事項
このツールはほとんどの場合、他の [ジェネラライズ] ツールや [シンボル表現の競合解決] ツールと一緒に使用するのが一番効果的です。これらのツールをワークフロー内の他のレイヤーおよび他のツールと一緒に使用するうえで参考になるヒントを、以下にいくつか紹介します。
- 入力フィーチャクラスに変更が加えられることを念頭に置きます。 このツールでは、新しい道路フィーチャクラスが出力として生成されないかわりに、入力フィーチャクラスのデータが直接更新されます。ジオメトリのオーバーライドを格納するようにリプレゼンテーション (編集時のプロパティ) を設定して、入力レイヤーをシンボル表示することを考えてみましょう。この例では、このツールで行われたすべての変更内容がジオメトリのオーバーライドとして格納されます。結果が受け入れられない場合、別のパラメーターを指定してツールを再実行する場合は、[オーバーライドの解除 (Remove Override)] ツールを使用してオーバーライドを解除してください。入力レイヤーがリプレゼンテーションで描画されない場合は、先にフィーチャクラスのコピーを作成してから、元の状態を保持するための処理を行ってください。移動することで競合が解決されるため、2 度目にツールを実行した時には、競合は解決済みであり効果はありません。
- 最初に、余計なフィーチャを除去します。 道路網の密度に応じて、最初に重要性のない道路フィーチャの中で余計と思われるものを除去しておくと、除去した分だけ多く空き領域が確保されるので、競合の解決にきわめて効果的です。この除去を行うには、フィルター設定または選択だけで 1 つまたは複数の道路クラスを除去するか、[道路網の間引き (Thin Road Network)] ツールを使用してさらに対象範囲を絞り込みます。
- 道路をマージしてから道路を移動します。 [道路のマージ (Merge Divided Roads)] ツールは本質的に、[道路の競合を解決 (Resolve Road Conflicts)] ツールとは正反対です。後者のツールは、道路フィーチャ (通常は、1 つの分割道路フィーチャの個々の車線) 同士が互いに接近しているか、ほぼ平行かどうか評価します。また、代表的なラインを 1 つだけ作成し、道路の表示を明確化するために使用します。どちらのツールも、道路が連結してしまうという問題に対処する際に有効です。一般に、大きい出力縮尺では個々の車線をばらばらに分散したほうが見やすいのに対して、小さい縮尺では 1 つのラインにまとめたほうが見やすくなります。中程度の大きさの縮尺の場合、望ましい方法は異なるクラスの道路に両方の方法を使用することです。両方のツールをともに 1 つのワークフローで使用する場合、最初に該当のフィーチャに対して [道路のマージ (Merge Divided Roads)] を実行してから、そのツールの結果を [道路の競合を解決 (Resolve Road Conflicts)] ツールへの入力として使用してください。
- フィーチャ階層を設定します。 道路フィーチャの相対的な重要度を特定するには、[階層フィールド] パラメーターを使用します。道路フィーチャの重要度は通常、道路の分類およびシンボル表示の仕方に対応しています。重要度の低い道路は、重要度の高い道路が画面の表示に収まりきるように調整されます。階層値 1 は最も重要な道路を示し、大きい整数値は重要度の低い道路を示します。最適な結果を得るには、入力データに適用する階層クラス数を 5 つ以下に抑えてください。あるフィーチャ階層に対してすべての入力レイヤーを一括して評価するには、同じ分類値を使用して各レイヤーに同じ名前のフィールドを格納しておく必要があります。
- 特定のフィーチャをロックすることを検討してください。 [階層フィールド] パラメーターを使用して、フィーチャの [階層フィールド] の値を 0 に計算することにより、フィーチャをロックすることもできます。フィーチャはロックされた後、移動しなくなります (フィーチャの位置はまったく変わりません)。これは、道路が他のマップ フィーチャ (特に、標高などの連続データ) との関係上、シフトできない場合に便利です。たとえば、道路のセクションが非常に険しい狭谷を通過することはあっても、道路を現在の場所から遠くへ移動するのは地図作成上は、適切ではありません。ロックを使用すると、道路の位置を変えるうえで妨げとなる場合もありえます。
- バリアを定義する際は、ロックを使用してください。 ロックを使用すると、道路の位置を変えるうえで妨げとなる場合もありえます。 たとえば、鉄道レイヤーは道路と共に [入力道路レイヤー] リストに含めすることができます。すべての鉄道フィーチャに階層値 0 が割り当てられている場合、道路は鉄道とグラフィックスを競合していると評価されるので、鉄道の上部または鉄道の真上の位置には移動しません。ただし、鉄道フィーチャ自体には変更が加えられません。
オプションの [出力移動フィーチャクラス] パラメーターは、ポリゴンのフィーチャクラスを作成します。このフィーチャクラスは、発生した変位の量と方向を示します。このフィーチャクラスは、目視検査または空間クエリに使用することも、あるいは [移動の反映 (Propagate Displacement)] ツールへの入力として使用することもできます。
大きなデータセットの分割
このツールは、個々のフィーチャの最終的な状態を決定する際に、隣接および接続したフィーチャが考慮されるよう状況に応じて機能します。複数のデータセットを一度に入力することができるため、これらはすべて同時に考慮されます。大量の入力データを (または個別の入力レイヤーを多く) を使用すると、メモリの制限を超えることがあります。これを防ぐには、このツールの実行中にパーティション化を有効にすることを検討します。それは、[カートグラフィック パーティション] ジオプロセシング環境変数にフィーチャクラスの分割を指定することによって行います。分割すると、ツールは、論理的で処理しやすいサイズで順次データを処理できます。各パーティションのポリゴンに特定された入力フィーチャは、パーティションを囲むバッファー ゾーンからの別データとともにツールに読み込まれます。この別データは、処理の進行と同時に反映されます。これにより、作成されたフィーチャクラスがシームレスになり、パーティションの境界を越えて重なり合うフィーチャの状態の整合性がとれるようになります。
道路の競合が分割によって解決される場合、各パーティションの境界線を超えたバッファーにあるフィーチャも変更されます。パーティションの境界では、フィーチャはパーティション内で起こる移動に一致します。パーティション エッジから離れると、移動距離が短くなり、トランジションがスムーズになります。そのため、各パーティションが処理されると、道路網の接続性が維持されます。隣接するパーティションが処理される場合、短くなる移動距離が競合として検出され、正常に解決されます。結果として、境界を越えて道路の移動の整合性が保たれます。