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

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

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

ArcGIS Desktop でのトポロジ

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

トポロジのアイコン

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

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

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

SQL Server データベースでのトポロジ

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

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

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

T_<ID>_DIRTYAREAS

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

フィールド名

フィールド タイプ

説明

Null?

objectid

integer

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

NOT NULL

isretired

integer

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

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

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

NOT NULL

dirtyarea

integer

geometry

geography

Shape フィールド

T_<ID>_LINEERRORS、T_<ID>_POINTERRORS、T_<ID>_POLYERRORS

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

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

フィールド名

フィールド タイプ

説明

Null?

ObjectID

int

指定されたトポロジ エラー テーブルでのトポロジ エラー フィーチャの一意な ID

トポロジ エラーはトポロジにおいて一意な ID を持たず、それら固有のテーブルでのみ一意な ID を持ちます。

NOT NULL

OriginClassID

int

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

NOT NULL

OriginID:

int

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

DestClassID

int

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

DestID

int

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

TopoRuleType

int

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

TopoRuleID

int

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

NOT NULL

IsException

int

トポロジ エラーが例外としてマークされているかどうかを示すコード:

  • 0 = 例外ではない(デフォルト)
  • 1 = 例外としてマークされています

NOT NULL

Shape

int

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

ダーティ エリア テーブルとトポロジ エラー テーブルは、トロポジを作成するユーザのスキーマで作成されます。他のテーブルは、ArcSDE 管理者 ユーザのスキーマで作成されます。

SQL Server のトポロジ テーブル

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

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>

関連項目


3/6/2012