チュートリアル: WFS サービスの公開
このチュートリアルでは、ArcMap を使用して WFS サービスを ArcGIS Server に公開する方法を説明します。WFS は、インターネット上で地理フィーチャを提供するための仕様であり、OGC(Open Geospatial Consortium)によって公開されています。WFS ケーパビリティを有効にしてマップ サービスまたはジオデータ サービスを公開すると、ArcGIS for Desktop の ArcGIS Data Interoperability extension for Desktop など、OGC 準拠の WFS クライアントからデータにアクセスできます。これらの WFS クライアントには、データに対する最新の変更も表示されます。WFS サービスを扱うのが初めてで、このチュートリアルに取り組む前に WFS について詳しく知りたい場合は、「WFS サービス」をご参照ください。
チュートリアルを始める前に
現在 ArcGIS Server をインストールしただけの状態であれば、サーバに接続してサービスを公開する前に、いくつかの準備作業が必要です。
- ArcGIS Server サイトを構成する方法については、このヘルプ システムの「インストール後の作業」セクションをご参照ください。
- GIS リソースで参照されているデータをサーバで利用できるようにする方法については、「データを ArcGIS Server でアクセス可能にする」をご参照ください。
ジオデータ サービスかマップ サービスかの選択
WFS サービスでは、ジオデータ サービスまたはマップ サービスのどちらかを公開の対象として選択することができます。作成するサービスのタイプを選択するときに、これらの違いを認識している必要があります。次のセクションでは、各自の要件に最適なサービスを判断するのに役立つよう、マップ サービスとジオデータ サービスで利用可能な機能をまとめます。
マップ サービス
WFS マップ サービスは、インターネットまたは OGC 準拠の WFS クライアントを通じて利用できるマップ ドキュメントを表します。WFS ファンクショナリティを持つマップ サービスは、サービスを通じて公開されるデータを細かく制御することができます。マップ サービスをセットアップする主な理由は次のとおりです。
- ジオデータ サービスとは異なり、複数のジオデータベースやシェープファイルからのデータなど、さまざまなソースからのデータを 1 つのマップ サービスに追加できます。
- マップ サービスを通じて提供されるフィーチャクラスを選択することができます。
- マップ ドキュメントでフィーチャクラスの名前を変更し、データ ソースでの実際の名前がサービスで公開されないようにすることができます。
WFS マップ サービスには制限もいくつかあります。マップ ドキュメントから WFS サービスを公開する際には、次の点に注意してください。
- マップ ドキュメントは、WFS サービスで提供されるレイヤの仕様にすぎません。サービスの目的はデータ内のフィーチャを提供することなので、レイヤ レベルで定義されるシンボル表示、クエリ定義、フィールド エイリアスは、WFS サービスに渡されません。OGC 仕様を通じてマップのビジュアル プロパティを提供するには、WMS サービスを使用します。
- マップ内の複数のレイヤから同じフィーチャクラスを参照することはできません。
- マップ内の複数のレイヤに同じ名前を付けることはできません。
- WFS はフィーチャを操作するだけなので、マップ内のラスタ レイヤはサービスから除外されます。
- 非空間テーブルは公開されません。
- WFS サービスで編集用のトランザクション(WFS-T)をサポートするには、マップ内のすべてのレイヤのソース データが同じワークスペース(たとえば、同じエンタープライズ ジオデータベース)に格納されている必要があります。
ジオデータ サービス
WFS ジオデータ サービスでは、インターネットまたは OGC 準拠の WFS クライアントを介してワークグループ、エンタープライズ、またはファイル ジオデータベースにアクセスできます。ジオデータ サービスから WFS サービスを作成する際には、ジオデータベース内のすべてのフィーチャクラスがサービスとして公開されることに注意してください。
ジオデータ サービスは、ジオデータベースにリモートからアクセスしなければならない状況で役立ちます。たとえば、ロサンゼルス オフィスとニューヨーク オフィスでデータを管理するためにエンタープライズ ジオデータベースをセットアップする場合などです。エンタープライズ ジオデータベースを作成したら、各オフィスはジオデータ サービスを使用して、インターネット上にそのエンタープライズ ジオデータベースを公開することができます。
ArcGIS Server への WFS サービスの公開
WFS サービスを公開するには、以下の手順に従います。
-
サーバに公開するサービス タイプに基づいて、以下の表に示す指示に従います。
オプション
説明
WFS マップ サービスを公開する場合
ArcMap でマップ ドキュメントを開き、[ファイル] → [共有] → [サービス] → [サービスの公開] の順に選択します。[次へ] をクリックします。
WFS ジオデータ サービスを公開する場合
ArcCatalog またはカタログ ウィンドウでワークグループ、エンタープライズ、またはファイル ジオデータベースを参照し、右クリックして [ジオデータ サービスとして共有] を選択します。
- [サービスとして共有] ウィンドウで、[サービスを公開] を選択します。[次へ] をクリックします。
- [サービスを公開] ダイアログ ボックスで、[ArcGIS Server に接続] をクリックして、サーバへの新しい接続を作成します。
- [ArcGIS Server サーバの追加] ウィンドウで、[GIS サービスを公開する] を選択します。[次へ] をクリックします。
- [サーバの URL] に、接続する ArcGIS Server サイトの URL を入力します。URL の例は http://gisserver.domain.com:6080/arcgis です。
- [サーバ タイプ] ドロップダウン リストから、[ArcGIS Server] を選択します。
- 公開プロセス中に、サービス定義ファイルが作成され、ローカルのディスクに一時的に保存されます。公開プロセスが完了すると、サービス定義がサーバにアップロードされ、ローカル ファイルは削除されます。このチュートリアルでは、デフォルトのステージング フォルダを使用して操作を続けます。
- サーバ管理者がサイトのセキュリティを有効にしている場合は、[ユーザ名] と [パスワード] に値を入力します。[完了] をクリックします。
- 必要に応じて、[サービスを公開] ウィンドウでサービスの新しい名前を入力します。120 文字を超える名前や、英数字とアンダースコア(_)以外の文字が含まれた名前を使用することはできません。[次へ] をクリックします。
- デフォルトでは、ArcGIS Server のルート フォルダ(root)にサービスが公開されます。サービスはルート フォルダ以下のサブディレクトリに整理することができます。サービスを公開するフォルダを選択するか、サービスを格納する新しいフォルダを作成します。[続行] をクリックします。
- サービス エディタが表示されます。[サービス エディタ] を使用して、WFS サービスでユーザが実行できる操作を選択し、サーバがサービスを公開する方法を調整します。[機能] タブをクリックします。
- デフォルトでは、マッピングと KML が有効になっています。[WFS] を選択します。
-
[サービス エディタ] の左側のペインで、[WFS] をクリックします。このパネルを使用して、WFS サービスのプロパティを構成する方法を選択します。WFS サービスのプロパティを設定することで、クライアントがサービス公開者の意図を理解しやすくなります。
- [URL] フィールドには、クライアントが WFS サービスへのアクセスに使用する URL が表示されます。URL の形式は、http://gisserver.domain.com:6080/arcgis/services/folder/service/MapServer/WFSServer です。注意:
WFS サービスの URL をコピーして保存します。この URL は、このチュートリアルの別の手順で必要になります。
- システムが生成したケーパビリティ ファイルを使用して WFS サービスを公開する場合は、デフォルトの [以下にサービス プロパティを入力] オプションを使用します。[Name]、[Tile]、および [OnlineResource] フィールドは自動的に設定され、変更する必要はありません。必要に応じて、リストにあるフィールドを使用してその他のプロパティを設定します。詳細については、「利用可能な WFS サービス プロパティ」をご参照ください。
- WFS サービスを構成して外部のケーパビリティ ファイルを使用する場合は、[外部のケーパビリティ ファイルを使用] を選択します。このオプションを使用する場合は、WFS ケーパビリティ ファイルをあらかじめ作成しておく必要があります。詳細については、「WFS サービスでの外部ケーパビリティ ファイルの使用」をご参照ください。
- [URL] フィールドには、クライアントが WFS サービスへのアクセスに使用する URL が表示されます。URL の形式は、http://gisserver.domain.com:6080/arcgis/services/folder/service/MapServer/WFSServer です。
-
[統計情報の更新] をクリックします。マップ ドキュメントまたはジオデータベースをサーバに公開できるかどうかが検証されます。
ヒント:
WFS サービスを構成するときに表示領域を広くするには、[サービス エディタ] の上部にある [折りたたみ] ボタンをクリックします。
-
[準備] ウィンドウでエラー を修正します。エラーの修正は公開の前に行う必要があります。さらに必要であれば、警告メッセージと情報メッセージに従って問題を修正し、WFS サービスのパフォーマンスと外観を改善します。これらの問題の解決の詳細については、「GIS リソースの分析」をご参照ください。
注意:
サーバが確実にデータを認識して使用できるように、フォルダとジオデータベースを ArcGIS Server サイトに登録することができます。以下の手順を続ける場合、未登録のフォルダまたはジオデータベースから GIS リソースが参照するデータはすべて、公開時にサーバにコピーされます。これは、サーバがサービスで使用されているすべてのデータにアクセスできることを保証するための予防的な処置です。フォルダまたはジオデータベースを ArcGIS Server サイトに登録する手順については、「ArcGIS for Desktop を使用したデータの ArcGIS Server への登録」をご参照ください。
- 必要に応じて、[サービス エディタ] で [プレビュー] をクリックします。Web 上で WFS サービスがどのように表示されるかを確認することができます。詳細については、「マップのプレビュー」をご参照ください。
- マップ ドキュメントまたはジオデータベース内のエラーを修正したら、[公開] をクリックします。
WFS サービスの使用
公開した WFS サービスは、WFS 1.0.0 または 1.1.0 および GML の Simple Features プロファイルをサポートする任意のクライアント(Web ブラウザなど)で利用することができます。WFS サービスの最も単純なクライアントの 1 つは Web ブラウザです。HTTP 経由で情報をリクエストすることができ、レスポンスや例外はブラウザを通じて返されます。
Web ブラウザから WFS サービスにアクセスするには、以下の手順に従います。
- Web ブラウザを開きます。
- 以下のセクションに示すように、GetCapabilities、DescribeFeatureType、および GetFeature リクエストを実行します。
GetCapabilities
このリクエストは、サービスを通じて利用できるすべてのフィーチャ タイプとファンクショナリティを GML 形式で返します。GetCapabilities 操作を使用するには、WFS サービスの URL をコピーしてアドレス バーに貼り付け、URL の末尾に「?request=getcapabilities」を追加します。
URL の例: http://gisserver.domain.com:6080/arcgis/services/wfs_services/ArcSDE_wfs/GeoDataServer/WFSServer?request=GetCapabilities
次の図は、GetCapabilities 操作から返されるファンクショナリティの例を示しています。
GetCapabilities は、利用可能なすべてのフィーチャクラスとテーブルのリストも返します。
DescribeFeatureType
このリクエストは、WFS サービスの 1 つ以上のフィーチャに関するフィールド情報を説明します。たとえば、フィールド名、フィールド タイプ、フィールドに許容される最小値と最大値、フィーチャクラスまたはフィーチャ テーブルのフィールドに設定されたその他の制約などがあります。
DescribeFeatureType 操作を使用するには、WFS URL をコピーしてアドレス バーに貼り付け、URL の末尾に「?SERVICE=WFS&VERSION=1.1.0&REQUEST=DescribeFeatureType&VERSION=1.1.0」を追加します。フィーチャ サービスで利用できるフィーチャ タイプおよびテーブルごとに、すべてのフィールド情報が返されます。
URL の例: http://gisserver.domain.com:6080/arcgis/services/wfs_services/ArcSDE_wfs/GeoDataServer/WFSServer?SERVICE=WFS&VERSION=1.1.0&REQUEST=DescribeFeatureType&VERSION=1.1.0
フィルタの追加
URL の最後に、フィーチャ タイプまたはフィーチャ テーブルの名前とともに次のリクエストを追加することにより、フィールド情報を取得する単一のフィーチャクラスまたはフィーチャ テーブルを指定することもできます。形式は、「?SERVICE=WFS&VERSION=1.1.0&REQUEST=DescribeFeatureType&TypeName=<フィーチャ タイプ>&VERSION=1.1.0」になります。
WFS サービスで利用できる他のフィルタの詳細については、「Web ブラウザでの WFS サービスとの通信」をご参照ください。
次の例では、DescribeFeatureType リクエストを使用して、cities という名前のフィーチャ タイプに関するフィールド情報を特定しています。
URL の例: http://gisserver.domain.com:6080/arcgis/services/wfs_services/ArcSDE_wfs/GeoDataServer/WFSServer?SERVICE=WFS&VERSION=1.1.0&REQUEST=DescribeFeatureType&TypeName=cities&VERSION=1.1.0
GetFeature
このリクエストは、WFS サービスを通じて利用可能な特定のフィーチャ タイプに関する情報を返します。
GetFeature 操作を Web ブラウザで使用するには、WFS URL をコピーしてアドレス バーに貼り付け、URL の末尾に「?request=getFeature&typename=<フィーチャ タイプ>」を追加します。これにより、フィーチャ タイプ内の各フィーチャまたは行に関するすべての属性およびジオメトリ情報が返されます。
URL の例: http://gisserver.domain.com:6080/arcgis/services/wfs_services/ArcSDE_wfs/GeoDataServer/WFSServer?request=getfeature&typename=cities
フィルタの追加
リクエストにフィルタを追加して、返される結果を絞り込むこともできます。たとえば、指定した座標範囲内にあるすべての都市をリクエストすることができます。次の例では、指定した座標範囲内に 2 個の都市が位置しています。WFS サービスで利用できる他のフィルタの詳細については、「Web ブラウザでの WFS サービスとの通信」をご参照ください。
URL の例: http://gisserver.domain.com:6080/arcgis/services/wfs_services/ArcSDE_wfs/GeoDataServer/WFSServer?request=getfeature&typename=cities&BBOX=46.90,-76.21,42.12,-72.88
Data Interoperability エクステンションを使用した WFS サービスへの接続
ArcGIS Data Interoperability extension for Desktop を使用すると、ArcGIS 以外のデータ形式でデータを読み書きすることができます。ArcCatalog または ArcGIS for Desktop のカタログ ウィンドウで Interoperability Connection ツールを使用して、WFS サービスなどの Esri 以外のデータ形式に直接接続することができます。接続が確立されると、カタログ ツリーの [Interoperability Connection] エントリの下にデータ ソースが表示されます。他のデータセットと同様に、接続はコンテンツ ウィンドウに追加するか、ジオプロセシング ツールで使用することができます。ArcGIS Data Interoperability extension for Desktop を使用して WFS サービスに接続する方法の詳細は、「ArcGIS for Desktop を使用して WFS を操作する方法」をご参照ください。