一般的なトポロジ タスクの実行

Standard または Advancedのライセンスで利用可能。

作成後のトポロジは、それ自体や関連するレイヤーを操作したり管理したりしながら変更することができます。

トポロジを Web フィーチャ レイヤーとして公開すると、フィーチャ サービスを使用するサービス指向アーキテクチャを通じて、そのトポロジを使用、編集、および整合チェックすることができます。このシナリオでは、トポロジ Web フィーチャ レイヤーのプロパティは読み取り専用で、可能な変更タスクは限られています。

次の表は、サポートされているトポロジ変更タスクをまとめたものです。

トポロジ変更タスクArcGIS Pro からのトポロジへのアクセスフィーチャ サービスからの、トポロジ Web フィーチャ レイヤーへのアクセス

トポロジのダーティ エリアの整合チェック

YesYes

エラーの修正と例外へのマーク付け

YesYes

トポロジのエクスポート エラーと例外

YesYes

トポロジ内のフィーチャクラスでのフィールドの追加または削除

Yes

トポロジ内のフィーチャクラスまたはフィールドのエイリアス名の変更

Yes

[トポロジ プロパティ] → トポロジの名前変更

Yes

[トポロジ プロパティ] → トポロジへのフィーチャクラスの追加または削除

Yes

[トポロジ プロパティ] → トポロジ ルールの追加、変更、または削除

Yes

[トポロジ プロパティ] → トポロジのクラスター許容値の変更

Yes

[トポロジ プロパティ] → トポロジのフィーチャクラスの座標 (XY) ランクの変更

Yes

注意:
以下に説明するワークフローは、ArcGIS Pro を通じてアクセス、編集、および整合チェックされるトポロジに適用されます。

トポロジには、いくつかの変更を行うことができます。トポロジの名前の変更など、トポロジの状態に影響しない変更もあります。一方、変更後にトポロジの整合チェックが必要になる場合もあります。たとえば、新規フィーチャクラスやルールの追加、あるいはクラスター許容値の変更などの後は、ダーティ エリアとエラー フィーチャが作成されるため、トポロジを再び整合チェックする必要があります。

このトピックで説明するスキーマ編集は、エンタープライズ ジオデータベース内のトポロジに対し、それがバージョン対応であるかどうか、または Web フィーチャ レイヤー (フィーチャ サービス) として公開されているかどうかにかかわらず実行できます。トポロジがフィーチャ サービスとして使用され、スキーマ編集が必要な場合は、サービスを停止および再起動して変更内容を確認します。

[トポロジ プロパティ] ダイアログ ボックスを使用すると、次のような多くの一般的なトポロジ タスクを管理できます。

  • トポロジの名前変更
  • クラスター許容値の変更
  • 座標ランクの変更
  • フィーチャクラスの追加と削除
  • ルールの作成、変更、削除
  • ルールの保存と読み込み

トポロジ プロパティの詳細

トポロジにフィーチャクラスを追加します。

次の手順に従って、[トポロジにフィーチャクラスを追加 (Add Feature Class To Topology)] ツールを使用して、既存のトポロジにフィーチャクラスを追加します。

  1. [解析] リボン上の [Python] ボタンをクリックして [Python] ウィンドウを開きます。
  2. 次のとおりに入力して、[トポロジにフィーチャクラスを追加 (Add Feature Class To Topology)] ツールを実行します。arcpy.AddFeatureClassToTopology_management()
  3. フィーチャクラスを追加するトポロジの場所へのパスを入力します (例: "C:\\MyProject\\MyProject.gdb\\Streets\\StreetsTopo")。
  4. [入力フィーチャクラス] パラメーターに、そのトポロジに追加するフィーチャクラスの場所を入力します。

    追加可能なフィーチャクラスは、フィーチャ データセットに含まれていて、現在トポロジやジオメトリック ネットワークに属していないフィーチャクラスだけです。

  5. フィーチャクラスの X、Y 座標ランクを入力するか、デフォルト値を使用する場合は「""」と入力します。
  6. フィーチャクラスの Z 座標ランクを入力します。デフォルト値を使用する場合は、「"" 」と入力します。
  7. Enter キーを押して、このコマンドを実行します。
  8. 複数のフィーチャクラスをトポロジに追加する場合は、ステップ 2 ~ 7 を繰り返します。
  9. [トポロジ整合チェック (Validate Topology)] ツールを使用して、トポロジの整合チェックを実行します。

