OGC (Open Geospatial Consortium) の WMS (Web Map Service) 仕様は、Web で動的マップを提供し、使用するための国際仕様です。ArcGIS Desktop でマップまたはイメージ サービスを公開するときに WMS ケーパビリティを有効にすることで、WMS サービスを ArcGIS for Server で公開できます。
マップをオンラインで公開し、さまざまなプラットフォームやクライアントに認識させたい場合には、WMS サービスが役立ちます。WMS 仕様をサポートするために構築されたクライアントは、サービスを表示して操作することができます。これまでに、 v1.0.0、v1.1.0、v1.1.1、v1.3.0 (最新バージョン) の 4 つのバージョンの WMS 仕様が発表されています。
クライアント アプリケーションは、サービスの URL にパラメーターを追加することにより、WMS サービスを操作します。ArcGIS Server で公開された WMS サービスは、次のオペレーションをサポートします。
- サービスに関するメタデータのリクエスト (GetCapabilities)
- マップ イメージのリクエスト (GetMap)
- マップ内のフィーチャに関する情報のリクエスト (GetFeatureInfo (オプション))
- ユーザー定義スタイルのリクエスト (GetStyles)
- 凡例シンボルのリクエスト (GetLegendGraphic)
WMS サービスがすべてのオペレーションをサポートするとは限りませんが、少なくとも GetCapabilities および GetMap オペレーションを基本 WMS としてサポートし、オプションの GetFeatureInfo オペレーションを検索可能な WMS としてサポートしなければなりません。GetStyles および GetLegendGraphic オペレーションは共に、Styled Layer Descriptor (SLD) WMS サービスでのみ適用することができます。
WMS サービスが返すマップ イメージには実際のデータが含まれていませんが、GetFeatureInfo 操作によって属性のリクエストを実行できます。OGC 仕様に基づいてデータをベクターとして提供するには、WFS サービスを公開します。データをラスター レイヤーとして提供するには、WCS サービスを公開します。WMS サービスの詳細については、OGC の Web サイトをご参照ください。
WMS サービスの公開
WMS サービスを公開するには、次の 2 つの方法があります。
- WMS ケーパビリティを有効にしてマップ サービスを公開します。マップ サービスを公開するには、まず、マップ ドキュメントを作成する必要があります。
- WMS ケーパビリティを有効にしてイメージ サービスを公開します。イメージ サービスを公開するには、ラスター データセットもしくはモザイク データセットのどちらか、あるいは、ラスター データセットもしくはモザイク データセットを参照するレイヤー ファイルのいずれかが必要です。
マップ サービスまたはイメージ サービスを公開するときに、サービス エディターの [ケーパビリティ] タブで [WMS] チェックボックスをオンにして、WMS ケーパビリティを有効にします。WMS サービスを作成する手順の詳細については、「チュートリアル: WMS サービスの公開」をご参照ください。
マップ内のレイヤーの数は、WMS サービスの最初の作成、または停止されているサービスの開始にかかる時間に直接影響します。サービス内のレイヤーを削除または統合することにより、開始時間を短縮できることがあります。
WMS サービスは、使用可能なマップ サービスがあれば利用することができます。マップ サービスは、サービスの元の投影、レイヤーの順序、レイヤーの表示をリクエストする際にのみ使用されます。キャッシュ タイルは、クライアントがリクエストした縮尺に合わせてリサンプリングされますが、それには処理時間がかかり、画像の品質が低下します。WMS サービスに、キャッシュを使用しないと動的な描画に時間がかかる多くのレイヤーまたは高度なシンボル表示がある場合に、キャッシュを使用する利点が最もよく発揮されます。少数のレイヤーと単純なシンボルのみの場合には、キャッシュを使用しないほうがパフォーマンスが向上します。
イメージ サービスが、複数のラスター関数テンプレートを使用して構成されている場合、これらのラスター関数テンプレートには、WMS のサブレイヤーを介してアクセスできます。イメージ サービスが、多次元モザイク データセットをベースとしている場合、多次元モザイク データセットに定義されている変数には、WMS のサブレイヤーを介してアクセスできます。
注意:
WMS サービスは、マップ サービス キャッシュのみ使用できます。イメージ サービス キャッシュはサポートされていません。
キャッシュされていない地域にユーザーがアクセスする場合、WMS サービスをオンデマンド キャッシュのマップ サービスで表示すると、キャッシュ内でタイルが作成されます。
WMS がモザイク データセットに基づく ArcGIS for Server のイメージ サービスから作成されている場合、クライアントはデータセットの特定のラスターを検索できます。この場合、WMS の GetMap リクエストに IMAGES パラメーターを追加します。たとえば、IMAGES=1,2 と指定すると、イメージ サービスのカタログ テーブルでオブジェクト ID が 1 および 2 の画像がリクエストされます。
WMS サービスのプロパティの構成
WMS サービスのプロパティは、サービスの利用者がサービスの公開者への理解を深めることができるよう、ケーパビリティ ファイルに反映されます。システムによって生成されたケーパビリティ ファイルで WMS サービスを公開する際には (デフォルト)、WMS サービス プロパティを設定することをお勧めします。設定できる各 WMS サービス プロパティの詳細については、「利用可能な WMS サービス プロパティ」をご参照ください。また、WMS サービス プロパティの設定場所にアクセスする手順については、以下のトピックをご参照ください。
WMS サービスでサポートされているオペレーションの構成
ArcGIS Server Manager および ArcGIS Desktop で、許可されている WMS サービスのオペレーションを制御できます。たとえば、個々のフィーチャ情報へのアクセスを制限する必要がある場合は、[GetFeatureInfo] オプションをオフにします。これによって、フィーチャ情報にアクセスするリクエストはすべて拒否されます。
デフォルトでは、サービスに対してすべてのオペレーションが有効になっています。使用できるオペレーションは次のとおりです。
- GetCapabilities - GetCapabilities リクエストへの応答として、ケーパビリティ情報をクライアントに返します。
- GetFeatureInfo - GetFeatureInfo リクエストへの応答として、フィーチャをクライアントに返します。
- GetLegendGraphic - GetLegendGraphic リクエストへの応答として、凡例画像をクライアントに返します。
- GetMap - GetMap リクエストへの応答として、マップ画像をクライアントに返します。
- GetSchemaExtension - GetSchemaExtension リクエストへの応答として、スキーマをクライアントに返します。
- GetStyles - GetStyles リクエストへの応答として、使用可能なスタイル情報をクライアントに返します。
注意:
OGC WMS に完全に準拠するには、(少なくとも) GetCapabilities オペレーションおよび GetMap オペレーションを有効化します。
外部ケーパビリティ ファイルを使用した WMS プロパティの設定
メタデータを定義するもう 1 つの方法は、外部のケーパビリティ ファイルを使用することです。この方法では、デフォルト以外のフィーチャ タイプの投影法を追加できます。デフォルトでは、レイヤーまたはフィーチャクラスの座標系と WGS84 (EPSG 4326) が含まれます。詳細については、「WMS サービスでの外部ケーパビリティ ファイルの使用」をご参照ください。
WMS サービスのセキュリティ
ArcGIS Server WMS サービスのセキュリティは、その親のマップ サービスまたはイメージ サービスのセキュリティを制御することにより管理されます。Planners などの特定のロールに対してマップへのアクセスが拒否された場合、Planners は、SOAP、REST (Representational State Transfer)、または OGC (WMS など) のどのインターフェイスを使用したとしても、マップにアクセスできなくなります。ArcGIS Server は、HTTP ベースの認証 (基本およびダイジェスト)、統合 Windows 認証、ArcGIS for Server によって管理されるトークンベースの認証など、さまざまな認証方式をサポートしています。
統合 Windows 認証
WMS インターフェイス経由でのアクセスが想定されるサービスについては、HTTP 基本認証、HTTP ダイジェスト認証、統合 Windows 認証のいずれかを使って保護する必要があります。ほとんどの WMS クライアント (Esri および非 Esri クライアント) は、広く使用されているこれらの標準認証方式を理解し、それらに対応します。
ArcGIS Server によって管理されるトークンベース認証
親のマップ サービスまたはイメージ サービスにおいて ArcGIS Server によって管理されるトークンベースの認証を使用することにより、WMS サービスを保護することもできます (ただし、推奨されていません)。トークンによって保護された WMS サービスにリクエストを直接送信する場合、トークン サービスから有効なトークンを取得し、トークン文字列を追加のパラメーターとしてリクエストを送信することができます。つまり、トークンで保護された WMS サービスへのリクエストには、次の形式を使用しなければなりません。
http://<WMS_service_url>?<standard WMS parameters>&token=<valid_tokenString>
ほとんどのサードパーティ WMS クライアントは、この方法で保護された WMS サービスにアクセスできません。しかし、この手法は ArcGIS API for JavaScript を使用して構築した WMS クライアントには使用することができます。
WMS サービスの使用
WMS サービスに接続するには、その URL を知っている必要があります。ArcGIS for Server で公開された WMS サービスの URL の形式は次のとおりです。
http://gisserver.domain.com:6080/arcgis/services/folder/service/service type(can be MapServer or ImageServer)/WMSServer?
マップ サービスとイメージ サービスの両方で WMS ケーパビリティが有効になっていることに注意してください。サービス タイプに対して 2 つのオプションがあるのはこのためです。
たとえば、「Japan」というフォルダーに含まれている「Tokyo」というマップ サービスが「gisserver」というサーバー上のポート番号 6080 で実行されている場合、この WMS サービスの URL は次のようになります。
http://gisserver:6080/arcgis/services/Japan/Tokyo/MapServer/WMSServer?
イメージ サービス IdahoImages が myServer サーバーのポート番号 6080 で実行されている場合、WMS サービスの URL は次のようになります。
http://gisserver:6080/arcgis/services/IdahoImages/ImageServer/WMSServer?
一般的な WMS クライアント
WMS サービスの最も単純なクライアントは Web ブラウザーです。WMS リクエストは HTTP を通じて送信することができ、レスポンスまたは例外はブラウザーを通じて返されます。WMS サービスは、複数のオペレーション、つまり、GetCapabilities、GetMap、GetFeatureInfo、GetStyles、GetLegendGraphic をサポートできます。クライアントは URL のパラメーターを通じてこれらのオペレーションを呼び出し、WMS サービスからメタデータ、マップ、フィーチャ情報、シンボル、凡例シンボルを取得することができます。これらのオペレーションとパラメーターの詳細については、OGC WMS 仕様をご参照ください。
WMS サービスの凡例情報の表示
WMS サービスは、サービスのレイヤーのシンボルに関する情報を返すように設定することができます。クライアントは、この情報を利用して凡例を構築することができます。デフォルトでは、ArcGIS for Server で公開する WMS サービスは、凡例情報を返すことができるように設定されています。この設定は、[マップ ドキュメントからレイヤー名を使用する] プロパティを使用して無効にできます。詳細については、「利用可能な WMS サービス プロパティ」をご参照ください。
ヒント:
ArcMap で WMS レイヤーの凡例情報を表示するには、[コンテンツ] ウィンドウでレイヤーを右クリックして、[WMS 凡例をマップに追加] を選択します。