ArcGIS のデータベースとクラウド データ ウェアハウスのデータ

ArcGIS では、次のセクションで説明するように、データ ソースに接続する際またはサポートされているデータベースにデータを作成する際に命名規則とジオメトリー検証ルールが適用されます。

ヒント:

ArcGIS では、クラウド データ ウェアハウスまたはドキュメント データベースにオブジェクトを作成することはできません。

オブジェクト名

データベースおよびクラウド データ ウェアハウス プロバイダーにおいて、オブジェクト名に使用できる文字の定義はさまざまです。 また、データベースでは、オブジェクト名を二重引用符などの区切り文字で囲むことで、サポートされていない文字をオブジェクト名に使用できることもあります。 ただし、ArcGIS では、データベースのクエリー時にオブジェクト名を区切らないため、そのような名前を認識できません。

名前の長さ

ArcGIS は、テーブル、ビュー、ユーザーなどのデータベース オブジェクトを読み取り、(場合によっては) 作成することができます。 ArcGIS において、これらのオブジェクトの名前で許可されている最大長と、例外 (該当する場合) を次の表に示します。

注意:

データベースで使用できる文字数が ArcGIS より少ない場合は、データベースで使用できる文字数に制限されます。 オブジェクト名の制限については、お使いのデータベース プラットフォームに関するドキュメントをご参照ください。

以下にリスト表示されている文字数は、1 バイト文字セットの使用を想定しています。

オブジェクト タイプArcGIS が作成する最大文字数ArcGIS で読み取られる最大文字数例外

データベース名

SQLite 以外のデータベースでは、該当なし。

SQLite で作成する場合は 250。

データベース管理システムまたはクラウド データ ウェアハウスの上限まで。

ArcGIS は、Oracle で許可されている最大データベース名を読み取ることができます。

データベース名の値は SAP HANAElasticsearchOpenSearch には適用されません。

SQLite のデータベース名は、ファイル パス、ファイル名、ファイル拡張子で構成されます。 SQLite データベースが ST_Geometry または SpatiaLite 空間タイプを使用するよう構成されている場合、ファイル拡張子は (.sqlite) です。 SQLite データベースが OGC GeoPackage として構成されている場合、ファイル拡張子は (.gpkg) です。

テーブル名、フィーチャクラス名、またはビュー名

128

SQLite で作成する場合は 158。

オブジェクト名が 128 文字未満に制限されているデータベースの場合、テーブル名、ビュー名、フィーチャクラス名をデータベース上限まで作成できます。

128

SQLite から読み取る場合は 158。

Redshift または SAP HANA から読み取る場合は 127。

Elasticsearch または OpenSearch から読み取る場合は 255。

インデックス名

128

オブジェクト名が 128 文字未満に制限されているデータベースの場合、インデックス名をデータベース上限まで作成できます。

データベース上限まで。

クラウド データ ウェアハウス、Elasticsearch、または OpenSearch には、インデックス名は適用されません。

フィールド (列) 名

128

オブジェクト名が 128 文字未満に制限されているデータベースの場合、フィールド名をデータベース上限まで作成できます。

データベースまたはクラウド データ ウェアハウスの上限まで。

ユーザー名

ArcGIS は、次のデータベースにのみユーザーを作成します。データベースがサポートしている文字数の上限までの名前が作成されます。

  • Oracle
  • PostgreSQL
  • SAP HANA
  • SQL Server

データベースまたはクラウド データ ウェアハウスの上限まで。

ユーザー名の値は SQLite および BigQuery には適用されません。

パスワード

ArcGIS は、次のデータベースのユーザーにのみパスワードを作成します。 許可されているパスワードの最大長を示します。

  • Oracle - 30
  • PostgreSQL - 75
  • SAP HANA - 31
  • SQL Server - 128

サポートされているすべてのデータベースとクラウド データ ウェアハウスの場合は 256。ただし以下を除きます。

  • Elasticsearch および OpenSearch - 72 文字
  • Redshift - 64 文字
  • Teradata - 31 文字

パスワードの値は SQLite にも BigQuery にも適用されません。

BigQuery では、サポートされているデフォルトのデータセット名の最大長は 31 文字です。 サポートされているプロジェクト名の最大長は 30 文字です。

ジオメトリーの検証

ArcGIS クライアントを使用してデータベース内にデータを作成する場合、ArcGIS では、特定のルールに従ってジオメトリーの検証が実行されます。 ArcGIS クライアントで作成したジオメトリーが有効でない場合は、そのジオメトリーをデータベースに挿入することができません。

