ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • ヘルプ
  • Sign Out
ArcGIS Desktop

ArcGIS Online

組織のマッピング プラットフォーム

ArcGIS Desktop

完全なプロ仕様の GIS

ArcGIS Enterprise

エンタープライズ GIS

ArcGIS for Developers

位置情報利用アプリの開発ツール

ArcGIS Solutions

各種業界向けの無料のテンプレート マップおよびテンプレート アプリケーション

ArcGIS Marketplace

組織で使えるアプリとデータを取得

  • ドキュメント
  • サポート
Esri
  • サイン イン
user
  • マイ プロフィール
  • サイン アウト

ArcMap

  • ホーム
  • はじめに
  • マップ
  • 解析
  • データ管理
  • ツール
  • エクステンション

ArcGIS でサポートされている PostgreSQL のデータ タイプ

  • ジオメトリ データ タイプ
  • ラスター データ タイプ

データベースにテーブルを作成する、またはテーブルに列を追加するときに、列のデータ タイプを定義します。データ タイプによって次のことが決定します。

  • 列に保存できる値
  • その列のデータに対して使用できる操作
  • 列のデータをデータベースに保存する方法

ArcGIS では、特定のデータ タイプを操作できます。[データベース接続] やクエリ レイヤーからデータベース テーブルにアクセスする場合、ArcGIS はサポートされていないデータ タイプを除外します。ArcGIS にはサポートされていないデータ タイプは表示されないため、ArcGIS からそれらを編集することはできません。同様に、ArcGIS を使用してサポートされていないデータ タイプを含むテーブルをデータベース間でコピーして貼り付ける場合、ArcGIS はサポートされているデータ タイプを使用する列のみを貼り付けます。

次のテーブルの最初の列は ArcGIS データ タイプです。2 番目の列は、ArcGIS が作成する PostgreSQL のデータ タイプです。3 番目の列は、ArcGIS 以外で作成したテーブルを表示するときに、ArcGIS データ タイプにマップされるその他の PostgreSQL のデータ タイプ (存在する場合) を示しています。最後の列には、必要に応じて追加情報が表示されています。

ArcGIS データ タイプ作成された PostgreSQL のデータ タイプ表示可能なその他の PostgreSQL のデータ タイプ注意事項

BLOB

BYTEA

DATE

TIMESTAMP WITHOUT ZONE

TIMESTAMP

DOUBLE

NUMERIC(p)

BIG SERIAL、DOUBLE PRECISION

ArcGIS で指定した精度と縮尺が、データベースに作成されるデータ タイプの結果に影響を与える場合があります。詳細については、「ArcGIS フィールド データ タイプ」をご参照ください。

FLOAT

NUMERIC(p)

ArcGIS で指定した精度と縮尺が、データベースに作成されるデータ タイプの結果に影響を与える場合があります。詳細については、「ArcGIS フィールド データ タイプ」をご参照ください。

GEOMETRY

ST_GEOMETRY or GEOMETRY (PostGIS)

ジオデータベースでは、データベースに作成されるデータ タイプは、フィーチャクラスの作成時に使用されるコンフィグレーション キーワードの、GEOMETRY_STORAGE の設定によって決まります。

ST_Geometry をデータベース (ジオデータベースではない) で使用するには、インストールする必要があります。詳細については、「PostgreSQL データベースへの ST_Geometry タイプの追加」をご参照ください。

PostGIS ジオメトリ タイプを使用するには、PostgreSQL データベース クラスター内に PostGIS をインストールし、データベース自体を有効化して PostGIS を使用できるようにする必要があります。詳細については、PostgreSQL のドキュメントをご参照ください。

GLOBAL ID

VARCHAR(38)

ジオデータベースでのみサポートされています。

GUID

VARCHAR(38)

UUID

UUID のサポートは 10.5.1 および ArcGIS Pro 2.0 で追加されました。

LONG INTEGER

INTEGER

SERIAL

OBJECT ID

ジオデータベースの INTEGER

データベースの SERIAL

ArcGIS の ObjectID タイプは、テーブル (またはフィーチャクラス) に登録された RowID 列です。1 つのテーブルにつき、1 つだけ存在します。

RASTER

BYTEA or ST_RASTER

ラスターはジオデータベースのみでサポートされます。作成される PostgreSQL データ タイプは、ラスター データセットまたはモザイク データセットの作成時に使用されるコンフィグレーション キーワード (rasterblob、binary、または st_raster) によって異なります。

ST_Raster を使用する場合は、別途、ジオデータベースに ST_Raster を構成する必要があります。手順については、「PostgreSQL での ST_Raster のインストール」をご参照ください。

SHORT INTEGER

SMALLINT

REAL

TEXT

CHARACTER VARYING

