ワークフロー:データベーのデータを提供するための ArcGIS Spatial Data Server for the Java Platform の使用

複雑性: 初級 データ要件: 独自データの使用

このトピックで示す例に従うことにより、ArcGIS Spatial Data Server for the Java Platform を設定し、既存のデータベースからデータを公開することができます。

この例では、特定の大学の卒業生に関する人口統計情報を収集するためにアプリケーションを作成します。大学側は、収集された情報を使用して、入学候補生に大学を売り込むことができます。また、入学候補生は、この情報を使用して、自分がどのような教育を受けるべきかを検討することができます。つまり、どの学部、どの専攻で最高の投資利益率(大学に支払う費用に対する卒業後の給与見込み額)が得られるかを予測することができます。

PostgreSQL データベース内の PostGIS ジオメトリ格納を使用する region フィーチャクラスを、編集可能なフィーチャ サービスとして Spatial Data Server に公開します。region フィーチャクラスは、郵便番号ゾーンを表示して、卒業生の現在の居住地を大まかに示します。

Spatial Data Server の導入

ArcGIS Spatial Data Server for Java、JDBC プロバイダ、DBMS(データベース管理システム)クライアント、および Java アプリケーション サーバをインストールする必要があります。

その後、データ ソースを設定します。

ArcGIS Spatial Data Server for Java のインストール

ArcGIS Spatial Data Server for Java をインストールするには、ソフトウェアに付属のインストール ガイドに記載されている手順に従います。このガイドには、ソフトウェアのシステム要件、認証、およびインストールに関する情報が記載されています。

注意注意:

ArcGIS.com で公開されているサービスを介して編集できるようにするには、パブリック サーバ(ファイアウォールの外)に ArcGIS Spatial Data Server をインストールする必要があります。

JDBC プロバイダのインストールと Java アプリケーション サーバの設定

ご使用の DBMS でサポートされている JDBC ドライバ、およびアプリケーション サーバまたは Web サーバをダウンロードし、インストールします。

このワークフローでは、PostgreSQL JDBC ファイルと Tomcat をインストールします。

手順:
  1. http://jdbc.postgresql.org/download.html から PostgreSQL JDBC ドライバをダウンロードし、ArcGIS Spatial Data Server および Tomcat がインストールされているサーバに配置します。
  2. Apache Software Foundation サイトから Tomcat をダウンロードします。
  3. サーバに Tomcat をインストールします。
  4. PostgreSQL JDBC ドライバを Tomcat の lib ディレクトリにコピーします。

データ ソースの設定

Web サーバまたはアプリケーション サーバでデータ ソースを設定する必要があります。

このワークフローでは、Tomcat の context.xml ファイルを変更して、データ ソースを設定します。

手順:
  1. Tomcat がインストールされている conf ディレクトリにある context.xml ファイルを開きます。
  2. ファイルの <Resource name> セクションを編集して、PostgreSQL データベース クラスタ向けの情報を提供します。

    この例では、データ ソース名は postgres、データベース クラスタはデフォルト ポート 5432 でリスニングしており、データベースは gisdata です。接続は、ログイン ロール alumapp として行われます。

    <Resource name="jdbc/postgres" auth="Container"
                  type="javax.sql.DataSource" driverClassName="org.postgresql.Driver"
                  url="jdbc:postgresql://127.0.0.1:5432/gisdata"
                  username="alumapp" password="ruL00king" maxActive="20" maxIdle="10" 
                  maxWait="-1"/>

  3. context.xml ファイルを保存します。

アカウントの準備

フィーチャ サービスとして公開されるデータは編集されるため、データに接続してデータを公開するユーザに編集権限を付与する必要があります。また、ArcGIS Online に公開するため、ArcGIS Online アカウントを作成する必要があります。

接続するユーザへの権限付与

次の一連の手順では、データ ソース登録時に接続するユーザを指定します。ユーザに、Spatial Data Server に公開するデータセットに対する権限を付与する必要があります。たとえば、ユーザがフィーチャ サービスのデータへの選択専用アクセスを実行できるようにする場合、データ ソースに指定されているユーザは、フィーチャ サービスのデータセットに対する SELECT 権限を持っていれば十分です。

