Oracle に格納されたジオデータベースのトポロジ

トポロジとはデータ整合性を適用し、空間的に関連するフィーチャクラスの振舞いを管理するためのルールです。ジオデータベース トポロジはトポロジに属するフィーチャクラス(同じフィーチャ データセットに含まれている必要があります)、トポロジに割り当てられるクラスタ許容値、トポロジでの各フィーチャクラスの相対ランク、トポロジに適用されるルールのリストに関する情報を格納します。

トポロジ関連の概念の詳細については、「トポロジの基礎」と「ArcGIS のトポロジ」をご参照ください。

ArcGIS for Desktop のトポロジ

カタログ ツリーのトポロジは、トポロジに属するフィーチャクラスが含まれているフィーチャ データセットの下に表示されます。トポロジは次のアイコンで表されます。

トポロジのアイコン

[トポロジ プロパティ] ダイアログ ボックスの [フィーチャクラス] タブをみると、フィーチャ データセットのどのフィーチャクラスがトポロジに属しているかが確認できます。

[トポロジ プロパティ] ダイアログ ボックス

[ルール] タブをクリックすると、トポロジに適用されるルールが表示されます。トポロジを整合チェックした後、[エラー] タブで各ルールのエラーと例外のリストを生成することができます。

Oracle データベースのトポロジ

DBMS では、トポロジは GDB_ITEMS テーブルに格納されます。トポロジに関連付けられたルールは DEFINITION 列に格納されます。

トポロジ整合チェックを実行すると、各トポロジで検出されたダーティ エリアとトポロジ エラーが、ジオデータベースに接続しているユーザのスキーマで一連のテーブルに格納されます。これらは、T_<ID>_DIRTYAREAST_<ID>_LINEERRORST_<ID>_POINTERRORST_<ID>_POLYERRORS の各テーブルです。テーブル名に含まれている ID は、GDB_ITEMS テーブルの DATASETSUBTYPE1 フィールドのトポロジ ID に相当します。各エラー テーブルは違反したルールを TOPORULEID フィールドに格納します。このフィールドは、GDB_ITEMS テーブルの ITEMINFO フィールドにリンクされています。

次に、Oracle でのダーティ エリア テーブルとトポロジ エラー テーブルの定義とトポロジ テーブルの例を示します。

T_<ID>_DIRTYAREAS

このテーブルは、トポロジの整合チェックを実行したときに作成されます。

フィールド名

フィールド タイプ

説明

NULL?

OBJECTID

NUMBER(38)

トポロジのダーティ エリア フィーチャの一意な ID

NOT NULL

ISRETIRED

NUMBER(38)

このコードは、ダーティ エリアが頂点の最大数(250)に達したかどうかを示します。

この制限に達すると、新しいダーティ エリア フィーチャが作成され、既存のダーティ エリア フィーチャは使用されなくなります(値が 1 に変わります)。

0 = 頂点の最大数にまだ達していない、1 = 頂点の最大数

NOT NULL

DIRTYAREA

NUMBER(38)

ST_GEOMETRY

SDO_GEOMETRY

Shape フィールド

T_<ID>_LINEERRORST_<ID>_POINTERRORST_<ID>_POLYERRORS

トポロジ ルールへの違反はエラー フィーチャとして表されます。ダーティ エリアの場合と同様に、これらのエラー フィーチャも個別のトポロジ エラー テーブルに格納され、そこで管理されます。これらのテーブルはほぼ同じスキーマ定義を共有しますが、トポロジ エラーのシェープ タイプ固有の追加フィールドがあります。テーブル名が示しているように、それらはエラーが発生したフィーチャのタイプ(ライン、ポイント、ポリゴン)に基づいて、トポロジ エラーに関する情報を格納します。

これらのテーブルは、トポロジの整合チェックを行っていない場合、データベースに存在しません。

フィールド名

フィールド タイプ

説明

NULL?

OBJECTID

NUMBER(38)

指定されたトポロジ エラー テーブルにあるトポロジ エラー フィーチャの一意な ID。トポロジ エラーはトポロジで一意な ID を持つのではなく、それら固有のテーブルでのみ一意な ID を持ちます。