CHARACTER、VARCHAR、TEXT

テーブル内に ArcGIS でサポートされていないデータ タイプの列がある場合、その列をテキストにキャストできます。ただし、これを実行するのは、列内の値を表示したい場合だけにしてください。その列の値で分析を行う必要がある場合は、実行しないでください。たとえば、SELECT ステートメントを実行して、テーブル内の列を選択し、小数の列 (total) をテキストにキャストできます。

SELECT id, name, total::text
 FROM me.mydb.tableb;

ジオメトリ データ タイプ

表に示すように、ArcGIS では、 Esri ST_Geometry または PostGIS Geometry という PostgreSQL の 2 種類のジオメトリ データ タイプでデータを作成および操作できます。以降の 2 つのセクションでは、これら 2 つのデータ タイプの背景について説明します。

ST_Geometry

以下では、ST_Geometry 空間データ タイプの概要について説明します。PostgreSQL の実装に固有の情報については、「PostgreSQL の ST_Geometry」をご参照ください。

ST_Geometry データ タイプはユーザー定義データ タイプ (UDT) の SQL 3 Specification を実装しているので、ランドマークの場所、道路、土地区画といった空間データを格納できる列を作成することができます。これは、ジオデータベースおよびデータベースに対して、 ISO/OGC 準拠の SQL アクセスを提供します。このジオメトリ格納は、地理フィーチャを表すオブジェクト (ポイント、ライン、ポリゴン) の格納を提供することで、データベースの機能を拡張します。このジオメトリ格納は、データベースのリソースを効率よく使用し、レプリケーションやパーティションといったデータベースの機能との互換性を維持し、空間データへの素早いアクセスを可能にします。

ST_Geometry 自体は、インスタンス化されない抽象スーパークラスです。ただし、そのサブクラスはインスタンス化することができます。インスタンス化されたデータ タイプはテーブルの列として定義することができ、その他の値を挿入することができます。

列を ST_Geometry タイプとして定義することはできますが、インスタンス化することができないため ST_Geometry の値は挿入しません。代わりに、サブクラスの値を挿入します。

次の図は、ST_Geometry データ タイプとそのサブクラスの階層を示しています。

ST_Geometry
ST_Geometry スーパークラスとそのサブクラス

ST_Geometry のサブクラスは、ベース ジオメトリ サブクラスと同種コレクション サブクラスの 2 つのカテゴリに分類されます。ベース ジオメトリには、ST_Point、ST_LineString、ST_Polygon が含まれ、同種コレクションには、ST_MultiPoint、ST_MultiLineString、ST_MultiPolygon が含まれます。名前が示しているように、同種コレクションはベース ジオメトリのコレクションです。同種コレクションでは、ベース ジオメトリのプロパティを共有することに加えて、独自のプロパティを持つこともできます。

各サブクラスは、その名前が示唆するジオメトリ タイプを格納します。たとえば、ST_MultiPoint はマルチポイントを格納します。以下の表に、サブクラスの一覧とそれらについての説明を示します。

サブタイプ説明

ST_Point

  • 座標空間で場所を 1 つ占有する 0 次元のジオメトリ。
  • X,Y 座標値が 1 つあり、常にシンプルであり、境界は NULL です。

ST_LineString

  • 線形に補間されたパスを定義するポイント列として格納される 1 次元オブジェクト。
  • ST_LineString には長さがあります。
  • ST_LineString はその内部と交わっていなければシンプルです。
  • 閉じた ST_LineString の端点 (境界) は、空間内の同じポイントを占めます。
  • ST_LineString は閉じていてシンプルである場合はリングです。
  • 端点は、ST_LineString が閉じていなければ、通常は ST_LineString の境界を形成します。ST_LineString が閉じていれば、境界は NULL です。
  • ST_LineString の内部は、閉じていなければ端点間を結ぶパスであり、閉じている場合は内部が連続しています。

ST_Polygon

  • 一連のポイントとして格納される 2D サーフェスであり、外部の境界リングと 0 個以上の内部リングを定義します。
  • ST_Polygon には面積があり、常にシンプルです。
  • 外部リングと内部リングは ST_Polygon の境界を定義し、リング間で囲まれた空間は ST_Polygon の内部を定義します。
  • ST_Polygon のリングは接点で交わる場合がありますが、決して交差しません。

ST_MultiPoint

  • ST_Point のコレクション。
  • ディメンションは 0 です。
  • ST_MultiPoint は、同じ座標空間を占めるエレメントが 1 つもなければ、シンプルです。
  • ST_MultiPoint の境界は NULL です。

