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
  • マイ プロフィール
  • サイン アウト

ヘルプ

  • ホーム
  • はじめに
  • マップ
  • 解析
  • データ管理
  • ツール
  • その他...

SQL Server の空間タイプと ArcGIS

  • 空間タイプを指定するコンフィグレーション キーワードの使用
  • ジオデータベースへの既存の空間テーブルの登録
  • 空間インデックスの作成
  • ArcGIS で SQL Server の geography タイプを使用する場合の既知の制約

ジオデータベースは、Microsoft の geometry 空間データ タイプおよび geography 空間データ タイプを使用したベクター データの格納をサポートしています。これらのタイプは SQL Server で利用可能であり、個別のインストールは不要です。また、ArcGIS を使用して、geometry または geography 列を含むデータベース テーブルにアクセスできます。

次のいずれかに当てはまる場合、ArcGIS で geometry 格納タイプを使用する可能性があります。

  • 使用する座標系が地理座標系でないか、SQL Server のデータ ディクショナリに定義されていない。
  • SQL Server 2008 または 2008 R2 を使用していて、形状と一緒に Z 値または M 値を格納する。

次のいずれかに当てはまる場合、ArcGIS で geometry 格納タイプを使用する可能性があります。

  • 使用する座標系が SQL Server データ ディクショナリで定義されている。
  • SQL Server 2008 または 2008 R2 を使用していて、フィーチャのために Z 値または M 値を格納する必要がない。
  • ArcGIS で Z 値と M 値がサポートされている SQL Server 2012 を使用している。
  • データの空間範囲が大きく、SQL の面積および長さの計算を使用する必要がある。

    大楕円ライン内挿を使用する SQL の面積および長さの計算結果は、大きな空間範囲に対する平面ライン内挿を使用した場合とは大きく異なる可能性があります。

  • SQL 空間クエリには、大楕円ライン内挿を使用する必要があります。

空間タイプを指定するコンフィグレーション キーワードの使用

デフォルトでは、SQL Server のジオデータベースは、geometry タイプを使用します。geography タイプを SQL Server 内のジオデータベースへの格納に使用する場合、以下のうちのいずれかを実行する必要があります。

  • DEFAULTS コンフィグレーション キーワードの GEOMETRY_STORAGE コンフィグレーション パラメーターを GEOGRAPHY に変更します。DEFAULTS キーワードのGEOMETRY_STORAGE パラメーターを変更するのは、ほとんどのユーザーが geography タイプをデータに使用するケースが大半を占める場合のみにしてください。
  • フィーチャクラスの作成時に、GEOGRAPHY の GEOMETRY_STORAGE コンフィグレーション パラメーターを指定するコンフィグレーション キーワードを指定します。一部のデータだけを geography タイプで格納する場合は、フィーチャクラスの作成時に別のキーワードを指定します。キーワードとして「GEOGRAPHY」が用意されていますが、ユーザーが固有のカスタム キーワードを作成することもできます。

SQL Server データベース (ジオデータベースではない) 内にフィーチャクラスを作成する場合、geometry または geography キーワードのいずれかを選択します。

ジオデータベースへの既存の空間テーブルの登録

サードパーティ アプリケーションや SQL を使用して、SQL Server の空間タイプの列が含まれるテーブルを作成した場合は、このテーブルをジオデータベースに登録して、リレーションシップ クラス、トポロジ、ジオメトリック ネットワーク、パーセル ファブリックなどのジオデータベース機能を利用し、サブタイプ、デフォルト値、ドメイン、または整合性ルールを持たせることができます。これを実行するには、テーブルが次の前提条件を満たしている必要があります。

  • テーブルを登録するユーザーがテーブルの所有者でなくてはいけません。
  • テーブルの空間列が geometry タイプまたは geography タイプのいずれかでなくてはいけません。
  • 列内のすべてのシェープが、ポイント、ライン、ポリゴン、マルチポイント、マルチストリング、マルチポリゴンのいずれかであり、同じ空間タイプでなくてはいけません。

    テーブルをジオデータベースに登録した後で、SQL を使用して異なるタイプのシェープを列に追加することはサポートされておらず、その場合、フィーチャクラスは予測できない振舞いをします。

  • 列のすべてのシェープが同じ空間参照 ID (SRID) を使用しなくてはいけません。
  • 登録時に指定した SRID は SDE_spatial_references システム テーブルに存在していなくてはいけません。存在しない場合、登録時に投影法を定義する必要があります。
  • テーブルに主キーが含まれている場合は、テーブルをクラスタリングしなくてはいけません。