NOT NULL

ORIGINCLASSID

NUMBER(38)

関連元フィーチャクラスのオブジェクト クラス ID

NOT NULL

ORIGINID

NUMBER(38)

トポロジ エラーの関連元フィーチャクラスのフィーチャのフィーチャ ID。

DESTCLASSID

NUMBER(38)

関連先フィーチャクラスのオブジェクト クラス ID

DESTID

NUMBER(38)

トポロジ エラーの関連先フィーチャクラスのフィーチャのフィーチャ ID

TOPORULETYPE

NUMBER(38)

トポロジ ルールのタイプ。esriTopologyRuleType 定数の値に対応します。

NOT NULL

TOPORULEID

NUMBER(38)

GDB_ITEMS テーブルの ITEMINFO 列に格納されたトポロジ ルールの ID

NOT NULL

ISEXCEPTION

NUMBER(38)

トポロジ エラーが例外としてマークされているかどうかを示すコード:0 = 例外ではない(デフォルト); 1 = 例外としてマークされている

NOT NULL

SHAPE

NUMBER(38) (Spatial Type ジオメトリ格納を使用する場合は ST_GEOMETRY、Oracle 空間ジオメトリ格納を使用する場合は SDO_GEOMETRY)

シェープ タイプを示します。

ダーティ エリア テーブルとトポロジ エラー テーブルは、他のテーブル(ジオデータベース管理者ユーザのスキーマに格納されたシステム テーブル)とは異なり、トポロジを作成したユーザのスキーマに作成されます。

Oracle のトポロジ テーブル

破線はテーブル間の暗黙的なリレーションシップを示しています。

XML ドキュメントのトポロジ

トポロジはデータセットに分類されるため、XML ドキュメントの FeatureDataset タイプの DataElement タグの下に定義されます。トポロジ ルールは TopologyRule タグで追加され、グループ化されます。フィーチャ データセット Water のトポロジ Landbase_Topology の場合、XML ドキュメントのエントリは次のようになります。