ST_MultiLineString

  • ST_LineString のコレクション。
  • ST_MultiLineString には長さがあります。
  • ST_MultiLineString は、ST_LineString エレメントの端点でのみ交わる場合はシンプルです。
  • ST_LineString エレメントの内部が交差している場合、ST_MultiLineString はシンプルではありません。
  • ST_MultiLineString の境界は、ST_LineString エレメントの交差していない端点です。
  • ST_MultiLineString が閉じているのは、すべての ST_LineString エレメントが閉じている場合です。
  • ST_MultiLineString のすべてのエレメントのすべての端点が交差している場合、ST_MultiLineString の境界は NULL です。

ST_MultiPolygon

  • ポリゴンのコレクション。
  • ST_MultiPolygon には面積があります。
  • ST_MultiPolygon の境界は、そのエレメントの外部リングと内部リングの長さを累積したものです。
  • ST_MultiPolygon の内部は、そのエレメントである ST_Polygon の内郭を累積したものとして定義されます。
  • ST_MultiPolygon のエレメントの境界は接点でのみ交わる場合があります。

ST_Geometry サブタイプ

各サブクラスは ST_Geometry スーパークラスのプロパティを継承しますが、サブタイプ固有のプロパティもあります。ST_Geometry データ タイプで使用できる関数は、サブクラス エンティティ タイプでも使用できます。ただし、一部の関数はサブクラス レベルで定義されており、特定のサブクラスにしか対応しません。たとえば、ST_GeometryN 関数には、引数として ST_MultiLinestring、ST_MultiPoint、ST_MultiPolygon サブタイプのみを渡すことができます。

PostGIS ジオメトリ

PostGIS は、PostgreSQL データベースを空間対応にする製品です。PostGIS は OGC (Open Geospatial Consortium) の Simple Features Specification for SQL に準拠しています。ジオメトリの OGC Well-Known Binary (WKB) 表現と OGC Well-Known Text (WKT) 表現を使用します。

PostGIS には、ジオメトリとジオグラフィの 2 つの空間タイプがあります。ArcGIS でサポートされているのは、ジオメトリのみです。

ArcGIS で PostGIS ジオメトリ格納タイプを使用するときは、以下のルールに留意してください。

  • ジオデータベースとして使用する PostgreSQL データベースを PostGIS データベース テンプレートを使用して作成するか、データベースで PostGIS を有効化する必要があります。
    注意:

    [エンタープライズ ジオデータベースの作成 (Create Enterprise Geodatabase)] ジオプロセシング ツールを使用してジオデータベースを作成する場合、PostGIS テンプレート以外のテンプレートを使用してジオデータベースが作成されます。そのため、PostGIS ジオメトリ タイプを使用する場合は、PostGIS テンプレートを使用してデータベースを手動で作成する必要があります。その後、[エンタープライズ ジオデータベースの作成 (Create Enterprise Geodatabase)] ジオプロセシング ツールを実行する際に既存のデータベースを指定すると、その PostGIS 対応のデータベース内にジオデータベースが作成されます。

  • sde ユーザーとジオデータベースまたはデータベース内にデータを作成するユーザーには、特定の PostGIS テーブルに関する権限が付与されている必要があります。
  • 作成するフィーチャクラスは、PostGIS の public.spatial_ref_sys テーブルに列挙されている空間参照だけを使用できます。このテーブルにない空間参照を指定した場合、フィーチャクラスの作成は失敗します。
  • PostGIS ジオメトリ タイプを使用するフィーチャクラスを作成するときは、GEOMETRY_STORAGE パラメーターを PG_GEOMETRY に設定したコンフィグレーション キーワードを指定する必要があります。
  • PostGIS ジオメトリ タイプを使用して格納された空間テーブルの名前を変更することはできません。これは、public.geometry_columns テーブルのテーブル名を更新する PostGIS 関数が存在しないためです。
  • PostGIS ジオメトリ タイプを使用する PostgreSQL 内のジオデータベースのフィーチャクラスには、CAD に使用されるフィールドとカーブ格納 (GDB_GEOMATTR_DATA) が含まれます。ArcGIS の外部に空間テーブルを作成する場合は、そのテーブルをジオデータベースに登録します。これで、このフィールドがテーブルに追加されます。

PostGIS ジオメトリ タイプを使用するには、PostGIS をインストールする必要があります。PostgreSQL をインストールした後、PostGIS をインストールします。インストールする PostGIS のバージョンが、使用する ArcGIS のリリースでサポートされていることを確認します。

PostGIS をインストールすると、PostGIS テンプレート データベースが PostgreSQL データベース クラスターに作成されます。この PostGIS データベース テンプレートを使用して、ジオデータベースを格納するデータベースを作成します。

PostGIS ジオメトリ列の作成権限の付与