[Python] ウィンドウでの AddFeatureClassToTopology ツールの実行例を次に示します。

arcpy.AddFeatureClassToTopology_management(r"C:\MyProject\MyProject.gdb\Streets\Street_Topo", r"C:\MyProject\MyProject.gdb\Streets\StreetNetwork", 1, 0.1)

トポロジでのサブタイプの使用

ジオデータベースを設計する際には、トポロジでフィーチャクラス サブタイプを使用するためのオプションの使用を検討してください。

サブタイプについて

サブタイプを使用すると、フィーチャクラス内のフィーチャをタイプにより分類することで、現実世界のオブジェクトをより効果的にモデリングすることができます。たとえば、市街道路フィーチャクラスの道路を、一般道路、補助幹線道路、幹線道路の 3 つのサブタイプに分類することができます。

サブタイプとジオデータベースの詳細については、「サブタイプの概要」をご参照ください。

トポロジ内のサブタイプ

トポロジ内のさまざまなサブタイプに対して異なるルールを作成できます。これにより、あるルールを特定のサブタイプに適用することができます。

たとえば、道路フィーチャのサブタイプとして、通常の道路 (両方のノードで他の道路を接続する道路) とクルドサック (一方のノードで行き止まりになっている道路) の 2 つがあるとします。この場合は、トポロジ ルールを使用して、クルドサック サブタイプに属する道路を除き、両端で他の道路フィーチャと接続する道路フィーチャを必要とするトポロジ ルールを作成できます。

フィーチャクラスの削除

[トポロジからフィーチャクラスを削除 (Remove Feature Class From Topology)] ジオプロセシング ツールを使用して、トポロジからフィーチャクラスを削除することができます。

  1. [解析] リボン上の [Python] ボタンをクリックして [Python] ウィンドウを開きます。
  2. 次のとおりに入力して、[トポロジからフィーチャクラスを削除 (Remove Feature Class From Topology)] ツールを実行します。arcpy.RemoveFeatureClassFromTopology_management()
  3. 削除するフィーチャクラスを含むトポロジの場所へのパスを入力します (例: "C:\\MyProject\\MyProject.gdb\\Streets\\StreetsTopo")。
  4. [削除するフィーチャクラス] パラメーターに、そのトポロジから削除するフィーチャクラスの場所を入力します。
  5. Enter キーを押して、このコマンドを実行します。

    フィーチャクラスがトポロジから削除されます。複数のフィーチャクラスを削除するには、各フィーチャクラスについて、このツールを実行します。

[Python] ウィンドウでの RemoveFeatureClassFromTopology ツールの実行例を次に示します。

arcpy.RemoveFeatureClassFromTopology_management(r"C:\MyProject\MyProject.gdb\Streets\Street_Topo", r"C:\MyProject\MyProject.gdb\Streets\StreetNetwork")

トポロジの名前変更

トポロジの名前を変更するには、次の手順を実行します。

  1. [カタログ] ウィンドウで、トポロジを右クリックして [名前の変更] をクリックします。
  2. 新しい名前を入力します。
  3. Enter を押します。
メモ:

トポロジの名前変更はトポロジの状態に影響しないため、整合チェックの再実行は必要ありません。

ヒント:

ジオデータベース トポロジに属しているフィーチャクラスの名前は変更できません。

クラスター許容値の変更

[クラスター許容値の設定 (Set Cluster Tolerance)] ジオプロセシング ツールを使用して、トポロジのクラスター許容値を変更することができます。

  1. [解析] リボン上の [Python] ボタンをクリックして [Python] ウィンドウを開きます。
  2. 次のとおりに入力して、[クラスター許容値の設定 (Set Cluster Tolerance)] ツールを実行します。arcpy.SetClusterTolerance_management()
  3. 変更するクラスター許容値を含むトポロジの場所へのパスを入力します (例: "C:\\MyProject\\MyProject.gdb\\Streets\\StreetsTopo")。
  4. 新しいクラスター許容値を、0.00015 のように入力します。
  5. Enter キーを押して、このコマンドを実行します。
メモ:

トポロジのクラスター許容値を変更した場合は、整合チェックの再実行が必要です。クラスター許容値が大きくなるにつれ、データ内のフィーチャが現在の位置から移動する可能性が高くなります。クラスター許容値が大きすぎる場合は、フィーチャの形状が変化します。

[Python] ウィンドウでの SetClusterTolerance ツールの実行例を次に示します。

arcpy.SetClusterTolerance_management(r"C:\MyProject\MyProject.gdb\Streets\Street_Topo", 0.00015)

トポロジ ルールの操作

ジオプロセシング ツールを使用して、既存のトポロジに対し、ルールの追加や削除ができます。

トポロジにルールを追加

[トポロジにルールを追加 (Add Rule To Topology)] ジオプロセシング ツールを使用して、トポロジにルールを追加できます。

  1. [解析] リボン上の [Python] ボタンをクリックして [Python] ウィンドウを開きます。
  2. 次のとおりに入力して、[トポロジにルールを追加 (Add Rule To Topology)] ツールを実行します。arcpy.AddRuleToTopology_management()
  3. ルールを追加するトポロジの場所へのパスを入力します (例: "C:\\MyProject\\MyProject.gdb\\Streets\\StreetsTopo")。
  4. 追加するルールを入力します (例: "境界線が他クラスのエリアの境界線上にある (エリア-エリア)")。
  5. 関連元フィーチャクラスへのパスを入力します。
  6. 入力フィーチャクラスまたは関連元フィーチャクラスのサブタイプを入力します。サブタイプの説明 (コードではありません) を入力します。関連元フィーチャクラスにサブタイプが存在しない場合またはフィーチャクラス内のすべてのサブタイプにルールを適用する場合は、このパラメーターを空白のままにします ("")。
  7. 関連先フィーチャクラスへのパスを入力します。
  8. 関連先フィーチャクラス内のサブタイプにルールを適用するには、サブタイプの説明を入力します。
  9. Enter キーを押して、このコマンドを実行します。

    新しいルールがトポロジに追加されました。複数のルールがある場合は、各ルールについてこのツールを実行します。

メモ:

ルールの追加後、再度トポロジの整合チェックが必要です。

[Python] ウィンドウでの AddRuleToTopology ツールの実行例を次に示します。

arcpy.AddRuleToTopology_management("C:\\MyProject\\MyProject.gdb\\Streets\\Street_Topo",
                                                 "Boundary Must Be Covered By Boundary Of (Area-Area)",
                                                 "C:\\MyProject\\MyProject.gdb\\Streets\\Subdivision",
                                                 "",
                                                 "C:\\MyProject\\MyProject.gdb\\Streets\\Parcels",
                                                 "")

トポロジからルールを削除

[トポロジからルールを削除 (Remove Rule From Topology)] ジオプロセシング ツールを使用して、トポロジからフィーチャクラスを削除することができます。

  1. [解析] リボン上の [Python] ボタンをクリックして [Python] ウィンドウを開きます。
  2. 次のとおりに入力して、[トポロジからルールを削除 (Remove Rule From Topology)] ツールを実行します。arcpy.RemoveRuleFromTopology_management()
  3. 削除するルールを含むトポロジの場所へのパスを入力します (例: "C:\\MyProject\\MyProject.gdb\\Streets\\StreetsTopo")。
  4. トポロジから削除するルールを入力します (例: "ダングルがない (21)")。

    このツールをスクリプトで実行するときは、削除対象のトポロジ ルールに関与するフィーチャクラスの ObjectClassID を括弧で囲んでルール名の後に指定する必要があります。ObjectClassID の検索の詳細をご参照ください。

  5. Enter キーを押して、このコマンドを実行します。

    新しいルールがトポロジから削除されます。複数のルールを削除するには、各ルールについてこのツールを実行します。

メモ:

ルールの削除後、再度トポロジの整合チェックが必要です。

[Python] ウィンドウでの RemoveRuleFromTopology ツールの実行例を次に示します。

arcpy.RemoveRuleFromTopology_management("C:\\MyProject\\MyProject.gdb\\Streets\\Street_Topo",
                                                      "Must Not Have Dangles (21)")

座標ランクの変更

トポロジのランク設定を変更できます。

ランクの数の変更

