WMS サービス

OGC(Open Geospatial Consortium)の WMS(Web Map Service)仕様は、Web で動的マップを提供し、使用するための国際仕様です。ArcGIS Server を使用して WMS サービスを作成することができます。これを実行するには、マップ サービスまたはイメージ サービスで、WMS ケーパビリティを有効にします。

マップをオンラインで公開し、さまざまなプラットフォームやクライアントに認識させたい場合には、WMS サービスが役立ちます。WMS 仕様をサポートするために構築されたクライアントは、サービスを表示して操作することができます。これまでに、v1.0.0、v1.1.0、v1.1.1、v1.3.0(最新バージョン)の 4 つのバージョンの WMS 仕様が発表されています。

クライアント アプリケーションは、サービスの URL にパラメータを追加することにより、WMS サービスを操作します。ArcGIS Server で公開された WMS サービスは、次のオペレーションをサポートします。

WMS サービスがすべてのオペレーションをサポートするとは限りませんが、少なくとも GetCapabilities および GetMap オペレーションを基本 WMS としてサポートし、オプションの GetFeatureInfo オペレーションを検索可能な WMS としてサポートしなければなりません。GetStyles および GetLegendGraphic オペレーションは共に、Styled Layer Descriptor (SLD) WMS サービスでのみ適用することができます。

WMS サービスから返されるマップは、(SVG は例外として)画像のみです。実際のデータは含まれていません。OGC 仕様に基づいてデータをベクタとして提供するには、WFS サービスを公開します。データをラスタ レイヤとして提供するには、WCS サービスを公開します。WFS サービスと WCS サービスは、どちらも ArcGIS Server を使って公開できます。

WMS サービスの詳細については、OGC の Web サイトをご参照ください。また、ArcGIS での OGC サービスのサポートについて説明する「Support for ISO and OGC Standards」ページもご参照ください。

ArcGIS Server での WMS サービスの公開

ArcGIS Server を使って WMS サービスを公開する方法は次の 2 つです。

サービスの公開には ArcGIS Server Manager または ArcCatalog を使用することができます。詳細については「GIS リソースのサーバへの公開について」をご参照ください。

マップまたはイメージ サービスを公開する際には、[ケーパビリティ] リストでチェックボックスをオンにすることにより、WMS ケーパビリティを有効にする必要があります。

注意:

WMS サービスを作成する手順の詳細については、「チュートリアル:WMS サービスの公開」をご参照ください。

WMS サービスのプロパティの構成

WMS サービスのプロパティは、サービスの利用者がサービスの公開者への理解を深めることができるよう、ケーパビリティ ファイルに反映されます。システムによって生成されたケーパビリティ ファイルで WMS サービスを公開する際には(デフォルト)、[Name]、[Title]、[OnlineResource] 以外の WMS サービス プロパティを設定することをお勧めします。[Name] および [Title] サービス プロパティには、WMS とマップ サービスまたはイメージ サービスの名前がすでに入力されており、[OnlineResource] には WMS サービスの URL があらかじめ入力されています。ほとんどの場合、これら 3 つのプロパティを変更する必要はありません。

WMS サービスのプロパティを設定または変更する手順は次のとおりです。

  1. 親のマップ サービスまたはイメージ サービスを停止します。
  2. [サービス プロパティ] を開いて [ケーパビリティ] タブをクリックします。
  3. ケーパビリティのリストで [WMS] を探します。チェックボックスがオンになっていることを確認し、[WMS] のテキスト部分をクリックします(チェックボックスをオフにしないよう注意してください)。一部のプロパティが表示されます。
  4. [以下にサービス プロパティを入力] を選択します。このオプションを選択すると、サービスはシステムによって生成されたケーパビリティ ファイルを使用するようになります。
  5. サービスのプロパティを適切に変更します。
  6. 親のマップ サービスまたはイメージ サービスを開始します。
注意注意:

WMS クライアントが WMS サービスと正しくやり取りするためには、[OnlineResource] フィールドが必要です。通常、OnlineResource フィールドの値は URL であり、[ケーパビリティ] タブの [Web アクセス] ボックスに表示されます。

SLD パスまたは URL の構成

SLD を使用すると、WMS レイヤごとに複数のスタイルを公開することができます。SLD ファイルを現在の WMS サービスにバインドする場合は、SLD パスまたは URL プロパティを URL、UNC パス、SLD MXL ファイルの物理的な位置のいずれかに設定する必要があります。SLD の操作の詳細