このワークフローの例では、フィーチャ サービスが選択、追加、更新の各権限を許可します。そのため、データ ソースに接続するユーザには、customers フィーチャクラスに対する SELECT、INSERT、UPDATE の各権限を付与する必要があります。さらに、このフィーチャクラスは PostGIS ジオメトリ格納を使用するため、このユーザには public.geometry_columns および public.spatial_ref_sys テーブルに対する権限を付与する必要があります。

次に示すように、データベース ログイン ロールおよびスキーマ alumapp を作成します。このログイン ロールには、データベース内の regions フィーチャクラスに対する SELECT、INSERT、UPDATE の各権限、geometry_columns テーブルに対する SELECT、INSERT、UPDATE、DELETE の各権限、および spatial_ref_sys テーブルに対する SELECT 権限を付与します。スキーマを作成して権限を付与する場合は、正しいデータベースに接続していることを確認してください。

CREATE ROLE alumapp LOGIN 
  ENCRYPTED PASSWORD 'ruL00king', 
  NOSUPERUSER CREATEDB INHERIT NOCREATEROLE;
  
CREATE SCHEMA alumapp AUTHORIZATION alumapp;

GRANT ALL ON SCHEMA alumapp TO alumapp;
GRANT USAGE ON SCHEMA alumapp TO authusers;

GRANT SELECT, INSERT, UPDATE, DELETE  
  ON TABLE public.geometry_columns 
  TO alumapp;

GRANT SELECT
  ON TABLE public.spatial_ref_sys
  TO alumapp;

GRANT SELECT, INSERT, UPDATE
  ON market1.regions
  TO alumapp;

ArcGIS Online アカウントの設定

この例では、サービスが ArcGIS Online に公開され、そこでアプリケーションが作成されます。

Esri Global Account を使用して、ArcGIS Online にサイン インします。ArcGIS Online で既存の Esri Global Account を登録するか、または Esri Global Account を作成してそこから登録します。http://www.arcgis.com/home/ に移動して、[サイン イン] をクリックします。

ArcGIS Online ですでに Esri Global Account を登録済みの場合は、今回サイン インの必要はありません。これは、サービスが公開されるときのワークフローで行います。

Spatial Data Server への管理者接続の作成

空間データ サーバに特定の接続を介してデータを公開します。管理者接続を使用すると、サーバを管理して、サービスを公開することができます。

空間データ サーバを管理するために、ArcGIS for Desktop から空間データ サーバへの管理者接続を作成します。

手順:
  1. ArcMap を開始して、カタログ ウィンドウを開きます。
  2. カタログ ツリーで [GIS Servers] ノードを展開します。
  3. [ArcGIS Server サーバの追加] をダブルクリックします。
  4. [GIS サーバを管理する] を選択し、[次へ] をクリックします。
  5. [サーバ URL] テキスト ボックスに、Spatial Data Server の管理 URL を入力します。

    この例では、URL は http://pub5:8080/arcgis/admin です。

  6. [サーバ タイプ] ドロップダウン リストで [空間データ サーバ] を選択します。
  7. この接続を使用してサービス定義を作成および保存する場合は、サービス定義ファイルをディスクにステージングするかどうかを選択できます。デフォルトでは、これらのファイルはローカル コンピュータ上のフォルダにステージングされます。
  8. [完了] をクリックして、接続を作成します。

    [GIS Servers] ノードの下に、新しい接続が一覧表示されます。

フィーチャ サービスの公開

データ ソースに設定したユーザと同じユーザとして ArcGIS for Desktop からデータベースに接続します。次に、サービスに格納するデータを含むマップを作成し、データ ソースをマッピングし、公開します。

ArcGIS for Desktop からデータベースへの接続

データベースへの接続を確立して、データベース内のデータにアクセスできるようにします。データベースへの接続を確立するには、ArcGIS がインストールされているコンピュータにデータベース クライアントをインストールする必要があります。

このワークフローでは、ArcGIS for Desktop がインストールされている bin フォルダに PostgreSQL クライアント ファイルを置く必要があります。

手順:
  1. Esri Cusomer Care ポータルから、Windows 用の PostgreSQL 32 ビット クライアント ライブラリ ファイルをダウンロードします。
  2. そのファイルを ArcGIS for Desktop の bin フォルダに置きます。

PostgreSQL クライアント ライブラリが ArcGIS for Desktop の bin フォルダにあると、ArcMap からデータベースに接続できます。

regions テーブルをマップに追加できるように、ArcMap からデータベースに接続します。