ランクの数を変更するには、次の手順に従います。

  1. トポロジを右クリックし、[プロパティ] をクリックします。
  2. [フィーチャクラス] タブをクリックします。
  3. ランク数を入力します。
  4. [OK] をクリックします。

1 つのトポロジは、最大で 50 のランクにフィーチャクラスを割り当てることができます。

メモ:

ランクの数だけを変更した場合、トポロジを再び整合チェックする必要はありません。

フィーチャクラスのランクの変更

フィーチャクラスのランクを変更するには、次の手順に従います。

  1. トポロジを右クリックし、[プロパティ] をクリックします。
  2. [フィーチャクラス] タブをクリックします。
  3. [クラスの追加] をクリックして、ランク付けするフィーチャクラスの横にあるボックスをオンにします。
  4. [OK] をクリックします。
  5. 各フィーチャクラスのランクを入力します。
  6. [OK] をクリックします。
メモ:

フィーチャクラスのランクを変更した後は、トポロジを再び整合チェックする必要があります。

トポロジ ルールの操作

次のサブセクションでは、トポロジのルールを操作する方法を説明します。

トポロジ ルールをルール セット ファイルに保存

ルールをルール セット ファイルに保存して、共有および再利用することができます。

  1. トポロジを右クリックし、[プロパティ] をクリックします。
  2. [ルール] タブをクリックします。
  3. [追加] をクリックします。
  4. ルールを適用するフィーチャクラスを [フィーチャクラス 1] ドロップダウン メニューから選択します。
  5. フィーチャクラスのサブタイプが存在する場合は、該当するサブタイプを [サブタイプ] ドロップダウン メニューから選択します。
  6. フィーチャクラスに適用するルールフィーチャクラスを [ルール] ドロップダウン メニューから選択します。
  7. [OK] をクリックします。

ルール セット ファイルからトポロジ ルールを読み込む

ルール セット ファイルからトポロジ ルールを読み込むには、次の手順に従います。

  1. トポロジを右クリックし、[プロパティ] をクリックします。
  2. [ルール] タブをクリックします。
  3. [ルールの保存] をクリックします。
  4. [ルールの読み込み] をクリックします。
  5. 読み込むルール セットが保存されている場所を参照して選択します。
  6. ルール セットをクリックします。
  7. [開く] をクリックします。

    新しいトポロジを定義する際、そのトポロジのフィーチャクラスと同じ名前のフィーチャクラスを持つトポロジからルール セットが作成されていた場合には、ルール セットに名前が指定されているフィーチャクラスと新しいトポロジのフィーチャクラスが正確に一致しなければなりません。名前が異なる場合は、ルール セットに名前が指定されているフィーチャクラスを新しいトポロジの該当するフィーチャクラスと一致させる必要があります。

  8. マッピングされていないソース フィーチャクラスごとに、[ターゲット] 列をクリックし、新しいトポロジの該当するフィーチャクラスをクリックします。
  9. すべてのダイアログ ボックスで [OK] をクリックします。
メモ:
  • すでにルールが指定されているトポロジにルール セットを読み込む場合は、ルール セットのルールが既存のルールに追加されます。
  • ルール セットを読み込む場合は、再度トポロジの整合チェックが必要です。
  • ルール セットに指定されたフィーチャクラスが新しいトポロジのフィーチャクラスと一致しない場合、一致しないフィーチャクラスに関連付けられているルールは読み込まれません。

トポロジ エラーのサマリー

[トポロジ プロパティ] ダイアログ ボックスに、トポロジ内のエラー数のサマリーを表示することができます。サマリーには、エラーの数と各トポロジ ルールに存在する例外が表示されます。

サマリーをテキスト ファイルとして保存すると、特定の日時におけるトポロジの状態を記録することができます。これは、大規模なトポロジ編集プロジェクトの進行状況を記録および監視するのに役立ちます。

トポロジ グラフの検索とナビゲーション

ArcGIS 開発者ツールを使用してトポロジ グラフにアクセスすることができます。トポロジ グラフとは、トポロジに属しているフィーチャクラスのジオメトリを平面的に表現したものです。トポロジ グラフを使用した作業の詳細については、ArcObjects のヘルプ ドキュメントで .NET に関するトピックをご参照ください。