PostgreSQL に格納されたジオデータベースのフィーチャクラス
フィーチャクラスは、すべてが同じジオメトリ タイプ(ポイント、ライン、ポリゴン、マルチポイント、アノテーション、ディメンション、またはマルチパッチ)の地理フィーチャのコレクションです。たとえば、1 つのフィーチャクラスに線路沿いのすべての列車車庫のポイントを格納することができます。別のフィーチャクラスには、すべての鉄道線路を表すラインを格納することできます。
このトピックでは、カタログ ウィンドウ、DBMS(データベース管理システム)、および XML ドキュメントでのフィーチャクラスの表示について説明します。
ArcGIS for Desktop のフィーチャクラス
ArcGIS for Desktop で作成可能なフィーチャクラスには、ポイント、マルチポイント、ライン、ポリゴン、アノテーション、ディメンション、およびマルチパッチの 7 つのタイプがあります。
カタログ ツリーでは、フィーチャクラスのタイプをアイコンに基づいて判断できます。次の表に、フィーチャクラスの各タイプを表すアイコンを示します。
フィーチャクラスのアイコン |
フィーチャクラスのタイプ |
---|---|
ポイントまたはマルチポイント |
|
ライン |
|
ポリゴン |
|
アノテーション |
|
ディメンション |
|
マルチパッチ |
PostgreSQL では、カタログ ツリーに表示されるフィーチャクラスの名前には、フィーチャクラスが格納されているデータベースの名前、フィーチャクラスを所有しているユーザの名前、そしてフィーチャクラス自体の名前が含まれています。
たとえば、ジオデータベース「stegageo」でユーザ「harley」に所有されているフィーチャクラス「parcels」は、カタログ ツリーでは「stegageo.harley.parcels」として表示されます。
フィーチャクラスの各タイプについては、「フィーチャクラスの基礎」をご参照ください。
PostgreSQL データベースのフィーチャクラス
PostgreSQL データベースのジオデータベース内にあるフィーチャクラスでは、2 つのジオメトリ格納タイプ(ST_Geometry または PostGIS ジオメトリ)のうち 1 つを使用します。
すべてのフィーチャクラスにはベース テーブル(ビジネス テーブル)が作成され、属性情報、ObjectID、および Shape フィールドが格納されます。ObjectID および Shape フィールドには別の名前を付けることができますが、これらのフィールドはフィーチャクラスのベース テーブルに存在している必要があります。
アノテーション フィーチャクラスとディメンション フィーチャクラスのベース テーブルには、追加の必須フィールドがあります。これらのフィールドのリストについては、「アノテーション フィーチャクラス プロパティの管理」と「ディメンション フィーチャのプロパティ」をご参照ください。
ST_Geometry 格納を使用した PostgreSQL データベースのフィーチャクラス
PostgreSQL データベース管理システム(DBMS)のジオデータベースに作成されたフィーチャクラスはデフォルトで ST_Geometry 格納が使用されます。これは、フィーチャクラスのビジネス テーブルに、空間属性を格納するための ST_Geometry 列が追加されることを意味します。
ST_Geometry は、インスタンス化が不可能な抽象スーパークラスです。そのサブクラスはインスタンス化が可能です。詳細については、「ST_Geometry 格納タイプとは」をご参照ください。
フィーチャクラスが ST_Geometry 格納を使用して作成されると、ST_Geometry 列を持つビジネス テーブルが所有者のスキーマに作成されます。また、フィーチャクラスの情報を追跡するために、sde ユーザのスキーマの sde_layers、sde_table_registry、sde_geometry_columns、sde_column_registry、sde_spatial_references(空間参照が定義されている場合)、および gdb_items テーブルにレコードが追加されます。sde ユーザのスキーマの gdb_itemtypes テーブルは、データ(この場合はフィーチャクラス)のタイプを定義します。
データをロードすると、データベースにいくつかの i テーブルとストアド プロシージャが定義されます。これらのストアド プロシージャと i テーブルは、フィーチャクラスのフィーチャ ID の生成に使用されます。i テーブルの名前には番号が含まれています。この番号は、sde_table_registry テーブルのフィーチャクラスの registration_id に対応します。これらのテーブルまたはストアド プロシージャの編集はサポートされていません。
View a diagram of a feature class using ST_Geometry storage in PostgreSQL.
このファイルを開くには、Adobe Acrobat Reader が必要です。
破線はテーブル間の暗黙的なリレーションシップを示し、実線は明示的に定義されたリレーションシップを示しています。
PostGIS ジオメトリを使用した PostgreSQL データベースのフィーチャクラス
PostGIS がインストールされ、データベースが PostGIS テンプレートを使用して作成されている場合は、EWKT(Extended Well-Known Text)および EWKB(Extended Well-Known Binary)空間タイプを使用してフィーチャクラスを作成できます。この場合、フィーチャ ジオメトリを格納するためのジオメトリ列がビジネス テーブルに追加されます。ジオデータベースでは、このジオメトリ格納タイプは PG_GEOMETRY と呼ばれます。
デフォルトで、DEFAULTS DBTUNE コンフィグレーション キーワードの GEOMETRY_STORAGE パラメータは ST_GEOMETRY に設定されています。PG_GEOMETRY 格納をほとんどのフィーチャクラスで使用する場合は、代わりに DEFAULTS キーワードの GEOMETRY_STORAGE パラメータを PG_GEOMETRY に変更することができます(DBTUNE パラメータ設定の変更には sdedbtune コマンドを使用します)。または、ArcGIS または ArcSDE 管理コマンドを使用してフィーチャクラスを作成する際に PG_GEOMETRY キーワードを指定します。PG_GEOMETRY 格納を使用してフィーチャクラスを作成すると、ジオメトリ列を持つビジネス テーブルが所有者のスキーマに作成されます。ST_GEOMETRY 格納と同様に、フィーチャクラスを管理するためのレコードが SDE スキーマ内のシステム テーブルに追加されます。また、パブリック スキーマの geometry_columns テーブルにもレコードが追加されます。このため、PG_GEOMETRY 格納を使用するデータを作成するユーザには、public.geometry_columns テーブルにおける SELECT、INSERT、UPDATE および DELETE 権限が必要となります。
public.geometry_columns テーブルに格納されているテーブル名を更新するための PostGIS 関数は存在しないため、PG_GEOMETRY 格納を使用して作成されたフィーチャクラスの名前は変更できません。フィーチャクラスの名前を変更した場合、参照されなくなった行が public.geometry_columns テーブル内に残されます。
View a diagram of a feature class using PostGIS geometry storage in PostgreSQL.
このファイルを開くには、Adobe Acrobat Reader が必要です。
破線はテーブル間の暗黙的なリレーションシップを示し、実線は明示的に定義されたリレーションシップを示しています。
ジオデータベースにおける PostGIS ジオメトリ格納の詳細については、「ArcGIS および PostGIS ジオメトリ タイプ」をご参照ください。
XML ワークスペース ドキュメントに格納されたフィーチャクラス
フィーチャクラスは DataElement エレメント内で定義されます。フィーチャクラスを定義する DataElement タグには、esri:DEFeatureClass のタイプが設定されます。フィーチャクラスの DataElement 内には、Field、Domain、ConfigurationKeyword、SpatialReference elements などのフィーチャクラスを定義する他のエレメントが配置されます。
<DataElement xsi:type="esri:DEFeatureClass">
<CatalogPath>/V=sde.DEFAULT/FC=stegageo.harley.parcels</CatalogPath>
<Name>stegageo.harley.parcels</Name>
<DatasetType>esriDTFeatureClass</DatasetType>
<DSID>13</DSID>
<Versioned>true</Versioned>
<CanVersion>true</CanVersion>
<HasOID>true</HasOID>
<OIDFieldName>objectid</OIDFieldName>
<Fields xsi:type="esri:Fields">
<FieldArray xsi:type="esri:ArrayOfField">
<Field xsi:type="esri:Field">
<Name>objectid</Name>
<Type>esriFieldTypeOID</Type>
<IsNullable>false</IsNullable>
<Length>4</Length>
<Precision>10</Precision>
<Scale>0</Scale>
<Required>true</Required>
<Editable>false</Editable>
<AliasName>OBJECTID</AliasName>
<ModelName>OBJECTID</ModelName>
</Field>
フィーチャクラスを定義するその他のすべてのエレメント
</DataElement>