<DatasetDefinitions xsi:type="esri:ArrayOfDataElement">
<DataElement xsi:type="esri:DEFeatureDataset">
    <CatalogPath>/V=sde.DEFAULT/FD=GDB.Landbase</CatalogPath> 
    <Name>GDB.Landbase</Name> 
  <Children xsi:type="esri:ArrayOfDataElement">
    <DataElement xsi:type="esri:DETopology">
          <CatalogPath>/V=sde.DEFAULT/FD=GDB.Landbase/TOPO=GDB.Landbase_Topology</CatalogPath> 
        <Name>GDB.Landbase_Topology</Name> 
        <DatasetType>esriDTTopology</DatasetType> 
        <DSID>-1</DSID> 
        <Versioned>true</Versioned> 
        <CanVersion>true</CanVersion> 
      <Extent xsi:type="esri:EnvelopeN">
           <XMin>503924.656249088</XMin> 
           <YMin>680110.56250334</YMin> 
           <XMax>512514.562497088</XMax> 
           <YMax>689084.187511697</YMax> 
        <SpatialReference xsi:type="esri:ProjectedCoordinateSystem">
  <WKT>PROJCS["NAD_1927_StatePlane_Alabama_East_FIPS_0101", GEOGCS["GCS_North_American_1927", DATUM["D_North_American_1927", SPHEROID["Clarke_1866",6378206.4,294.9786982]], PRIMEM["Greenwich",0.0], UNIT["Degree",0.0174532925199433]], PROJECTION["Transverse_Mercator"], PARAMETER["False_Easting", 500000.0], PARAMETER["False_Northing",0.0], PARAMETER["Central_Meridian", -85.83333333333333], PARAMETER["Scale_Factor",0.99996], PARAMETER["Latitude_Of_Origin",30.5], UNIT["Foot_US",0.3048006096012192]]</WKT> 
             <XOrigin>489871.255812</XOrigin> 
             <YOrigin>665787.099562</YOrigin> 
             <XYScale>499999.999534338</XYScale> 
             <ZOrigin>0</ZOrigin> 
             <ZScale>1</ZScale> 
             <MOrigin>0</MOrigin> 
             <MScale>1</MScale> 
             <XYTolerance>6.56166666666667E-04</XYTolerance> 
             <ZTolerance>2</ZTolerance> 
             <MTolerance>2</MTolerance> 
             <HighPrecision>true</HighPrecision> 
          </SpatialReference>
       </Extent>
     <SpatialReference xsi:type="esri:ProjectedCoordinateSystem">
  <WKT>PROJCS["NAD_1927_StatePlane_Alabama_East_FIPS_0101",GEOGCS["GCS_North_American_1927", DATUM["D_North_American_1927", SPHEROID["Clarke_1866",6378206.4,294.9786982]], PRIMEM["Greenwich",0.0], UNIT["Degree",0.0174532925199433]], PROJECTION["Transverse_Mercator"], PARAMETER["False_Easting", 500000.0], PARAMETER["False_Northing",0.0], PARAMETER["Central_Meridian", -85.83333333333333], PARAMETER["Scale_Factor",0.99996], PARAMETER["Latitude_Of_Origin",30.5], UNIT["Foot_US",0.3048006096012192]]</WKT> 
             <XOrigin>489871.255812</XOrigin> 
             <YOrigin>665787.099562</YOrigin> 
             <XYScale>499999.999534338</XYScale> 
             <ZOrigin>0</ZOrigin> 
             <ZScale>8192</ZScale> 
             <MOrigin>0</MOrigin> 
             <MScale>8192</MScale> 
             <XYTolerance>6.56166666666667E-04</XYTolerance> 
             <ZTolerance>2</ZTolerance> 
             <MTolerance>2</MTolerance> 
             <HighPrecision>true</HighPrecision> 
      </SpatialReference>
      <ClusterTolerance>0.5</ClusterTolerance> 
      <ZClusterTolerance>-1</ZClusterTolerance> 
      <MaxGeneratedErrorCount>-1</MaxGeneratedErrorCount> 
    <FeatureClassNames xsi:type="esri:Names">
         <Name>sde.RJP.Blocks</Name> 
         <Name>sde.RJP.Parcels</Name> 
      </FeatureClassNames>
    <TopologyRules xsi:type="esri:ArrayOfTopologyRule">
      <TopologyRule xsi:type="esri:TopologyRule">
           <HelpString /> 
           <RuleID>183</RuleID> 
           <Name /> 
           <GUID>7D3E7075-16CF-47AD-A8F4-842B921B1E1E</GUID> 
           <TopologyRuleType>esriTRTAreaNoOverlap</TopologyRuleType> 
           <OriginClassID>100</OriginClassID> 
           <OriginSubtype>0</OriginSubtype> 
           <DestinationClassID>100</DestinationClassID> 
           <DestinationSubtype>0</DestinationSubtype> 
           <TriggerErrorEvents>false</TriggerErrorEvents> 
           <AllOriginSubtypes>true</AllOriginSubtypes> 
           <AllDestinationSubtypes>true</AllDestinationSubtypes> 
        </TopologyRule>
      <TopologyRule xsi:type="esri:TopologyRule">
           <HelpString /> 
           <RuleID>184</RuleID> 
           <Name /> 
           <GUID>6F58891D-5BD9-4848-802E-90458152B0CE</GUID> 
           <TopologyRuleType>esriTRTAreaCoveredByArea</TopologyRuleType> 
           <OriginClassID>100</OriginClassID> 
           <OriginSubtype>1</OriginSubtype> 
           <DestinationClassID>98</DestinationClassID> 
           <DestinationSubtype>1</DestinationSubtype> 
           <TriggerErrorEvents>false</TriggerErrorEvents> 
           <AllOriginSubtypes>false</AllOriginSubtypes> 
           <AllDestinationSubtypes>false</AllDestinationSubtypes> 
        </TopologyRule>
    </TopologyRules>
</DataElement>

関連トピック

5/10/2014