手順:
  1. カタログ ツリーで、[データベース コネクション] ノードを展開します。
  2. [データベース接続の追加] をダブルクリックします。
  3. [インスタンス] テキスト ボックスに、PostgreSQL サーバ名を入力します。
  4. [データベース] テキスト ボックスに、データベース名「gisdata」を入力します。
  5. [タイプ] ドロップダウン リストで [データベース認証] を選択します。
  6. [ユーザ名] テキスト ボックスに、「alumapp」と入力します。
  7. [パスワード] テキスト ボックスに、alumapp ログインのパスワードを入力します。
  8. [ユーザ名とパスワードを保存する] をオンにして、[OK] をクリックします。

マップの認証

regions テーブルを、データベース接続からマップ ウィンドウにドラッグすることで、ArcMap に追加します。

ArcMap が空間参照と適切な ObjectID 列(NULL でない整数列)を検出できない場合、これを入力するよう求められます。

注意注意:

空間参照を持たないデータは公開できません。

ArcMap のコンテンツ ウィンドウにテーブルが表示されたら、サービスに表示するシンプル シンボルを使ってフィーチャをシンボル表示します。シンボルの変更方法については、ArcGIS ヘルプをご参照ください。

次に、サービスで公開するプロパティに必要な、マップ ドキュメントの構成変更を行います。たとえば、サービスを介して表示されるフィールドの指定、表示されるフィールドのエイリアスの設定、一部のフィールドへの読み取り専用の設定などを行います。この例では、ユーザの要求を処理するために必要な情報をユーザが入力できるように、HTML ポップアップ メニューも設定できます。プロパティの詳細については、「空間データ サーバに公開するフィーチャ サービスの作成の概要」をご参照ください。

サービスに使用する初期範囲にズームします。公開時にサービスが返すフィーチャの最大数を指定していますが、初期範囲が、この最大数以下のフィーチャを返すことを確認します。デフォルトの数は1,000 です。マップを保存します。

データ ソースのマッピングと編集が可能なフィーチャ サービスの公開

マップの準備が整ったら、データを公開して、フィーチャ サービスとして共有します。

公開時に、データ ソースをマッピングします。

ヒントヒント:

または、REST 管理ビューからデータ ソースをマッピングしておくこともできます。詳細については、「ArcGIS Spatial Data Server for Java に向けた REST ビューからのデータ ソース マッピング」をご参照ください。

手順:
  1. ArcMap ドキュメントのメイン メニューで、[ファイル] [共有] [サービス] の順にクリックします。
  2. In the Share As Service window, there are three options.
    • To immediately publish your data, choose Publish a service and click Next.
    • To save a service definition file to be published later, choose Save a service definition file and click Next.
    • To replace an existing service, choose Overwrite an existing service and click Next. To replace a service, the original service must be stopped first.
  3. [接続] ドロップダウンリストから管理空間データ サーバを選択します。
  4. [サービス名] テキスト ボックスに「alumni_data」と入力し、[続行] をクリックします。
  5. [サービス エディタ][フィーチャ アクセス] をクリックします。
  6. 接続ユーザはフィーチャ サービスを介したデータの検索、作成、更新、および削除を許可されるため、4 つの操作すべてをオンのままにします。
  7. [共有] をクリックします。

    [ArcGIS Online サイン イン] ダイアログ ボックスが開きます。

  8. Esri Global Account のユーザ名とパスワードを入力して [OK] をクリックし、サイン インして [サイン イン] ダイアログ ボックスを閉じます。
  9. [サービス エディタ] ダイアログ ボックスの [ArcGIS Online] ペインで、適切なボックスをオンにして、コンテンツへのアクセスを許可するユーザを指定します。
    • この時点で、サービスにアクセスするのが自分だけである場合は、[マイ コンテンツ] をオンにします。
    • ArcGIS Online にアクセスするすべてのユーザがサービスを参照できるようにするには、[すべての人に公開(パブリック)] をオンにします。
    • メンバーとして加入しているグループが表示されます。これらのグループにサービスへのアクセス権限を付与する場合、[これらのグループのメンバー] をオンにしてから、付与の対象とするグループをすべてオンにします。

    複数のオプションをオンにすることができます。たとえば、サービスをコンテンツの一部にして、特定の ArcGIS Online グループにアクセス権限を付与する場合があります。

  10. [統計情報の更新] をクリックします。

    データ ソースをまだマッピングしていない場合は、「レイヤのデータ ソースにマッピングがありません」というエラー メッセージが表示されます。このエラーと他のすべてのエラーを修正する必要があります。その後、正常に公開できます。

  11. エラーを修正するには、エラーを右クリックします。

    ショートカット メニューには、問題を修正するためのツールへのリンクが用意されています。

  12. データ ソースのエラーを修正するには、エラーのヘルプ リンクに記載されている指示に従います。
  13. 次に進む前に、返された他のすべてのエラーを修正します。
  14. サービスでフィーチャクラスがどのように表示されるかを確認するには、[プレビュー] をクリックします。
  15. [公開] をクリックします。
  16. 公開するには、[OK] をクリックしてダイアログ ボックスを閉じます。