Esri と IBM ST_Geometry のコンストラクター関数および ArcGIS API は、フィーチャが作成されたときに、Esri シェープ ライブラリーを使用してジオメトリー データを検証します。 したがって、SQL を使用して Esri または IBM ST_Geometry シェープを作成した場合でも、検証ルールが適用されるため、無効なジオメトリーはデータベースにコミットされません。

SDO_Geometry、PostGIS ジオメトリーまたはジオグラフィー、Microsoft SQL Server ジオメトリーまたはジオグラフィーなどの他の空間タイプには、独自のコンストラクター関数が存在し、独自のジオメトリー検証ルールが使用されます。 これらのルールは、ArcGIS で適用されているルールと一致していない場合があります。 ArcGIS クライアントでは、データが読み取られた時点でジオメトリーの検証が実行されるので、ArcGIS のジオメトリー検証ルールに違反しているジオメトリーは表示されません。 ArcGIS の外部で作成されたデータを含むデータベースに接続する場合は、ArcGIS で適用されているルールを十分に把握しておく必要があります。

ポイントに関する検証ルール

次の検証ルールがポイント フィーチャに適用されます。

  • ポイントの面積と長さは 0.0 です。
  • 単一のポイントのエンベロープはポイントの X,Y 値に等しくなります。
  • マルチパート ポイントのエンベロープは最小境界ボックスです。

シンプル ラインまたはラインストリングの検証ルール

次の検証ルールがシンプル ライン フィーチャに適用されます。

  • 各パートは少なくとも 2 つの別個のポイントを持つ必要があります。
  • 各パートは自身と交差してはいけません。 始点と終点を同じにすることはできますが、結果として生成されるリングはポリゴンとして扱われません。
  • パートは終点で相互に接触してもかまいません。
  • 長さはすべてのパートの合計です。

ラインまたはスパゲッティ ストリングの検証ルール

次の検証ルールがより複雑なライン フィーチャに適用されます。

  • ラインは相互に交差できます。
  • 各パートは少なくとも 2 つの別個のポイントを持つ必要があります。
  • 長さはすべてのパートの合計です。

ポリゴンに関する検証ルールと操作

ポリゴンに関する検証ルールと操作は次のとおりです:

  • ダングルは無効です。
  • ポリゴンを構成するライン セグメントが閉じていて (始点と終点の Z 座標も同じである必要があります)、交差していないことが検証されます。
  • ホールを含むポリゴンの場合は、ホール全体が外側の境界内に存在しなければなりません。 外側の境界外にあるホールはすべて無効です。
  • 単一の共通ポイントで外側の境界に接しているホールは、ポリゴンの反転部分に変換されます。
  • 共通のポイントで接する複数のホールは 1 つのホールにまとめられます。
  • マルチパート ポリゴン同士を重ね合わせることはできません。 ただし、あるポイントで 2 つのパートが接することはかまいません。
  • マルチパート ポリゴンが共通の境界を持つことはできません。
  • 2 つのリングが共通の境界を持つ場合は、1 つのリングにマージされます。
  • ドーナツ ポリゴンのすべてのホールの境界も含めて、ジオメトリーの全外周が計算され、それがジオメトリーの長さとして格納されます。
  • 面積が計算されます。
  • エンベロープが計算されます。
  • ポリゴンのポイントは反時計回りに格納されますが、ArcGIS クライアントはどちらの方向でもポイントを返すことができます。 時計回りの座標を含むポリゴンを生成した場合は、座標が反時計回りになるように ArcGIS で並びが変更されます。

    反時計回りに格納されるポリゴンの頂点

    この例の場合、始点は a で、正しい座標記述順は a,b,c,d,a です。

  • ポリゴンに反転部分が含まれることがあります。反転部分とは、ポリゴンの内部にあり、外側の境界に接している空の領域です。

    反転部分を含むポリゴンの頂点の方向

  • 反転部分を含むポリゴンには、外側の境界に接している内部のリングがあります。 これはドーナツ ポリゴンとは見なされません。
  • ポリゴンにドーナツ ホールが含まれている場合は、外側の境界が最初に読み取られます。 ホールのポイントは、外側の境界とは逆向きに格納されます。

    次の図では、外側の境界が a、b、c、d、a と表記され、ホールが e、f、g、h、e と表記されています。 ポリゴン全体のフィーチャは a、b、c、d、a、e、f、g、h、e として格納されます。

    ホールを含むポリゴンの頂点の方向

  • 2 つのホールが 1 つのポイントで接する場合は、2 つのホールではなく 1 つのホールとして扱われます。

    2 つのホールが 1 つのポイントを共有するポリゴンの頂点の方向

    この例の場合、共通のポイント g を共有するため、2 つの内部のエリアは 1 つのホールです。

  • ポリゴンおよびホールを含むポリゴンを組み合わせると、次の図に示すように、かなり複雑な形になることがあります。 外側の境界は島のある湖です。 島には小さな湖があります。

    ネストしたポリゴン

    これらのポリゴンは、1 つ、2 つ、または 3 つのフィーチャとして表現することができます。 各ポリゴンを別々のフィーチャとして格納してもかまいません。 大きな湖はドーナツ ポリゴンです。 大きな湖の境界は外側の境界で、島は 1 つのドーナツ ホールの境界です。 島もドーナツ ポリゴンです。 島の境界は外側の境界で、小さな湖はホールです。 小さな湖は 1 つのポリゴンです。

    湖が重要なフィーチャである場合は、ホールを含む 1 つのフィーチャで大きな湖を表し、2 つ目のシェープで小さな湖を表します。 また、マルチパート ポリゴンを使用してフィーチャを表すこともできます。 最初のポリゴン パートは、島を表すドーナツ ホールを含む大きな湖です。 2 つ目のパートは小さな湖です。

  • nil ジオメトリーも有効であり、プレースホルダーとしての役割を果たします。 このジオメトリーには、対応するジオメトリーのない属性行を設定できます。 nil ジオメトリーが生成される例として、交差していない 2 つのポリゴンの交差部分を求めるリクエストがあります。

    ポリゴンが交差していないと、nil ジオメトリーが返されます。

    エリア A とエリア B は接していないため、交差部分を求めるクエリーの結果、空のジオメトリーが返されます。

  • フィーチャには次元があります。 X,Y 座標しかないフィーチャは 2 次元と見なされます。 Z 座標またはメジャー値を含むフィーチャは 3 次元と見なされます。 nil メジャー値を含むフィーチャを生成することもできます。