注意注意:

UNC パスおよび物理的な位置は、SLD XML ファイルを正しく読み取るために、ArcGIS Server の SOC アカウントからアクセスできる必要があります。

ListSupportedCRS パラメータの構成

ListSupportedCRS パラメータは、WMS サービスに空間参照系(EPSG:4267 など)を追加するために使用されます。デフォルトでは、WMS は 2 つの空間参照系(EPSG:4326または、WMS 1.3.0 の場合は CSR:84)と、WMS が有効になっているマップ サービスの空間参照)だけをリストします。ListSupportedCRS パラメータを使用すると、その他の空間参照を指定することによって、より多くの再投影オプションを WMS クライアントに提供できます。

ArcCatalog または ArcGIS Server Manager で WMS サービスを構成する際、ListSupportedCRS パラメータはサービス プロパティとしてリストされません。ListSupportedCRS パラメータを WMS サービスに追加するには、WMS を有効にしたマップ サービスのサービス構成ファイル(*.cfg)を編集する必要があります。

構成ファイルの編集は以下の手順で行います。

  1. ArcGIS Server Object Manager(SOM)プロセスを停止します。
  2. マップ サービスのサービス構成ファイル(*.cfg)をテキスト エディタで開きます。
  3. WMS 固有のセクションを特定します。
  4. <Properties> エレメント内に ListSupportedCRS パラメータを追加します。
    ...
    <Extension>
    	<TypeName>WMSServer</TypeName>
    	<Enabled>true</Enabled>
    	<Properties>
    		<!-- other properties and metadata items -->
    		<CustomGetCapabilities>false</CustomGetCapabilities>
    		<ListSupportedCRS>EPSG:4267</ListSupportedCRS>
    	</Properties>
    	<Info>
    		<WebEnabled>true</WebEnabled>
    		<WebCapabilities></WebCapabilities>
    	</Info>
    </Extension>
    ...
  5. 編集内容を保存し、サービス構成ファイル(*.cfg)を閉じます。
  6. ArcGIS Server Object Manager(SOM)プロセスを再起動します。

ListSupportedCRS パラメータ内に複数の空間参照系をリストするには、空間参照系をカンマ(,)で区切ります。たとえば、次のような場合です。

<ListSupportedCRS>EPSG:4267,EPSG:4269,EPSG:102113</ListSupportedCRS>

注意注意:

ListSupportedCRS パラメータを構成する際には、EPSG 名前空間(EPSG など)と EPSG ID(4267 など)をコロン(:)で区切って指定する必要があります。このように指定しないと、空間参照がサーバに認識されません。

サービス プロパティ内の特殊文字

次に示した文字は、いずれのサービス プロパティにも含めることはできません。&, <, >, ", '. こうした文字を使用する場合、次に示した表の適切なエスケープ文字列で置換する必要があります。

&

&amp;

<

&lt;

>

&gt;

"

&quot;

'

&apos;

レイヤ名の表示

サービス プロパティを変更する際、チェックボックスをオンにして、マップ ドキュメント内のレイヤ名を使用することができます。この操作を実行すると、レイヤ名は、マップ ドキュメントのコンテンツ ウィンドウ内で使用されているものと同様の文字列で表示されます。デフォルトのオフのチェックボックスは、レイヤが 0 から始まる整数で表されることを意味しており、その整数はコンテンツ ウィンドウ内にトップダウン式に表示されたレイヤの位置を示します。

注意注意:

マップ ドキュメント内のレイヤ名を使用するには、マップ内のすべてのレイヤ名は一意でなければなりません。レイヤ名には次に示す文字を含めることはできません: &、<、>、"、'

WMS サービスのセキュリティ

ArcGIS Server WMS サービスのセキュリティは、その親のマップ サービスまたはイメージ サービスのセキュリティを制御することにより管理されます。Planners などの特定のロールに対してマップへのアクセスが拒否された場合、Planners は、SOAP、REST(Representational State Transfer)、または OGC(WMS など)のどのインタフェースを使用したとしても、マップにアクセスできなくなります。ArcGIS Server は、HTTP ベースの認証(基本およびダイジェスト)、Windows 統合認証、ArcGIS Server によって管理されるトークンベースの認証など、さまざまな認証方式をサポートしています。