データベースで PostGIS が有効になると、2 つのテーブル (geometry_columns と spatial_ref_sys) が public スキーマに作成されます。少なくとも、geometry_columns テーブルの SELECT、INSERT、UPDATE、DELETE 権限、spatial_ref_sys テーブルの SELECT 権限を、sde ユーザーおよびジオデータベースにデータを作成するすべてのユーザーに割り当てる必要があります。

GRANT select, insert, update, delete 
 ON TABLE public.geometry_columns 
 TO <user_name>;
GRANT select
 ON TABLE public.spatial_ref_sys
 TO <user_name>;

PostGIS ジオメトリを使用するフィーチャクラスの作成

ArcGIS は、sde_dbtune テーブルのコンフィグレーション パラメーター設定を使用して、フィーチャクラスの作成時に使用する空間データ タイプを決定します。そのパラメーターは、GEOMETRY_STORAGE です。PostgreSQL のジオデータベースではパラメーターの値を ST_GEOMETRY または PG_GEOMETRY (PostGIS ジオメトリ タイプに対する設定) のいずれかに設定できます。そのため、PostGIS ジオメトリ タイプを使用するフィーチャクラスを ArcGIS で作成するときは、GEOMETRY_STORAGE パラメーターを PG_GEOMETRY に設定したコンフィグレーション キーワードを指定する必要があります。

デフォルトでは、新しいフィーチャクラスは ST_Geometry 格納を使用します。ほとんどのデータを PostGIS 格納タイプで格納する場合は、sde_dbtune テーブルの DEFAULTS コンフィグレーション キーワードの GEOMETRY_STORAGE パラメーター値を PG_GEOMETRY に変更します または、フィーチャクラスの一部だけを PostGIS 格納タイプで格納する場合は、フィーチャクラスの作成時に PG_GEOMETRY コンフィグレーション キーワードを指定できます。PG_GEOMETRY キーワードをジオデータベースからエクスポートすると、次のように表示されます。

##PG_GEOMETRY
GEOMETRY_STORAGE    "PG_GEOMETRY"
UI_TEXT             "User Interface text description for POSTGIS geometry storage" 
END

残りの格納パラメーターは DEFAULTS キーワードから取得されます。コンフィグレーション キーワードおよびパラメーターの詳細については、以下のトピックをご参照ください。

  • コンフィグレーション キーワード
  • PostgreSQL コンフィグレーション パラメーター

既存のジオメトリ テーブルの使用

ArcGIS ではテーブルが次の前提条件を満たしている限り、他のアプリケーションや SQL によって外部環境で作成された PostGIS ジオメトリ列が含まれたテーブル (サードパーティ テーブルとも呼ばれます) を使用することができます。

  • ジオメトリ列が 1 つだけ含まれていなければならない。含まれていない場合は、ジオメトリ列を 1 つだけ含むクエリ レイヤーまたはビューを定義する。
  • 他にユーザー定義タイプの列が含まれていない。
  • ジオメトリのタイプが 1 種類でなければならない (ポイント、ライン、またはポリゴン)。ただし、ジオメトリはマルチパートでもよい。
  • 登録済みの RowID 列に適した、整数タイプの一意な NOT_NULL の列が含まれていなければならない。
  • 空間インデックスを持つ。

SQL を使用して PostGIS 列を持つテーブルを作成する方法については、PostGIS の FAQ (英文) をご参照ください。

ArcGIS Desktop から PostGIS テーブルを含む PostgreSQL データベースに接続して、それらのテーブルをジオデータベースに登録することができます。詳細については、「ジオデータベースへのテーブルまたはビューの登録」をご参照ください。

ラスター データ タイプ

Bytea または ST_Raster データ タイプを使用して、PostgreSQL のジオデータベースにラスターを格納できます。デフォルトでは、Bytea が使用されます。ST_Raster を使用する場合、ジオデータベースを構成する必要があります。

Bytea

Bytea は、PostgreSQL で使用される可変長バイナリ文字列データ タイプです。Bytea は BLOB に類似しています。このデータ タイプの詳細については、PostgreSQL のドキュメントをご参照ください。

ST_Raster

ST_Raster は、エンタープライズ ジオデータベースにインストールしてラスター データへの SQL アクセスを提供できるユーザー定義データ タイプです。

ST_Raster タイプを使用するには、データベースで構成する必要があります。

ST_Raster オブジェクト タイプの定義方法の詳細については、「ST_Raster データ タイプ」をご参照ください。

ArcGIS Desktop

  • ホーム
  • ドキュメント
  • サポート

ArcGIS プラットフォーム

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Esri について

  • 会社概要
  • 採用情報
  • Esri ブログ
  • ユーザ カンファレンス
  • デベロッパ サミット
Esri
ご意見・ご感想をお寄せください。
Copyright © 2019 Esri. | プライバシー | リーガル