空間メタデータ

ジオデータベースには、含まれる空間データに関する情報が格納されます。 ArcGIS クライアントは、フィーチャクラスのエンティティー タイプ (ポイント、ライン、ポリゴンなど)、次元 (X、Y、Z、M 座標)、空間参照、一意の ID、フィーチャクラス範囲に関する情報をジオデータベース システム テーブルから読み取ることができます。 ArcGIS がデータベース内のフィーチャクラスに接続している場合は、これと同じシステム テーブルを使用できません。 このため、ArcGIS は外部のソースからこれらの情報を入手しなければなりません。

フィーチャクラス (空間テーブル) を ArcGIS Pro のマップにドラッグすると、クエリー レイヤーが作成されます。 クエリー レイヤーを定義するために、ArcGIS Pro で次の処理が実行されます。

  1. 次元、空間参照、ジオメトリー タイプなどの空間テーブル情報について、データベースに問い合わせします。
  2. 情報全体がテーブルに定義されていない場合、ArcGIS Pro はテーブル内の最初の行を読み取り、そのフィーチャからの情報を使用します。
  3. 最初の行をクエリーしても空間参照、ジオメトリー タイプ、次元が判定できない場合、たとえば、テーブルにデータが含まれていなかったり、行でカスタム空間参照が使用されていたりする場合は、レイヤー定義に使用するために、この情報を入力するよう求められます。
  4. ArcGIS Pro はデータベースを検索し、テーブル内の行の一意の識別子 (ObjectID) として使用できる NULL 以外の列を検出します。 該当する行が見つからない場合、テーブルの ObjectID を定義するように求められます
  5. 最後に、レイヤーをマップに追加すると、ArcGIS Pro でそのレイヤーの範囲が算出されます。

マップに表示される内容はクエリー レイヤーに基づいているため、クエリー レイヤー定義を開いて、その内容を変更することができます。 たとえば、フィーチャクラスにポイント フィーチャとポリゴン フィーチャが含まれる場合、クエリー レイヤー定義を開いて、表示するジオメトリー タイプを選択できます。 同様に、フィーチャクラスに複数の空間列が含まれる場合、クエリー レイヤー定義を開いて、代わりに別の空間列を含むようにクエリーを変更することができます。 ただし、クエリーを変更しても、サポートされていないデータ タイプを表示することができない点に注意してください。