サービスの表示

ArcGIS Spatial Data Services Directory からサービスに関する情報を表示できます。ArcGIS Online にサービスを公開したら、そこからマップのサービスが表示できます。

ArcGIS Spatial Data Services Directory からサービスへのアクセス

ArcGIS Spatial Data Services Directory には、特定の空間データ サーバに公開されているすべてのサービスが一覧表示されます。ここから、サービス定義を JSON ファイルとしてエクスポートしたり、SQL クエリを作成してフィーチャクラスのフィーチャを選択または挿入したり、ArcGIS.com でサービスを開いたりできます。

ArcGIS Spatial Data Services Directory の URL は、「http://<サーバ名>/<Spatial Data Server 名>/rest/services」です。そのため、この例では、URL は http://pub5:8080/arcgis/rest/services になります。両方のサービスが表示されます。

ArcGIS Online の使用

フィーチャクラスを空間データ サーバに公開したら、ArcGIS Online から表示することができます。

手順:
  1. Web ブラウザを開いて、ArcGIS Online の Web サイト「http://www.arcgis.com/home/index.html」に移動します。
  2. [サイン イン] をクリックします。
  3. Esri Global Account のユーザ名とパスワードを入力して [サイン イン] をクリックします。
  4. [マイ コンテンツ] をクリックします。
  5. alumni_data サービスを追加します。
    1. [アイテムの追加] をクリックします。
    2. [アイテム] ドロップダウン リストで、[ArcGIS Server Web サービス] を選択します。
    3. サービスの URL を入力します。

      この例では、URL は http://pub5/arcgis/rest/services/alumni_data.svc です。

    4. [タイトル] テキスト ボックスに、サービスのタイトルを入力します。
    5. [タグ] テキスト ボックスに、サービスを特定するタグを入力します。
    6. [アイテムの追加] をクリックします。

Web アプリケーションの作成

まず、ArcGIS.com で当該サービスと世界のベースマップを含むマップを作成します。次に、ArcGIS.com からアプリケーション テンプレートを使用して、Web アプリケーションを作成します。

ArcGIS.com でのマップの作成

ArcGIS.com で alumni_data サービスをベースマップに追加して、そのマップをアプリケーション用に保存します。

手順:
  1. ArcGIS.com の [マイ コンテンツ] セクションで、[マップの作成] をクリックします。
  2. [ベースマップ] をクリックし、いずれかのベースマップを選択します。
  3. [追加] [レイヤの追加] の順にクリックします。
  4. [In] ドロップダウン リストで、[マイ コンテンツ] を選択します。
  5. alumni_data サービスを選択し、[レイヤの追加の終了] をクリックします。
  6. 必要に応じて、マップの範囲を調整します。
  7. マップを保存します。
    1. マップのタイトル、タグ、サマリを入力します。
    2. マップを保存するフォルダを選択します。
    3. [マップの保存] をクリックします。
  8. パブリックに、または特定のグループで、マップを共有します。
  9. マップの ID を書き留めておいてください。Web アプリケーションを作成する際に使用します。

Web アプリケーションを作成するテンプレートの使用

アプリケーションが編集を許可する必要があるため、Edit web application template を使用します。

手順:
  1. Edit web application template をダウンロードします。
  2. ダウンロードした ZIP ファイルを IIS サーバの [inetpub\wwwroot] フォルダに置きます。
  3. ファイルを抽出します。
  4. readme.html ファイル内の手順に従って、アプリケーションを設定します。
9/15/2013