WMS サービス レイヤの使用
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 サービスのケーパビリティ ファイルの <Name> タグから取得されるためです。ただし、ArcMap はコンテンツ ウィンドウや [一般] タブにレイヤ名を表示するために、ケーパビリティ ファイルのより詳細な <Title> タグを使用します。
[レイヤ] タブには、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、およびイメージ形式に関する情報も表示されます。
ArcMap での WMS レイヤのレンダリングの変更は、サービスのケーパビリティ ファイルに記載されているデフォルトのスタイルに限定されます。
OGC WMS 仕様の詳細については、OGC の Web サイト(www.opengeospatial.org/standards)をご参照ください。
コンテンツ ウィンドウのチェックボックスを使用して、サービスおよびサービス サブレイヤの表示設定のオン/オフを切り替えることができます。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 サーバがこの形式をサポートしている場合)。
使用可能なイメージ形式を選択するには、[レイヤ プロパティ] ダイアログ ボックスの [高度な設定] タブをクリックし、[レイヤのイメージ形式] ドロップダウン リストから形式を選択します。このリストには、サービスでサポートされている形式のみが表示されます。サービスでサポートされていない形式を選択することはできません。
JPEG などの透過表示をサポートしない形式を使用すると、そのレイヤでは透過表示に依存する機能が無効になります。
時系列データを視覚化すると、データを進めて、時間経過に伴って現れるパターンや傾向を確認するのに役立ちます。ArcMap、ArcGlobe、または ArcScene では、時系列データと時間の関連付けを有効にし、単純なタイム スライダを使用してそのデータを視覚化できます。タイム スライダによって、画面やグラフ内のデータが時間経過に応じて変化します。サービスが時間をサポートする場合、[レイヤ プロパティ] ダイアログ ボックスに [時間] タブが表示されます。時間の視覚化の詳細については、「タイム スライダ ウィンドウの使用」をご参照ください。
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 サービス レイヤの縮尺範囲を指定し、縮尺が非常に小さい場合はレイヤを描画しないようにすることをお勧めします。これにより、レイヤが描画できない場合に、エラー メッセージが表示されることはなくなります。