WMS (Web Mapping Service) サービスは、マップ レイヤーとして ArcMap で (同様に ArcScene、ArcGlobe でも) 使用することができます。次に、WMS サービス レイヤーを操作する場合の一般的なタスクをいくつか示します。
コンテンツ ウィンドウ
ArcMap に追加された WMS サービス レイヤーは、スペースを節約するために [コンテンツ] ウィンドウで折りたたまれた状態ですが、そのエントリとグループを展開して、中に含まれている個々のレイヤーを表示することができます。
WMS サービス レイヤーは、階層形式に配置された 3 つのエントリとして [コンテンツ] ウィンドウに表示されます。最上位には、すべての WMS マップ レイヤーを包含する WMS サービスの名前があります。次のレベルには WMS グループ レイヤーがあり、WMS サブレイヤーを関連グループにまとめる役割を果たします。少なくとも 1 つの WMS グループ レイヤーが存在しますが、WMS グループ レイヤー (およびグループ内にあるグループ) の数に制限はありません。WMS グループ レイヤーはマップ レイヤーを保持しません。これは 3 つ目のグループである WMS サブレイヤーの役割です。WMS サブレイヤーには、実際のマップ レイヤーが含まれています。
サブレイヤーを結ぶ線に注目してください。この線は、サービス (グループ) レイヤーへのレイヤーの挿入や、サービス レイヤーのサブレイヤーへの分割を禁止します。
WMS サービスによっては、サービスのレイヤーで使用されるシンボルに関する凡例情報を含んでいないものがあります。凡例情報が提供されない場合、[コンテンツ] ウィンドウのレイヤーにシンボルは表示されません。[コンテンツ] ウィンドウでは、こうしたレイヤーの横に [+] 記号は表示されません。
WMS サービスに凡例情報が含まれている場合は、[コンテンツ] ウィンドウでサブレイヤーの横にある [+] 記号をクリックして、WMS サブレイヤーのシンボルを表示することができます。WMS サービスのレイヤーの凡例は、デフォルトではすべて非表示になっています。これは、WMS サービスの各レイヤーの凡例にアクセスするには、サーバーにリクエストを送信する必要があるためです。レイヤーが追加されるたびに、サーバーに追加のリクエストが送信されます。
WMS 凡例のサイズには非常にばらつきがあります。サーバーによって指定された凡例のサイズが大きすぎて、ArcMap の [コンテンツ] ウィンドウに表示されないことがあります。通常は、さまざまな種類の道路のシンボルを表示する交通機関レイヤーなど、レイヤーの凡例に複数のシンボルが含まれている場合です。WMS サービスでは、レイヤーの凡例はすべてのシンボルが含まれた 1 つの画像としてインターネット経由で送信されます。ArcMap では、[コンテンツ] ウィンドウに複数のシンボルからなる凡例を追加できますが、シンボルにつき 1 つの画像という単位で、複数の画像が含まれている必要があります。また、ArcMap では、[コンテンツ] ウィンドウに表示される画像のサイズ、高さ、幅が (ピクセル単位で) 制限されます。WMS サービスのレイヤーから取得した画像がこの制限を超える場合、そのレイヤーの凡例は表示されません。したがって、それらのレイヤーが [コンテンツ] ウィンドウに表示されても、そのシンボル、[+] 記号、[-] 記号は表示されません。使用可能な状態の WMS 凡例が [コンテンツ] ウィンドウに表示されない場合は、WMS サブレイヤーの [レイヤー プロパティ] ダイアログ ボックスにある [スタイル] タブで凡例を確認することができます。
WMS サービス レイヤーの情報の取得
サービス レイヤー プロパティの [ソース] タブには、マップ範囲、データ (サービス) タイプ、URL、サービス名、サービスのデフォルトの座標系などの情報が表示されます。
サービス サブレイヤー プロパティの [ソース] タブから各 WMS サブレイヤーの情報を取得することができます。これには、サブレイヤーの機能 (レイヤーが個別属性をサポートしているかどうか)、サブレイヤーでの凡例の使用可否、デフォルトの座標系、およびサーバーでサポートされているこのサブレイヤーの座標系が含まれます。
[レイヤー] タブには、WMS サービスのすべてのメンバーが表示されます。WMS サーバーによって提供される各 WMS レイヤーの情報は、ダイアログ ボックスの左下のボックスに表示されます。
マップを開くときに何らかの理由でサーバーへの接続が中断された場合は、[ソース] タブの [データ ソースの設定] ボタンを使用して、マップ サービス レイヤーを修復できます。レイヤーの修正が必要かどうかは、レイヤーが描画されないこと、[コンテンツ] ウィンドウでレイヤーのチェックボックスが無効であること、およびチェックボックスの横に赤い感嘆符 (!) が表示されることで判断できます。
このボタンを使用して、レイヤーに別の WMS サービスを指定することもできます。異なるサービス タイプを選択してデータ ソースを設定することはできません。たとえば、[データ ソースの設定] を使用して、WMS サービスの代わりに ArcGIS for Server マップ サービスを指定することはできません。サービス タイプを変更する場合は、WMS サービスを手動でマップから削除し、ArcGIS for Server マップ サービスを手動で追加する必要があります。
修復を要する他のサービス レイヤーのデータ ソースが同じ サーバーに配置されていても、現在のサービス レイヤーのデータ ソースのみが修復/置換されます。これらのレイヤーを別々に更新する必要があります。
WMS サービス レイヤーの表示の変更
Web マップ レイヤーの表示には、さまざまな方法で変更を反映させることができます。これには、フィーチャ シンボルの変更、レイヤーまたはレイヤーの表示設定の切り替え、サービス サブレイヤーの描画順序の変更、サービスの背景の設定、透過表示の適用、時間パラメーターに基づくサービスの視覚化 (サーバーでサポートされている場合) があります。
WMS サービスがどのように作成されているかに応じて、WMS レイヤーのレンダリングを変更できる場合があります。WMS レイヤーのレンダリングは、スタイルによって決定されます。スタイルは、WMS サービスでフィーチャを表すために使用されるシンボルと色で構成されます。WMS 仕様では、WMS レイヤーに任意の数のスタイルを含めることができます。WMS サービス サブレイヤーの [レイヤー プロパティ] ダイアログ ボックスの [スタイル] タブを使用して、使用可能なスタイルを選択することができます。
WMS サービスでスタイルがサポートされていない場合は、プレビュー ウィンドウに「凡例は利用できません。」と表示されます。ドロップダウン メニューで別のスタイルを選択すると、テキスト ボックスの情報とプレビュー ウィンドウの画像も変化します。表示されているスタイルは、どれでも必要な数だけプレビューすることができます。スタイルは、[OK] または [適用] をクリックするまでレイヤーに適用されません。[OK] または [適用] をクリックすると、ArcMap から WMS サーバーに新しいスタイルを使用して新規 GetMap リクエストが送信されます。
このタブには、特定のスタイル、凡例イメージのピクセル単位での高さと幅、凡例イメージの URL、およびイメージ形式に関する情報も表示されます。
[コンテンツ] ウィンドウのチェックボックスを使用して、サービスおよびサービス サブレイヤーの表示設定のオン/オフを切り替えることができます。WMS サブレイヤーのラベルの表示設定を切り替えることはできません。
ArcMap に WMS サービスを追加する場合、そのサービスのすべてのレイヤーをマップで表示することができます。これは、単一の WMS サブレイヤーまたは単一の WMS グループ レイヤーを追加しただけの場合でも同様です。サービス レイヤーの [コンテンツ] ウィンドウのエントリに、追加したサブレイヤーのみが表示されていても、サービス レイヤーの [レイヤー プロパティ] ダイアログ ボックスを使用すれば、サブレイヤーのリスト全体にアクセスすることができます。WMS サービス全体を追加すると、サービスの作成者が設定した描画順序に基づいて、サービス レイヤーの [コンテンツ] ウィンドウにすべてのレイヤーとグループが追加されます。WMS サービスによってはレイヤーの数が非常に多く、個々のマップというよりはデータ コレクションと呼ぶにふさわしいほどです。
[レイヤー] タブを使用すると、マップに表示する WMS サービス サブレイヤーを選択することができます。マップや [コンテンツ] ウィンドウからサブレイヤーの一部を削除したい場合は、[以下のレイヤーのみ] オプションを使用して、そのリストにそれらが追加されないようにします。また、レイヤーの表示設定や描画順序を制御することもできます。
このダイアログ ボックスの左側には、サービスのすべての WMS グループ レイヤーと WMS サブレイヤーが表示されます。このリストのレイヤーのグループ化、命名、順序付けには、この WMS サービスに含まれるデータを整理して表示するためにサービスの作成者が選択した方法が直接反映されます。これらのアイテムを変更できるのは、サービスの作成者だけです。ただし、タブの右側にある [以下のレイヤーのみ] をクリックすると、[コンテンツ] ウィンドウのエントリに含める WMS サービスのレイヤーを選択し、マップ内で特定の WMS レイヤーを追加または削除し、レイヤーの表示設定や描画順序を制御することができます。このオプションを使用する場合、サービスの公開者がレイヤーをまとめたグループは [コンテンツ] ウィンドウに反映されません。選択したレイヤーは、右側のリストに表示される場合と同様に、グループ化されていないリストとして表示されます。
描画順序を変更するには、[以下のレイヤーのみ] オプションをクリックし、WMS サブレイヤーをダイアログ ボックスの右側に移動します。これで、WMS サブレイヤーを選択し、矢印ボタンを使用して階層の上下に移動することで、描画順序を変更することができます。
手順
- [コンテンツ] ウィンドウで WMS サービス レイヤーを右クリックし、[プロパティ] をクリックします。
- [レイヤー] タブをクリックします。
- [以下のレイヤーのみ] をクリックします。
- [コンテンツ] ウィンドウに表示するレイヤーを 1 つ以上クリックします。Ctrl キーまたは Shift キーを押しながら複数の WMS サブレイヤーを選択することができます。
- 右矢印 をクリックして選択したレイヤーを追加するか、二重の右矢印 をクリックしてすべての WMS サブレイヤーを追加します。チェック マーク付きの矢印 をクリックして、表示レイヤーのみを追加することもできます。
- 左矢印 を使用して選択したレイヤーを削除するか、二重の左矢印 を使用してすべての WMS サブレイヤーを削除します。
- [OK] をクリックします。
これらの変更を適用すると、[コンテンツ] ウィンドウに更新内容が表示され、新しい描画順序がマップに反映されます。ArcMap は、新しい描画順序を説明するための新しいリクエストを WMS サーバーに送信します。
[高度な設定] タブで使用可能なオプションを使用して、サービス レイヤーの背景色を変更したり、特定の色を透明に設定したり、サービス レイヤーに透過レベルを適用したり、サーバーから受信した画像タイプを変更したりすることができます。
多くの Web マップ サービスは、複数のイメージ形式をサポートします。WMS サーバーが PNG 形式をサポートしている場合、ArcMap はデフォルトで PNG の画像をリクエストします。PNG は画像の品質が低下しない汎用の形式であり、このためデフォルトとして使用されます。PNG は、透過表示をサポートする高品質な画像を返します。ただし、ファイルのサイズは他の形式よりもかなり大きく、サーバーからのダウンロードに時間がかかる場合があります。JPEG はファイルのサイズが PNG よりかなり小さいため、多くの場合、非常に速くダウンロードできます。ただし、JPEG は透過表示をサポートしません。JPEG が適しているのは画像データのみです。たとえば、画像に基づく WMS レイヤーをベースマップとして使用している場合、JPEG は適切な選択です。[レイヤーのイメージ形式] ドロップダウン リストから JPEG を選択すると、パフォーマンスも向上します。ただし、これを選択するには、WMS サーバーが JPEG をサポートしている必要があります。他のレイヤーの上に WMS サービスをオーバーレイする場合、または使用できる最高品質の画像が必要な場合は、PNG を使用する必要があります (WMS サーバーがこの形式をサポートしている場合)。
使用可能なイメージ形式を選択するには、[レイヤー プロパティ] ダイアログ ボックスの [高度な設定] タブをクリックし、[レイヤーのイメージ形式] ドロップダウン リストから形式を選択します。このリストには、サービスでサポートされている形式のみが表示されます。サービスでサポートされていない形式を選択することはできません。
時系列データを視覚化すると、データを進めて、時間経過に伴って現れるパターンや傾向を確認するのに役立ちます。ArcMap、ArcGlobe、または ArcScene では、時系列データと時間の関連付けを有効にし、単純なタイム スライダーを使用してそのデータを視覚化できます。タイム スライダーによって、画面やグラフ内のデータが時間経過に応じて変化します。サービスが時間をサポートする場合、[レイヤー プロパティ] ダイアログ ボックスに [時間] タブが表示されます。時間の視覚化の詳細については、「タイム スライダー ウィンドウの使用」をご参照ください。
カスタム パラメーターの指定
WMS リクエストを作成するとき、ArcMap (ArcGlobe または ArcScene) は、WMS サーバーがリクエストを処理するのに必要なパラメーターだけを含めます。WMS サーバーに送信するリクエストにその他のパラメーターを含める必要がある場合があります。たとえば、WMS サーバーが、WMS サブ レイヤーに定義式を設定するのに、layerDefs のようなベンダー固有のパラメーターをサポートしている場合があります。WMS サービス レイヤーの [レイヤー プロパティ] ダイアログ ボックスの [パラメーター] タブを使用して、カスタム パラメーターを含めることができます。これらのパラメーターは、マップを描画したりマップ上のポイントを識別するために、サーバーに送信されるすべてのリクエストに含められます。
カスタム パラメーターを追加する手順
- [コンテンツ] ウィンドウで WMS サービス レイヤーを右クリックし、[プロパティ] をクリックします。
- [パラメーター] タブをクリックします。
- [] をクリックして、行を追加します
- [パラメーター] 列のセルにパラメーターの名前を指定します。
- [値] 列のセルにパラメーターの値を指定します。
- ステップ 3 ~ 5 を繰り返して、その他のパラメーターを追加します。
- [OK] をクリックします。
カスタム パラメーターを削除する手順
- [コンテンツ] ウィンドウで WMS サービス レイヤーを右クリックし、[プロパティ] をクリックします。
- [パラメーター] タブをクリックします。
- 削除するパラメーターを含む行を選択します。
- をクリックして、行を削除します。
- 削除するすべてのパラメーターに対して上記のステップ 3 ~ 4 を繰り返します。
- [OK] をクリックします。
WMS サービス レイヤー プロパティの変更
サービス レイヤーで変更することができるプロパティがいくつかあります。サービス レイヤーの名前の変更、説明の変更、表示縮尺範囲とサーバーから返されるイメージ形式の設定などです。
サービス レイヤーの名前を変更するには、[コンテンツ] ウィンドウでサービス レイヤーをクリックして新しい名前を入力するか、[レイヤー プロパティ] ダイアログ ボックスの [一般] タブを開いて新しい名前を入力します。サービスによって概要が提供される場合、[説明] テキスト ボックスには最初に概要が表示されます。WMS サービス レイヤーの説明は変更できますが、WMS サービスのグループと WMS サブレイヤーの [説明] テキスト ボックスは読み取り専用です。
サービス レイヤーで表示縮尺範囲を設定することができます。その場合、サービス レイヤーに含まれているすべてのサブレイヤーは、マップが指定された縮尺範囲内である場合にのみ描画されます。サービス レイヤーで縮尺範囲を設定すると、レイヤーのデータに不適切なマップ縮尺のリクエストがサーバーに送信されることはなくなります。縮尺範囲は、[レイヤー プロパティ] ダイアログ ボックスの [一般] タブで設定します。縮尺範囲を設定できるのは、マップ サービスのサービス レベルに限られます。サービスのサブレイヤーに対して縮尺範囲を設定することはできません。
WMS サブレイヤーをさまざまなマップ縮尺で操作する際には、注意しなければならない点がいくつかあります。
- ArcMap は、指定された縮尺で WMS サブレイヤーを正確に描画しないことがあります。これは、WMS サーバーと ArcMap では解像度が異なるためです。このため、サブレイヤーが描画されるようにマップ縮尺を調整しなければならない可能性があります。
- WMS サブレイヤーは、縮尺に依存し、特定の縮尺範囲内でしか描画されないように見えますが、サブレイヤーの [レイヤー プロパティ] ダイアログ ボックスの [一般] タブには、縮尺範囲は表示されません。縮尺範囲の表示は OGC WMS 仕様ではオプションなので、この情報を表示しない WMS サーバーもあります。このような場合、サブレイヤーは正確な縮尺範囲内で描画されますが、ArcMap は [一般] タブに縮尺範囲を表示しません。ArcMap は、WMS レイヤーの縮尺範囲を判断できず、WMS サービスから提供された情報しか表示できません。
さまざまな座標系での WMS サービス レイヤーの表示
WMS サービスを利用する際には、常にサーバーがサポートしている座標系を使用すると、最もよい結果が得られます。WMS サービスの作成者がどのように設定したかに応じて、WMS サービスは制限された座標系のみをサポートすることがあります。さらに、WMS サービスに含まれている WMS サブレイヤーはそれぞれ異なる座標系をサポートする可能性があります。他のレイヤーと同様に、WMS サービス レイヤーが新しい空のデータ フレームに追加されると、データ フレームは WMS サービスのデフォルトの座標系を使用します。
データ フレームの座標系が WMS サーバーによってサポートされていない場合、ArcMap はサーバーからサポートされている座標系 (ほとんどの場合は GCS 1984) で画像を取得し、この画像を内部的に投影してマップ上に表示します。つまり、ArcMap はこの画像をリアルタイムに投影します。データ フレームで使用される座標系によっては、WMS レイヤーの表示にある程度の歪みが生じる場合があります。レイヤーにテキストが含まれていると、歪みが目立ちやすくなります。WMS サーバーがサポートしている座標系のみを使用する利点は、WMS サーバーから返される画像を後処理して、サポートされていない座標系に合わせる必要がないことです。
詳細については、「WMS サービスの座標系の設定」をご参照ください。
WMS サービス レイヤーでのフィーチャの検索
フィーチャの個別属性の表示は WMS レイヤーに実行できる唯一の検索タスクですが、返される情報の形式はサーバーによって異なります。ArcMap は、サーバーから返された情報を、[個別属性] ウィンドウに埋め込まれた Internet Explorer コントロールに表示します。個別属性検索の結果は、フィールドと値の組み合わせ、HTML、または画像として提供されます。
OGC WMS 仕様では、WMS サービスでの <GetFeatureInfo> のサポートは必須ではありません。<GetFeatureInfo> は、ArcMap が WMS サービスのフィーチャを検索する際にサーバーに送信するリクエストです。次に示すように、サービスが個別属性の表示タスクをサポートする場合は、[個別属性] ウィンドウにサブレイヤーが表示されます。サブレイヤーが表示されない場合、その WMS サービスのフィーチャの個別属性を表示することはできません。
主フィールドの概念がないため、WMS サービス レイヤーのフィーチャを表す [個別属性] ツリーのノードは常に「WMS フィーチャ」と呼ばれます。
WMS サービス レイヤーのフィーチャを個別属性表示する際には、WMS サービス レイヤーの表示可能レイヤーのフィーチャを識別する [<表示レイヤー>] オプションを使用するか、識別対象として特定のレイヤーを選択することをお勧めします。これは、デフォルト オプション ([<最上位レイヤー>]) が期待どおりに機能しないことがあるためです。このオプションを使用してマップをクリックすると、[個別属性] は WMS サービスの描画階層の最上位にあるレイヤーのフィーチャでのみ有効となります。シェープファイルやジオデータベース フィーチャクラスなどの他のレイヤー タイプとは異なり、その場所に表示されるフィーチャがない場合、このオプションは描画階層内の下位レイヤーのフィーチャを自動的に識別しません。代わりに、NULL の結果が返されます。WMS サービスにはこのような制限があります。
さらに、個別属性の選択許容値は、ArcMap ではなく WMS サーバーによって決定されます。WMS ポイント フィーチャを個別属性表示する際には、フィーチャに十分に近づくまで繰り返しクリックしないと、意味のある結果が得られないことがあります。
サービス レイヤーを含むマップの印刷とエクスポート
サービス レイヤーを含んだマップを印刷またはエクスポートすることができます。ただし、画像ベースのサービスを操作する際の制限を理解しておく必要があります。詳細については、「サービス レイヤーを含むマップの印刷とエクスポート」をご参照ください。
WMS サーバー エラーの処理方法
特定の WMS サービスをマップに追加する際、エラー メッセージが表示されることがあります。画像に基づくライブ Web マッピング サービスと同様に、ArcMap はマップ上に WMS サービスの描画を試みる際、そのサービスを提供する WMS サーバーにリクエストを送信します。サーバーから画像ではなくエラーが返された場合、ArcMap はエラー メッセージを表示します。マップを再描画するたびに表示されるエラー メッセージは、WMS サービスに問題があることを示し、通常は ArcMap で修正することはできません。ArcMap は、これらのエラー メッセージを表示して、WMS サービスが正常に動作していないことを知らせると同時に、基本的な診断機能を提供します。ただし、WMS サービスごとにエラー メッセージの内容は大きく異なるため、ArcMap で問題を正確に見きわめることは困難です。このため、エラー メッセージは極めて汎用的なものとなり、実際の問題を特定できないことがあります。たとえば、WMS サービスの特定のレイヤーが原因の場合もあれば、レイヤーの組み合わせに含まれている 1 つのレイヤーが原因の場合もあります。
エラー メッセージが表示された場合は、[コンテンツ] ウィンドウで WMS サービスをオフにするか、マップからサービスを削除すると、エラー メッセージは表示されなくなります。場合によっては、WMS サービスのどのレイヤーが原因かを特定できることがあります。その場合には、[コンテンツ] ウィンドウでそのレイヤーを非表示にすると、エラー メッセージは表示されなくなります。
WMS サービスからエラー メッセージが表示されたからといって、マップでそのサービスを描画できないとは限りません。たとえば、一部の WMS サービスでは、非常に小さい縮尺で描画しようとすると「バウンディング ボックスに無効な領域があります」というエラーが表示されますが、サービスを描画することは可能であり、縮尺を拡大するとエラー メッセージは表示されなくなります。この場合は、[レイヤー プロパティ] ダイアログ ボックスの [一般] タブを使用して、WMS サービス レイヤーの縮尺範囲を指定し、縮尺が非常に小さい場合はレイヤーを描画しないようにすることをお勧めします。これにより、レイヤーが描画できない場合に、エラー メッセージが表示されることはなくなります。