HTTP 認証と Windows 統合認証

WMS インタフェース経由でのアクセスが想定されるサービスについては、HTTP 基本認証、HTTP ダイジェスト認証、Windows 統合認証のいずれかを使って保護する必要があります。ほとんどの WMS クライアント(非 Esri および Esri クライアント)は、広く使用されているこれらの標準認証方式を理解し、それらに対応します。

ArcGIS Server によって管理されるトークンベース認証

親のマップ サービスまたはイメージ サービスにおいて ArcGIS Server によって管理されるトークンベースの認証を使用することにより、WMS サービスを保護することもできます(ただし、推奨されていません)。トークンによって保護された WMS サービスにリクエストを直接送信する場合、トークン サービスから有効なトークンを取得し、トークン文字列を追加のパラメータとしてリクエストを送信することができます。つまり、トークンで保護された WMS サービスへのリクエストには、次の形式を使用しなければなりません。http://<WMS サービスの URL>?<標準 WMS パラメータ>&token=<有効なトークン文字列>ほとんどのサードパーティ WMS クライアントは、この方法で保護された WMS サービスにアクセスできません。しかし、この手法は JavaScript 用、Flex 用、および Silverlight 用の ArcGIS API を介して構築した WMS クライアントには使用することができます。

WMS サービスの使用

WMS サービスに接続するには、その URL を知っている必要があります。ArcGIS Server で公開された WMS サービスの URL の形式は次のとおりです。

http://<Web サーバのコンピュータ名>/<ArcGIS Server のインスタンス名>/services/<フォルダ名(必要に応じて)>/<サービス名>/<サービス タイプ(MapServer または ImageServer)>/WMSServer?

マップ サービスとイメージ サービスの両方で WMS ケーパビリティが有効になっていることに注意してください。サービス タイプに対して 2 つのオプションがあるのはこのためです。

たとえば、Japan というフォルダに Tokyo という WMS サービスが含まれていて、myServer というコンピュータの「arcgis」というデフォルト名のインスタンスで実行されている場合、この WMS サービスの URL は次のようになります。

http://myServer/arcgis/services/Japan/Tokyo/MapServer/WMSServer?

myServer というコンピュータの PublicLands という名前のインスタンスで IdahoImages という名前のイメージ サービスが実行されている場合、WMS サービスの URL は次のようになります。

http://myServer/PublicLands/services/IdahoImages/ImageServer/WMSServer?

一般的な WMS クライアント

WMS サービスの最も単純なクライアントは Web ブラウザです。WMS リクエストは HTTP を通じて送信することができ、レスポンスまたは例外はブラウザを通じて返されます。WMS サービスは、GetCapabilities、GetMap、GetFeatureInfo、GetStyles、GetLegendGraphic の複数のオペレーションをサポートします。クライアントは URL のパラメータを通じてこれらのオペレーションを呼び出し、WMS サービスからメタデータ、マップ、フィーチャ情報、シンボル、凡例シンボルを取得することができます。これらのオペレーションとパラメータは、OGC WMS 仕様書に詳しく記載されています。

Esri の WMS クライアントには、ArcGIS Desktop(ArcCatalog および ArcMap)、ArcGIS Explorer、ArcGIS Server Web ADF(Application Developer Framework)for .NET、ArcGIS Server Web ADF for Java、Esri ArcGIS Server Geoportal Map Viewer があります。

WMS サービスの凡例情報の表示

WMS サービスは、サービスのレイヤのシンボルに関する情報を返すように設定することができます。クライアントは、この情報を利用して凡例を構築することができます。デフォルトでは、ArcGIS Server を使用して公開する WMS サービスは、凡例情報を返すことができるように設定されています。これは、WMS サービスのケーパビリティ ファイルを使用して変更することができます。

ArcMap および Manager で構築した Web マッピング アプリケーションは、どちらも WMS サービスの凡例情報を表示することができます。

  • ArcMap で、コンテンツ ウィンドウ内のレイヤを右クリックし、[WMS 凡例をマップに追加] をクリックします。凡例情報がマップ上に表示されます。
  • Web マッピング アプリケーションで、コンテンツ ウィンドウ内のレイヤを展開することによって、個々のレイヤの凡例スウォッチが表示されます。

7/10/2012