DB2 のジオデータベースに格納されているトポロジ
トポロジとはデータ整合性を適用し、空間的に関連するフィーチャクラスの振舞いを管理するためのルールです。ジオデータベース トポロジはトポロジに属するフィーチャクラス(同じフィーチャ データセットに含まれている必要があります)、トポロジに割り当てられるクラスタ許容値、トポロジでの各フィーチャクラスの相対ランク、トポロジに適用されるルールのリストに関する情報を格納します。
トポロジ関連の概念の詳細については、「トポロジの基礎」と「ArcGIS でのトポロジ」をご参照ください。
ArcGIS Desktop のトポロジ
カタログ ツリーのトポロジは、トポロジに属するフィーチャクラスが含まれているフィーチャ データセットの下に表示されます。トポロジは次のアイコンで表されます。
[トポロジ プロパティ] ダイアログ ボックスの [フィーチャクラス] タブをみると、フィーチャ データセットのどのフィーチャクラスがトポロジに属しているかが確認できます。
[ルール] タブをクリックすると、トポロジに適用されるルールが表示されます。トポロジを整合チェックした後、[エラー] タブで各ルールのエラーと例外のリストを生成することができます。
IBM DB2 データベースのトポロジ
DBMS では、トポロジは GDB_ITEMS テーブルに格納されます。トポロジに関連付けられたルールは DEFINITION 列に格納されます。
トポロジ整合チェックを実行すると、各トポロジで検出されたダーティ エリアとトポロジ エラーが、ジオデータベースに接続しているユーザのスキーマで一連のテーブルに格納されます。これらは、T_<ID>_DIRTYAREAS、T_<ID>_LINEERRORS、T_<ID>_POINTERRORS、T_<ID>_POLYERRORS の各テーブルです。テーブル名に含まれている ID は、GDB_ITEMS テーブルの DATASETSUBTYPE1 フィールドのトポロジ ID に相当します。各エラー テーブルは違反したルールを TOPORULEID フィールドに格納します。このフィールドは、GDB_ITEMS テーブルの ITEMINFO フィールドにリンクされています。
次に、DB2 でのダーティ エリア テーブルとトポロジ エラー テーブルの定義とトポロジ テーブルの例を示します。
T_<ID>_DIRTYAREAS
ダーティ エリアはトポロジの整合チェックされなかった部分であり、ジオデータベースにジオメトリとして格納されます。それらは T_<ID>_DIRTYAREAS テーブルで管理されます。
このテーブルは、トポロジの整合チェックを実行したときに作成されます。
フィールド名 |
フィールド タイプ |
説明 |
NULL ? |
---|---|---|---|
OBJECTID |
INTEGER |
トポロジのダーティ エリア フィーチャの一意な ID |
NOT NULL |
ISRETIRED |
INTEGER |
このコードは、ダーティ エリアが頂点の最大数(250)に達したかどうかを示します。 この制限に達すると、新しいダーティ エリア フィーチャが作成され、既存のダーティ エリア フィーチャは使用されなくなります(値が 1 に変わります)。 0 = 頂点の最大数にまだ達していない、1 = 頂点の最大数 |
NOT NULL |
DIRTYAREA |
ST_MULTIPOLYGON |
Shape フィールド |
トポロジ ルールへの違反はエラー フィーチャとして表されます。ダーティ エリアの場合と同様に、これらのエラー フィーチャも個別のトポロジ エラー テーブルに格納され、そこでされます。これらのテーブルはほぼ同じスキーマ定義を共有しますが、トポロジ エラーのシェープ タイプ固有の追加フィールドがあります。テーブル名が示しているように、それらはエラーが発生したフィーチャのタイプ(ライン、ポイント、ポリゴン)に基づいて、トポロジ エラーに関する情報を格納します。
これらのテーブルは、トポロジの整合チェックを行っていない場合、データベースに存在しません。
フィールド名 |
フィールド タイプ |
説明 |
NULL ? |
---|---|---|---|
OBJECTID |
INTEGER |
指定されたトポロジ エラー テーブルにあるトポロジ エラー フィーチャの一意な ID。トポロジ エラーはトポロジで一意な ID を持つのではなく、それら固有のテーブルでのみ一意な ID を持ちます。 |
NOT NULL |
ORIGINCLASSID |
INTEGER |
関連元フィーチャクラスのオブジェクト クラス ID |
NOT NULL |
ORIGINID |
INTEGER |
トポロジ エラーの関連元フィーチャクラスのフィーチャのフィーチャ ID |
|
DESTCLASSID |
INTEGER |
関連先フィーチャクラスのオブジェクト クラス ID |
|
DESTID |
INTEGER |
トポロジ エラーの関連先フィーチャクラスのフィーチャのフィーチャ ID |
|
TOPORULETYPE |
INTEGER |
トポロジ ルールのタイプ。esriTopologyRuleType 定数の値に対応します。 |
NOT NULL |
TOPORULEID |
INTEGER |
GDB_ITEMS テーブルの ITEMINFO 列に格納されたトポロジ ルールの ID |
NOT NULL |
ISEXCEPTION |
INTEGER |
トポロジ エラーが例外としてマークされているかどうかを示すコード: 0 = 例外ではない(デフォルト)、1 = 例外としてマークされている |
NOT NULL |
SHAPE |
ST_MULTILINESTRING(T_<ID>_LINEERRORS)、ST_POINT(T_<ID>_POINTERRORS)、ST_MULTIPOLYGON(T_<ID>_POLYERRORS) |
シェープ タイプを示します。 |
ダーティ エリア テーブルとトポロジ エラー テーブルは、他のテーブル(ArcSDE管理者(SDE)のスキーマに格納されたシステム テーブル)とは異なり、トポロジを作成したユーザのスキーマに作成されます。
次に、整合チェックされたトポロジのテーブルの図を示します。
破線はテーブル間の暗黙的なリレーションシップを示しています。
XML ドキュメントのトポロジ
トポロジはデータセットに分類されるため、XML ドキュメントの FeatureDataset タイプの DataElement タグの下に定義されます。トポロジ ルールは TopologyRule タグで追加され、グループ化されます。フィーチャ データセット Water のトポロジ Landbase_Topology の場合、XML ドキュメントのエントリは次のようになります。
<DatasetDefinitions xsi:type="esri:ArrayOfDataElement"> <DataElement xsi:type="esri:DEFeatureDataset"> <CatalogPath>/V=sde.DEFAULT/FD=sde.RJP.Landbase</CatalogPath> <Name>sde.RJP.Landbase</Name> <Children xsi:type="esri:ArrayOfDataElement"> <DataElement xsi:type="esri:DETopology"> <CatalogPath>/V=sde.DEFAULT/FD=sde.RJP.Landbase/TOPO=sde.RJP.Landbase_Topology</CatalogPath> <Name>sde.RJP.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>