手順は、「ジオデータベースへのテーブルの登録」をご参照ください。

注意:

既存のデータベースでジオデータベースが有効であっても、既存のテーブルは自動的にはジオデータベースに登録されません。ジオデータベースに加えるテーブルやフィーチャクラスは、ジオデータベースに個別に登録する必要があります。

空間インデックスの作成

SQL Server では、空間インデックスを作成できるようにするために、テーブルに主キーを作成する必要があります。

ArcGIS の場合

ArcGIS を使用して、geometry 列または geography 列を含むフィーチャクラスを作成すると、デフォルトでビジネス テーブルの ObjectID 列にクラスター化された主キーが作成されます。次に ArcGIS は、SQL Server のデフォルトを使用して空間インデックスを作成します。フィーチャクラスをバージョン対応登録すると、クラスター化された主キーが ADD テーブルの ObjectID 列と state id 列に作成され、空間インデックスが作成されます。

ArcGIS は、インデックスを作成するデータの範囲として geometry または geography 空間列を使用し、フィーチャクラスのバウンディング ボックスを計算します。この範囲外にあるフィーチャはインデックス付けされませんが、空間検索では検索の対象となります。フィーチャクラスの範囲が設定されていない場合は、フィーチャクラスの空間参照系に対する最大の座標範囲がバウンディング ボックスで使用されます。フィーチャクラスの範囲を、[フィーチャクラス プロパティ] ダイアログ ボックスの [フィーチャの範囲] タブから設定または再計算することもできます。フィーチャクラスがジオデータベースに存在する場合、空間インデックスが削除されて再作成されたときに、最新の範囲を使用して境界ボックスが調整されます。

ArcGIS 以外

ArcGIS 以外のアプリケーションで作成された空間テーブル、たとえば SQL を使用して作成されたテーブルの場合は、テーブルに主キーを作成してから SQL を使用して空間インデックスを作成します。次に、geometry タイプの列が含まれるテーブルに空間インデックスを作成するための SQL 構文を示します。

CREATE SPATIAL INDEX <index_name>
 ON <table> (<spatial column>)
 USING GEOMETRY_GRID
 WITH (
  BOUNDING_BOX = minx,miny,maxx,maxy),
  GRIDS = (low|medium|high, low|medium|high, low|medium|high, low|medium|high), 
  CELLS_PER_OBJECT = n,
  <other regular btree index options like filegroups, fill factors, etc>
 )

次の構文は、geography 列に空間インデックスを作成します。

CREATE SPATIAL INDEX <index_name>
 ON <table> (<spatial column>)
 USING GEOGRAPHY_GRID
 WITH (
  GRIDS = (low|medium|high, low|medium|high, low|medium|high, low|medium|high),
  CELLS_PER_OBJECT = n,
  <other regular btree index options like filegroups, fill factors, etc>
 )

ArcGIS で SQL Server の geography タイプを使用する場合の既知の制約

SQL Server geography データタイプのデータをエンタープライズ ジオデータベースに格納する場合に、注意が必要な制約を次に挙げます。

  • SQL Server 2008 または 2008 R2 を使用している場合、ArcGIS は geography データ タイプに Z 値または M 値を格納できません。このため、別のジオデータベースのシェープファイルやフィーチャクラスなどの既存のデータをジオデータベースに取り込むときに、geography データ タイプを使用して格納する必要がある場合、そのデータセットは 3D (Z 値) またはメジャー (M 値) の属性を保持できません。

    Z 属性と M 属性は、SQL Server 2008 または 2008 R2 のジオデータベースにデータをインポートする前に無効にする必要があります。別の方法として、3D 属性またはメジャー属性を持つデータを geometry または Compressed Binary 格納タイプを使用するフィーチャクラス、または SQL Server 2012 のジオデータベースにインポートすることができます。

  • ほとんどの場合、geography データの計測値はメートル単位です。メジャーの単位は sys.spatial_ref_system で示されるため、ユーザーのデータに関連付けられている EPSG 値で使用される単位を確認します。
  • SQL Server 2008 で geography フィーチャクラスを地球規模の範囲にズームすると、半球ルールに違反するか、有効なジオグラフィ範囲外の座標を持つ空間フィルターが生成されます。この場合、フィルターの形状は作成されず、検索しても結果が返されません。

ArcGIS Desktop

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

ArcGIS プラットフォーム

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

Esri について

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