チュートリアル: WFS サービスの公開
このチュートリアルでは、ArcGIS Server Manager を使用して、読み取り専用アクセスで WFS サービスを公開する方法を示します。WFS ケーパビリティを有効にしてマップ サービスまたはジオデータ サービスを公開すると、ArcCatalog や ArcMap の Data Interoperability Extension など、OGC 準拠の WFS クライアントからデータにアクセスできます。これらの WFS クライアントには、データに対する最新の変更も表示されます。WFS サービスを扱うのが初めてで、このチュートリアルに取り組む前に WFS について詳しく知りたい場合は、「WFS サービス」をご参照ください。
ArcGIS Server をインストールしたばかりの場合は、Manager にログインしたりサービスを公開したりする前に、準備作業を行う必要があります。準備作業については、ヘルプ システムの「インストール後の作業」セクションをご参照ください。
サービスの公開に必要な設定
マップ サービスまたはジオデータ サービスを作成するためには、マップ ドキュメント(*.mxd)、ジオデータベース(ファイルまたはパーソナル)、または SDE 接続ファイルを、GIS サーバ内のすべての SOC(Server Object Container)コンピュータから参照可能な共有ディレクトリに配置する必要があります。また、ポスト インストールで作成した SOC アカウントに対し、マップ ドキュメントとマップ ドキュメントが参照するすべてのデータ(マップ サービス)、または公開するジオデータベース内のすべてのデータ(ジオデータ サービス)の読み取り権限を割り当てる必要もあります。
ジオデータ サービスかマップ サービスかの選択
WFS サービスでは、ジオデータ サービスを公開するかマップ サービスを公開するかを選択できます。作成するサービスのタイプを選択するとき、これらの違いを認識している必要があります。次のセクションでは、各自の要件に最適なサービスを判断するのに役立つよう、ジオデータ サービスとマップ サービスで利用可能な機能をまとめます。
ジオデータ サービス
WFS ジオデータ サービスでは、インターネットまたは OGC 準拠の WFS クライアントを通じてジオデータベースにアクセスできます。ジオデータ サービスは、ArcSDE ジオデータベース、パーソナル ジオデータベース、ファイル ジオデータベースをはじめとするあらゆる種類のジオデータベースを対象に作成することができます。ジオデータ サービスから WFS サービスを作成する際には、ジオデータベース内のすべてのフィーチャクラスがサービスに公開されることに注意してください。
ジオデータ サービスは、ジオデータベースにリモートからアクセスする必要がある状況で役立ちます。たとえば、東京と大阪のオフィスでデータを管理するための ArcSDE ジオデータベースをセットアップするとします。ArcSDE ジオデータベースを作成した後、各オフィスはジオデータ サービスを使用して、インターネット上にジオデータベースを公開することができます。
マップ サービス
WFS マップ サービスは、インターネットまたは OGC 準拠の WFS クライアントを通じて利用できるマップ ドキュメント(*.mxd)を表します。WFS 機能を持つマップ サービスを使用すると、サービスを通じて公開されるデータを細かく制御することができます。マップ サービスをセットアップする主な理由は次のとおりです。
- ジオデータ サービスとは異なり、複数のジオデータベース(パーソナル、ファイル、および ArcSDE)からのデータを含め、1 つのマップ サービスにさまざまなソースからのデータを追加できます。
- マップ サービスを通じて、どのフィーチャクラスが提供されるかを選択することができます。
- マップ ドキュメントでフィーチャクラスの名前を変更して、データ ソースでの実際の名前がサービスで公開されないようにすることができます。
WFS マップ サービスには制限もいくつかあります。マップ ドキュメントから WFS サービスを公開する際には、次の点に注意してください。
- マップ ドキュメントは、WFS サービスで提供されるレイヤの仕様にすぎません。サービスの目的はデータ内のフィーチャを提供することであるため、レイヤ レベルで定義されるシンボル表示、クエリ定義、およびフィールド エイリアスは、WFS サービスに渡されません。OGC 仕様を通じてマップの表示プロパティを提供するには、WMS サービスを使用します。
- マップ内の複数のレイヤは同じフィーチャクラスを参照することはできません。
- マップ内の複数のレイヤに同じ名前を付けることはできません。
- WFS はフィーチャを操作するだけであるため、マップ内のラスタ レイヤはサービスから除外されます。
- 非空間テーブルは公開されません。
- WFS サービスで編集用のトランザクション(WFS-T)をサポートするには、マップ内のすべてのレイヤのソース データが同じワークスペース(たとえば同じ ArcSDE ジオデータベース)に格納されている必要があります。
WFS サービスの公開
次の手順に従って、ジオデータ サービスまたはマップ サービスを作成します。
- [サービス] タブで、[GIS リソースの公開] をクリックします。
- [リソース] ドロップダウン リストを使用して、公開するマップ ドキュメント(*.mxd)またはジオデータベース(パーソナル、ファイル、あるいは SDE 接続ファイル(*.sde))を選択します。
- [名前] ボックスにサービスの名前を入力します。120 文字を超える名前を使用することはできません。英数字およびアンダースコア(_)のみ使用することができます。
-
サービスを公開するためのフォルダは、次の 3 つから選択できます。
- ドロップダウン メニューを使用して、既存のフォルダを選択します。
- 新しいフォルダを作成します。
- デフォルト フォルダを使用して、ルート フォルダに公開します。
- [WFS] を選択してサービスのケーパビリティを有効にしてから、[次へ] をクリックします。
- 作成するサービスに関する情報を確認します。[完了] をクリックしてサービスを作成します。
WFS ケーパビリティが有効になっていない既存のサービスがある場合は、次の手順に従ってケーパビリティを有効にします。
- サービスの [状態] が [開始] に設定されている可能性があります。サービスの設定を変更するには、サービスを停止する必要があります。状態が [開始] である場合は、サービスの横にあるチェックボックスをオンにしてから [停止] ボタンをクリックします。
- サービスの [編集] オプションをクリックします。これにより、ケーパビリティを含め、サービスのプロパティを編集できるようになります。
- [ケーパビリティ] タブをクリックします。
- [WFS] チェックボックスをオンにします。
- [OK] をクリックしてケーパビリティを有効にします。
WFS サービスの URL を取得する方法
- ArcGIS Server Manager の [サービス] タブで、[サービスの管理] をクリックします。
- [場所] ドロップダウン矢印をクリックし、公開されているサービスが格納されているサービス フォルダを選択します。
- サービスの [状態] が [開始] に設定されていることを確認します。状態が [停止] と表示されている場合は、サービスの横にあるチェックボックスをオンにしてから [開始] ボタンをクリックします。
- WFS サービスの URL を取得するには、[編集] アイコンをクリックして、プロパティ ダイアログ ボックスを開きます。
- プロパティ ダイアログ ボックスで [ケーパビリティ] タブを選択します。
- [ケーパビリティを選択し構成する] パネルで、[WFS] オプションをハイライト表示にします。これにより、WFS サービスのプロパティが表示されます。
- WFS サービスの URL は、[Web アクセス] パネルに表示されています。これは、公開した WFS サービスにユーザが接続するために使用する URL です。
WFS クライアントによる公開されたデータの操作
公開した WFS サービスは、Web ブラウザをはじめとして、WFS 1.1 および GML の Simple Features プロファイルをサポートする任意のクライアントで利用することができます。また、WFS サービスの操作に ArcCatalog と ArcMap の Data Interoperability Extension を使用することもできます。次のセクションでは、Web ブラウザと ArcCatalog の Data Interoperability Extension を使って WFS サービスにアクセスする方法を示します。
Web ブラウザを使用した WFS サービスへの接続
WFS サービスの最も単純なクライアントの 1 つは Web ブラウザです。HTTP 経由で情報をリクエストすることができ、レスポンスや例外はブラウザを通じて返されます。
サービスに接続するには、WFS の URL を知っている必要があります。この URL は、ArcGIS Server Manager または ArcCatalog の [ケーパビリティ] タブにあるサービスの [プロパティ] で確認できます。URL がわかり次第、OGC 規格の操作を使用して、HTTP 経由でサービスに関する情報をリクエストできます。情報をリクエストするために使用できる操作の例を以下に示します。
GetCapabilities
このリクエストは、サービスを通じて利用できるすべてのフィーチャ タイプと機能を GML 形式で返します。Web ブラウザで GetCapabilities 操作を使用するには、WFS の URL をコピーしてアドレス バーに貼り付け、末尾に「?request=getCapabilities」を追加します。
URL の例: http://bobmk/arcgis/services/wfs_services/ArcSDE_wfs/GeoDataServer/WFSServer?request=getcapabilities
次の図は、GetCapabilities 操作から返される機能の例を示しています。
GetCapabilities は、利用可能なすべてのフィーチャクラスとテーブルのリストも返します。
DescribeFeatureType
このリクエストは、WFS サービスの 1 つ以上のフィーチャに関するフィールド情報を説明します。たとえば、フィールド名、フィールド タイプ、フィールドに許容される最小値と最大値、フィーチャクラスまたはフィーチャ テーブルのフィールドに設定されたその他の制約などがあります。
DescribeFeatureType 操作を Web ブラウザで使用するには、WFS URL をコピーしてアドレス バーに貼り付け、URL の末尾に「?SERVICE=WFS&VERSION=1.1.0&REQUEST=DescribeFeatureType&VERSION=1.1.0」を追加します。これにより、フィーチャ サービスで利用可能な各フィーチャ タイプとフィーチャ テーブルに関するフィールド情報がすべて返されます。
URL の例: http://bobmk/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
次の例では、DescribeFeatureType リクエストを使用して、cities という名前のフィーチャ タイプに関するフィールド情報を特定しています。
URL の例: http://bobmk/arcgis/services/wfs_services/ArcSDE_wfs/GeoDataServer/WFSServer?SERVICE=WFS&VERSION=1.1.0&REQUEST=DescribeFeatureType&TypeName=cities&VERSION=1.1.0
GetFeature
このリクエストは、WFS サービスを通じて利用可能な特定のフィーチャ タイプに関する情報を返します。さらに、フィルタを使って返される情報を絞り込むこともできます。WFS サービスで利用可能なさまざまなフィルタの詳細については、「WFS サービス」をご参照ください。
GetFeature 操作を Web ブラウザで使用するには、WFS URL をコピーしてアドレス バーに貼り付け、URL の末尾に「?request=getFeature&typename=<フィーチャ タイプ>」を追加します。これにより、フィーチャ タイプ内の各フィーチャまたは行に関するすべての属性およびジオメトリ情報が返されます。
URL の例: http://bobmk/arcgis/services/wfs_services/ArcSDE_wfs/GeoDataServer/WFSServer?request=getfeature&typename=cities
リクエストにフィルタを追加して、返される結果を絞り込むこともできます。たとえば、指定した座標範囲内にあるすべての都市をリクエストできます。次の例では、指定した座標範囲内に 15 個の都市が位置しています。
URL の例: http://bobmk/arcgis/services/wfs_services/ArcSDE_wfs/GeoDataServer/WFSServer?request=getfeature&typename=cities&BBOX=46.90,-76.21,42.12,-72.88
Data Interoperability Extension を使用した WFS サービスへの接続
Data Interoperability Extension を使用すると、ArcGIS 以外のデータ形式でデータを読み書きすることができます。ArcCatalog にある Interoperability Connection ツールを使用して、WFS サービスを含め、Esri 以外のデータ形式に直接接続することができます。接続が確立されると、カタログ ツリーの [Interoperability Connection] エントリの下にデータ ソースが表示されます。他のデータセットと同様に、接続は ArcMap に追加するか、ジオプロセシング ツールで使用することができます。Data Interoperability Extension を使用して WFS サービスに接続する方法の詳細については、「ArcGIS Desktop を使用して WFS を操作する方法」をご参照ください。