Topologies in a geodatabase in Informix

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

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

Topologies in ArcGIS for Desktop

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

Topology icon

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

The Topology Properties dialog box

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

Topologies in an IBM Informix database

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

トポロジ整合チェックを実行すると、各トポロジで検出されたダーティ エリアとトポロジ エラーが、ジオデータベースに接続しているユーザのスキーマで一連のテーブルに格納されます。これらは、t_<id>_dirtyareast_<id>_lineerrorst_<id>_pointerrorst_<id>_polyerrors の各テーブルです。テーブル名に含まれている ID は、gdb_items テーブルの datasetsubtype1 フィールドのトポロジ ID に相当します。各エラー テーブルは違反したルールを toporuleid フィールドに格納します。このフィールドは、gdb_items テーブルの col_iteminfo フィールドにリンクされています。

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

t_<id>_dirtyareas

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

Field name

Field type

Description

Null?

objectid

integer

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

NOT NULL

isretired

integer

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

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

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

dirtyarea

st_multipolygon

Shape フィールド

t_<id>_lineerrors, t_<id>_pointerrors, and t_<id>_polyerrors

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

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

Field name

Field type

Description

Null?

objectid

Int

Unique ID of the topology error feature in the specified topology error table

Topology errors do not have unique IDs in the topology, only in their specific table.

originclassid

Int

Object class ID of the origin feature class

originid

Int

Feature ID of the feature from the origin feature class that is related to the topology error

destclassid

Int

Object class ID of the destination feature class

destid

Int

Feature ID of the feature from the destination feature class that is related to the topology error

toporuletype

Int

The type of topology rule; corresponds to a value from the esriTopologyRuleType constant

toporuleid

Int

The ID of the topology rule stored in the iteminfo column of the gdb_items table

isexception

Int

A code that indicates whether the topology error has been marked as an exception.

  • 0 = Not an exception (the default)
  • 1 = Marked as an exception

shape

  • For lineerrors = St_multilinestring
  • For pointerrors = St_point
  • For polyerrors = St_multipolygon

Indicates shape type

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

次に、整合チェックされたトポロジのテーブルの図を示します。

Topology tables in Informix

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

Topologies in an XML document

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

<DatasetDefinitions xsi:type="esri:ArrayOfDataElement">
<DataElement xsi:type="esri:DEFeatureDataset">
    <CatalogPath>/V=sde.DEFAULT/FD=sde92:vtest.landbase_rel</CatalogPath> 
    <Name>sde92:vtest.landbase_rel</Name> 
  <Children xsi:type="esri:ArrayOfDataElement">
    <DataElement xsi:type="esri:DETopology">
          <CatalogPath>/V=sde.DEFAULT/FD=sde92:vtest.landbase_rel/TOPO=sde92:vtest.landbase_rel_Topology</CatalogPath> 
        <Name>sde92:vtest.landbase_rel_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