このチュートリアルでは、ArcMap を使用して WFS (Web Feature Service) サービスを ArcGIS Server に公開する方法について説明します。WFS は、インターネット上で地理フィーチャを提供するための仕様であり、 OGC (Open Geospatial Consortium, Inc.) によって公開されています。WFS ケーパビリティを有効にしてマップ サービスまたはジオデータ サービスを公開すると、ArcGIS Desktop の ArcGIS Data Interoperability エクステンション for Desktopなど、OGC 準拠の WFS クライアントからデータにアクセスできます。これらの WFS クライアントには、データに対する最新の変更も表示されます。WFS サービスを扱うのが初めてで、このチュートリアルに取り組む前に WFS サービスについて詳しく知りたい場合は、「WFS サービス」をご参照ください。
チュートリアルを始める前に
現在 ArcGIS Server をインストールしただけの状態であれば、サーバーに接続してサービスを公開する前に、いくつかの準備作業が必要です。
- ArcGIS Server サイトを構成する方法については、このヘルプ システムの「インストール後の作業」セクションをご参照ください。
- GIS リソースで参照されているデータをサーバーで利用できるようにする方法については、「データを ArcGIS Server でアクセス可能にする」をご参照ください。
ジオデータ サービスかマップ サービスかの選択
WFS サービスでは、ジオデータ サービスまたはマップ サービスのどちらかを公開の対象として選択することができます。作成するサービスのタイプを選択するときに、これらの違いを認識している必要があります。次のセクションでは、各自の要件に最適なサービスを判断するのに役立つよう、マップ サービスとジオデータ サービスで利用可能な機能をまとめます。
ジオデータ サービス
WFS ジオデータ サービスでは、インターネットまたは OGC 準拠の WFS クライアントを介してワークグループ、エンタープライズ、またはファイル ジオデータベースにアクセスできます。ジオデータ サービスから WFS サービスを作成する際には、ジオデータベース内のすべてのフィーチャクラスがサービスに公開されることに注意してください。
ジオデータ サービスは、ジオデータベースにリモートからアクセスしなければならない状況で役立ちます。たとえば、ロサンゼルス オフィスとニューヨーク オフィスでデータを管理するためにエンタープライズ ジオデータベースをセットアップする場合などです。エンタープライズ ジオデータベースを作成したら、各オフィスはジオデータ サービスを使用して、インターネット上にそのエンタープライズ ジオデータベースを公開することができます。
マップ サービス
WFS マップ サービスは、インターネットまたは OGC 準拠の WFS クライアントを通じて他のユーザーが利用できるマップ ドキュメントを表します。WFS 機能を持つマップ サービスは、サービスを通じて公開されるデータを細かく制御することができます。マップ サービスを設定する主な理由は次のとおりです。
- ジオデータ サービスとは異なり、複数のジオデータベースやシェープファイルからのデータなど、さまざまなソースからのデータを 1 つのマップ サービスに追加できます。
- マップ サービスを通じて提供されるフィーチャクラスを選択することができます。
- マップ ドキュメントでフィーチャクラスの名前を変更し、データ ソースでの実際の名前がサービスで公開されないようにすることができます。
WFS マップ サービスには制限もいくつかあります。マップ ドキュメントから WFS サービスを公開する際には、次の点に注意してください。
- マップ ドキュメントは、WFS サービスで提供されるレイヤーの仕様です。サービスの目的はデータ内のフィーチャを提供することなので、レイヤー レベルで定義されるシンボル表示、クエリ定義、フィールド エイリアスは、WFS サービスに渡されません。OGC 仕様を通じてマップのビジュアル プロパティを提供するには、WMS サービスを使用します。
- マップ内の複数のレイヤーに同じ名前を付けることはできません。
- WFS はフィーチャを操作するだけなので、マップ内のラスター レイヤーはサービスから除外されます。
- 非空間テーブルは公開されません。
- WFS サービスで編集用のトランザクション (WFS-T) をサポートするには、マップ内のすべてのレイヤーのソース データが同じワークスペース (たとえば、同じエンタープライズ ジオデータベース) に格納されている必要があります。
ArcGIS Server への WFS サービスの公開
WFS サービスを公開するには、以下の手順に従います。
- サーバーに公開するサービス タイプに基づいて、以下の表に示す指示に従います。
オプション 説明 WFS マップ サービスを公開する場合
ArcMap でマップ ドキュメントを開き、[ファイル] > [共有] > [サービス] > [サービスの公開] の順に選択し、[次へ] をクリックします。
WFS ジオデータ サービスを公開する場合
ArcCatalog または [カタログ] ウィンドウでワークグループ、エンタープライズ、またはファイル ジオデータベースを参照し、右クリックして [ジオデータ サービスとして共有] を選択します。
- [サービスとして共有] ウィンドウで [サービスを公開] を選択して [次へ] をクリックします。
[サービスを公開] ダイアログ ボックスが表示されます。
- [サービスを公開] ダイアログ ボックスで、[ArcGIS Server に接続] をクリックして、サーバーへの接続を新規に作成します。
[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 Desktop を使用したデータの ArcGIS Server への登録」をご参照ください。
- 必要に応じて、[サービス エディター] で [プレビュー] をクリックします。Web 上で WFS サービスがどのように表示されるかを確認することができます。詳細については、「マップのプレビュー」をご参照ください。
- マップ ドキュメントまたはジオデータベース内のエラーを修正したら、[公開] をクリックします。
WFS サービスの使用
公開した WFS サービスは、WFS 1.0.0、1.1.0、または 2.0.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/enterprise_wfs/MapServer/WFSServer?service=WFS&request=GetCapabilities
次の図は、GetCapabilities 操作から返されるファンクショナリティの例を示しています。
GetCapabilities は、利用可能なすべてのフィーチャクラスとテーブルのリストも返します。
DescribeFeatureType
このリクエストは、WFS サービスの 1 つ以上のフィーチャに関するフィールド情報を説明します。たとえば、フィールド名、フィールド タイプ、フィールドに許容される最小値と最大値、フィーチャクラスまたはフィーチャ テーブルのフィールドに設定されたその他の制約などがあります。
DescribeFeatureType 操作を使用するには、WFS URL をコピーしてアドレス バーに貼り付け、URL の末尾に「?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0」を追加します。フィーチャ サービスで利用できるフィーチャ タイプおよびテーブルごとに、すべてのフィールド情報が返されます。
URL の例: http://gisserver.domain.com:6080/arcgis/services/wfs_services/enterprise_wfs/MapServer/WFSServer?SERVICE=WFS&REQUEST=DescribeFeatureType&VERSION=2.0.0
フィルターの追加
URL の最後に、フィーチャ タイプまたはフィーチャ テーブルの名前とともに次のリクエストを追加することにより、フィールド情報を取得する単一のフィーチャクラスまたはフィーチャ テーブルを指定することもできます。?SERVICE=WFS&REQUEST=DescribeFeatureType&TypeName=<enter feature type here>&VERSION=2.0.0
WFS サービスで利用できる他のフィルターの詳細については、「Web ブラウザーでの WFS サービスとの通信」をご参照ください。
次の例では、DescribeFeatureType リクエストを使用して、continent という名前のフィーチャ タイプに関するフィールド情報を特定しています。
URL の例: http://gisserver.domain.com:6080/arcgis/services/wfs_services/enterprise_wfs/MapServer/WFSServer?SERVICE=WFS&REQUEST=DescribeFeatureType&typeName=Continent&VERSION=2.0.0
GetFeature
このリクエストは、WFS サービスを通じて利用可能な特定のフィーチャ タイプに関する情報を返します。
GetFeature 操作を Web ブラウザーで使用するには、WFS URL をコピーしてアドレス バーに貼り付け、URL の末尾に「?request=getFeature&typename=<フィーチャ タイプ>」を追加します。これにより、フィーチャ タイプ内の各フィーチャまたは行に関するすべての属性およびジオメトリ情報が返されます。
URL の例: http://gisserver.domain.com:6080/arcgis/services/wfs_services/enterprise_wfs/MapServer/WFSServer?service=WFS&request=GetFeature&typeName=cities
フィルターの追加
リクエストにフィルターを追加して、返される結果を絞り込むこともできます。たとえば、指定した座標範囲内にあるすべての都市をリクエストすることができます。次の例では、指定した座標範囲内に 2 つの都市が位置しています。WFS サービスで利用できる他のフィルターの詳細については、「Web ブラウザーでの WFS サービスとの通信」をご参照ください。
URL の例: http://gisserver.domain.com:6080/arcgis/services/wfs_services/enterprise_wfs/MapServer/WFSServer?service=WFS&request=GetFeature&typeName=cities&BBOX=46.90,-76.21,42.12,-72.88
Data Interoperability エクステンションを使用した WFS サービスへの接続
ArcGIS Data Interoperability エクステンション for Desktopを使用すると、ArcGIS 以外のデータ形式でデータを読み書きすることができます。ArcCatalog または ArcGIS Desktop の [カタログ] ウィンドウで Interoperability Connection ツールを使用して、WFS サービスなどの Esri 以外のデータ形式に直接接続することができます。接続が確立されると、カタログ ツリーの [Interoperability Connection] エントリの下にデータ ソースが表示されます。他のデータセットと同様に、接続は [コンテンツ] ウィンドウに追加するか、ジオプロセシング ツールで使用することができます。