20. OGC / ISOプロトコルで作業する
Open Geospatial Consortium (OGC)は世界中の300以上の企業、政府、非営利団体、研究組織が集まった国際的組織です。ここのメンバーは地理空間コンテンツとサービス、GISデータの解析と交換のための標準の開発と実装を行っています。
Describing a basic data model for geographic features, an increasing number of specifications are developed by OGC to serve specific needs for interoperable location and geospatial technology, including GIS. Further information can be found at https://www.ogc.org/.
QGISでサポートされている重要なOGC仕様は以下のとおりです。
WMS --- Web地図サービス (WMS/WMTS クライアント)
WMTS --- Web 地図タイルサービス (WMS/WMTS クライアント)
WFS --- Web 地物サービス (WFS および WFS-T クライアント)
WFS-T --- Web 地物サービス - トランザクション的 (WFS および WFS-T クライアント)
WCS --- Web カバレッジサービス (WCS クライアント)
WPS ---ウェブ処理サービス
CSW ---ウェブのためのカタログサービス
SFS --- 単純地物for SQL (PostGISレイヤ)
GML --- 地理情報記述言語
OGCサービスは、異なるGISの実装とデータストアとの間の地理空間データを交換するためにますます使用されています。QGISは SFS (PostgreSQL/PostGISのデータプロバイダーのサポートにより、 PostGISレイヤ のセクションを参照)され、クライアントとして上記の仕様に対処できます。
QGISサーバ 、UMN MapServer、またはGeoServerがインストールされたWebサーバを使用すれば、WMS、WMTS、WFS、WFS-T、およびWCSプロトコルを介して地図とデータを共有できます。
20.1. WMS/WMTS クライアント
20.1.1. WMS サポート概要
QGISは現在、WMS 1.1、1.1.1と1.3のサーバーを理解しWMSクライアントとして動作することができます。特に、そのようなDEMISとして公にアクセス可能なサーバに対してテストされています。
WMSサーバーはクライアント(例えば、QGIS)の要求に応じて、指定された範囲、レイヤのセット、シンボル化スタイル、および透明度を持つ、ラスタ地図に作用します。WMSサーバーは、そのローカルデータソースを参照し、地図をラスタ化し、ラスタ形式でクライアントに送り返します。QGISの場合、このフォーマットは一般的にJPEGまたはPNGになります。
WMSは一般的に、本格的なWebサービスではなく、REST(Representational State転送)サービスです。そのため、QGISが生成したURLをWebブラウザで使うことで、QGISが内部で使用するのと同じ画像を取得することができます。WMSサーバーにはいくつかのブランドがあり、それぞれが独自のWMS標準の解釈を持っているので、トラブルシューティングするときにこれが役に立ちます。
WMSレイヤは、WMSサーバーにアクセスするURLを知っていればとても簡単に追加できます。サーバーに対してアクセスできる接続ができ、サーバーがデータ転送方式としてHTTPを理解できれば大丈夫です。
さらにQGISはGetCapabilitiesリクエストがトリガーされない限り、WMS応答(つまり画像)を24時間キャッシュします。 GetCapabilitiesリクエストは、 WMS(T)サーバからレイヤを追加 ダイアログの 接続 ボタンを使ってWMSサーバの機能を取得するたびにトリガーされます。これは、プロジェクトの読み込み時間を最適化することを目的とした自動的な機能です。プロジェクトがWMSレイヤで保存されている場合、対応するWMSタイルは、24H以内である限り次にプロジェクトを開いたときにキャッシュから読み込まれます。
20.1.2. WMTS サポートの概要
QGISはWMTSクライアントとしても動作します。WMTSは、地理空間データのタイルセットを配布するためのOGC標準です。WMTSではタイルセットが事前に生成されており、クライアントはタイルの生成ではなく伝送を要求するだけなので、WMSより速く、効率的にデータを配信する方法です。一般的にWMS要求はデータの生成と伝送の両方を含みます。タイル張りの地理空間データを閲覧する、非OGC標準のよく知られている例は、Googleマップです。
ユーザーが望みそうなものに近い様々な縮尺でデータを表示するため、WMTSのタイルセットは、いくつかの異なる縮尺レベルで生成され、それらを要求するGISクライアントのために利用できるようにされています。
この図はタイルセットの概念を示しています:
QGISがサポートしている2種類のWMTSのインタフェースは、キーと値のペア(KVP)とRESTfulです。これら2つのインターフェイスは異なっており、それらは別々にQGISに指定する必要があります。
WMTS KVP サービスにアクセスするには、QGISユーザーは WMS/WMTS インターフェイスを開き、WMTSタイルサービスのURLに次の文字列を追加する必要があります:
"?SERVICE=WMTS&REQUEST=GetCapabilities"
このタイプのアドレスの例は次のとおりです
https://opencache.statkart.no/gatekeeper/gk/gk.open_wmts?\ service=WMTS&request=GetCapabilities
このWMTSでtopo2レイヤをテストするためにうまく動作します。この文字列を追加することはWMSサービスの代わりにWMTS Webサービスを使うことを示します。
RESTful WMTS サービスは、異ったわかりやすいURLの形式を使います。この形式は OGC に推奨されています:
{WMTSBaseURL}/1.0.0/WMTSCapabilities.xml
この形式は、RESTfulアドレスであることを認識するのに役立ちます。 RESTful WMTSは、フォームのURLフィールドのWMSセットアップでそのアドレスを追加するだけでQGISでアクセスされます。オーストリアのベースマップの場合、このタイプのアドレスの例は、 https://maps.wien.gv.at/basemap/1.0.0/WMTSCapabilities.xml です。
注釈
WMS-Cと呼ばれるいくつかの古いサービスもまだ見つけることができます。これらのサービスはWMTSと非常によく似ています(つまり、目的は同じですが、動作が少し異なります)。 これらはWMTSサービスと同じように管理できます。 URLの最後に「?tiled = true」を追加するだけです。この仕様の詳細については、 https://wiki.osgeo.org/wiki/Tile_Map_Service_Specification 参照してください。
WMTSを読んだときに, WMS-C についても考えるでしょう.
20.1.3. WMS/WMTS サーバーを選択する
QGISでWMS機能を初めて使用するとき、定義済みのサーバーはありません。
ですから目標のサーバーへの接続を作る必要があります:
レイヤ タブから 新規 を押します。 新規WMS/ 接続を作成 ダイアログが表示されます。
ちなみに
Browser panel 内の WMS/WMTS エントリーを右クリックして、 新規接続... を選択すると、 新規WMS/ 接続を作成 ダイアログが表示されます。
次に、下にあるように、接続したいWMSサーバーに接続するためにパラメータを入力します:
名前: 接続の名前。この名前はWMSサーバーを見分けられるよう、サーバー接続ドロップダウンボックスで使われます。
URL: データを提供するサーバーのURL。これは解決可能なホスト名でなければなりません。telnet接続を開いたりホストにpingするときに使うものと同じように、ベースURLだけの形式です。たとえば
request=GetCapabilities
やversion=1.0.0
のようなフラグメントがURLにあってはいけません。認証 (オプション): stored configuration または ユーザー名 と パスワード によるベーシック認証を使います。
警告
認証 タブで ユーザー名 と パスワード を入力すると、保護されていない資格情報が接続構成に保持されます。たとえば、プロジェクトファイルを誰かと共有した場合、これらの 認証情報が見えてしまいます 。したがって、代わりに 認証設定 ( 設定 タブ)に資格情報を保存することをお勧めします。詳細は 認証システム 参照。
HTTP リファラー
DPI-Mode: 有効なオプションは、 すべて, オフ, QGIS, UMN および GeoServer です
capabilitiesのGetMap/GetTile URI を無視: チェックした場合、上の URL フィールドからURIを使います。
機能で報告されたGetFeatureInfoURIを無視する :チェックした場合、上記の URL フィールドから指定されたURIを使用します。
Ignore reported layer extents: ラスタレイヤによって報告される範囲はレンダリングできる実際の領域よりも小さい場合があるため(特に、データ範囲よりも多くのスペースを必要とするシンボルを使用するWMSサーバーの場合)、このオプションをオンにすると、報告された範囲にラスタレイヤがトリミングされず、これらのレイヤの境界で地図記号が切り捨てられるのを避けられます。
OK を押します。
新しいWMSサーバー接続が作成されたら、それは将来のQGISセッションのために保存されます。
インターネットからWMSサービスを受信できるようにプロキシサーバーを設定する必要がある場合は、オプションでプロキシサーバーを追加できます。 ネットワーク タブを選択してください。そこでは、 ウェブアクセスにプロキシを使用 設定することで、プロキシ設定を追加しそれらを有効にできます。 プロキシタイプ ドロップダウンメニューから正しいプロキシタイプを選択していることを確認してください。
をクリックして20.1.4. WMS/WMTS レイヤを読み込む
パラメータを正しく入力したら、 接続 ボタンを使用して、選択したサーバの機能を取得できます。これには、画像のエンコーディング、レイヤ、レイヤスタイル、投影法があります。これはネットワーク操作であるため、応答の速度はWMSサーバへのネットワーク接続の品質によって異なります。 WMSサーバからデータをダウンロードしている間、ダウンロードの進行状況はメインのQGISダイアログの左下隅に表示されます。
あなたの画面は 図 20.3 のように、WMSサーバーからの応答を表示するはずです。
ダイアログの レイヤ タブの上部には、サーバーが提供する関連する画像スタイルでレイヤを埋め込むレイヤグループを含めることができるツリー構造が表示されます。各アイテムは、次の方法で識別できます:
ID
名前
タイトル
要約
リストは右上の角にある ウィジェットを使ってフィルタできます。
イメージエンコーディング
イメージエンコーディング セクションは、クライアントとサーバーの両方でサポートされているフォーマットを示しています。画像の精度要件に応じていずれかを選択します。
ちなみに
イメージエンコーディング
典型的な WMS サーバーはイメージエンコーディングにJPEGかPNGを提案してくるでしょう。JPEG は損失のある圧縮形式ですが、PNG は生のラスタデータを忠実に再現します。
WMSデータが自然の中での撮影であることを期待する場合、および/または画質の若干の損失を気にしない場合、JPEGを使用してください。このトレードオフは、一般的にPNGに比べてデータ転送要件を5倍減らします。
元のデータの正確な表現をしたい、そしてデータ転送の要件の増加を気にしない場合、PNGを使用してください。
オプション
ダイアログのオプション区域はWMSリクエストを設定する方法を提供します。次が定義できます:
タイルサイズ WMS要求を複数の要求に分割するためにタイルサイズを設定したい場合(例 256x256)
Request step size: if you want to reduce the effect of cut labels at tile borders, increasing the step size creates larger requests, fewer tiles and fewer borders. The default value is 2000.
サーバーからの GetFeatureInfoの最大値
各WMSレイヤは、WMSサーバーの機能に応じて、複数のCRSで表示できます。リストからWMSを選択すると、Webサーバーによって提供されるデフォルトの投影法のフィールドが表示されます。: Select CRSを選択 ウィジェットを押して、WMSのデフォルトの投影法をWMSサーバーでサポートされている別のCRSに置き換えます。
A dialog similar to the one shown in 図 10.3 will appear. The main difference with the WMS version of the dialog is that only those CRSs supported by the WMS server will be shown.
最後に、WMSサーバーがこの機能をサポートしている場合 文脈WMS凡例を使用 を有効にできます。そのときは、現在の地図ビューの範囲に関連する凡例だけ表示されますので、現在の地図で見えないものの凡例項目は含まれません。
At the bottom of the dialog, a Layer name text field displays the selected item's Title. You can change the name at your will. This name will appear in the Layers panel after you pressed the Add button and loaded the layer(s) in QGIS.
一度に複数のレイヤーを選択できますが、レイヤーごとに1つの画像スタイルしか選択できません。複数のレイヤーが選択されると、それらはWMSサーバーで結合され、単一のレイヤーとして一度にQGISに送信されます。デフォルトの名前は、元のタイトルのスラッシュ( /)で区切られたリストです。
レイヤー順序
The Layer Order tab lists the selected layers available from the current connected WMS server.
サーバーによってレンダリングされたWMSレイヤーは、リストの上から下に、 レイヤー タブにリストされている順序でオーバーレイされます。オーバーレイの順序を変更する場合は、 レイヤー順序 タブの 上へ ボタンと 下へ ボタンを使用できます。
透過性
The Global transparency setting from the Layer Properties is hard coded to be always on, where available.
20.1.5. タイルセット
WMTSを使用して(キャッシュWMS)サービスのような
https://opencache.statkart.no/gatekeeper/gk/gk.open_wmts?\
service=WMTS&request=GetCapabilities
サーバーによって与えられた タイルセット タブを閲覧できます。タイルのサイズ、フォーマットおよびサポートされているCRSなどの追加情報は、この表に記載されています。この機能と組み合わせて、 (または ) それから タイル縮尺パネル を選択することで、タイル縮尺スライダーを使用できます。これは、ドッキングされた素敵なスライダーでタイルサーバーから利用可能な縮尺を提供します。
20.1.6. 地物特定ツールの利用
一度WMSサーバーを追加してしまい、WMSサーバーからのすべてのレイヤが照会可能であるならば、 識別 ツールを使用して地図キャンバス上でピクセルを選択できます。クエリが行われた各選択のためのWMSサーバーに行われます。クエリの結果はテキスト形式で返されます。このテキストの書式は、使用される特定のWMSサーバーに依存しています。
フォーマット選択
複数の出力フォーマットがサーバーによってサポートされている場合、サポートされる形式とコンボボックスが自動的に識別結果ダイアログに追加され、選択されたフォーマットは、レイヤのためのプロジェクトに格納されてもよいです。
GMLフォーマットサポート
:sup:`識別`ツールは、GML形式でWMSサーバーの応答(GetFeatureInfo)を(それはこの文脈ではQGIS GUIでの地物と呼ばれる)をサポートしています。「地物」フォーマットがサーバーによってサポートされており、選択された場合は、識別ツールの結果は、通常のベクタレイヤからのように、ベクタ地物です。単一の地物をツリーで選択された場合、それは地図で強調表示され、それがクリップボードにコピーされ、別のベクタレイヤに貼り付けできます。GML形式でGetFeatureInfoをサポートするために、以下のUMN Mapserverの設定例を参照してください。
# in layer METADATA add which fields should be included and define geometry (example):
"gml_include_items" "all"
"ows_geometries" "mygeom"
"ows_mygeom_type" "polygon"
# Then there are two possibilities/formats available, see a) and b):
# a) basic (output is generated by Mapserver and does not contain XSD)
# in WEB METADATA define formats (example):
"wms_getfeatureinfo_formatlist" "application/vnd.ogc.gml,text/html"
# b) using OGR (output is generated by OGR, it is send as multipart and contains XSD)
# in MAP define OUTPUTFORMAT (example):
OUTPUTFORMAT
NAME "OGRGML"
MIMETYPE "ogr/gml"
DRIVER "OGR/GML"
FORMATOPTION "FORM=multipart"
END
# in WEB METADATA define formats (example):
"wms_getfeatureinfo_formatlist" "OGRGML,text/html"
表示プロパティ
WMSサーバーを追加したら、凡例でそれを右クリックして
を選択することで、プロパティを表示できます。メタデータタブ
タブ メタデータ は、一般的に、そのサーバーから返された機能の声明から収集され、WMSサーバーに関する豊富な情報を表示します。多くの定義がWMSの規格を読むことによって収集できますが( 文献とWeb参照 でオープン地理空間コンソーシアムを参照)、ここで便利ないくつかの定義は:
サーバープロパティ
WMS バージョン --- サーバーによってサポートされたWMSのバージョン.
画像フォーマット --- サーバーが地図を描画するときに応答できるMIME-タイプのリスト。QGISではQtライブラリが構築された基礎になるフォーマットは何でもサポートしています。通常は少なくとも
画像/png
と画像/jpeg
があります。アイデンティティ形式 ---サーバーが識別ツールを使用する場合に対応できるMIME-タイプのリスト。現在、QGISは ``テキストplain``タイプをサポートしています。
レイヤプロパティ
選択 ---そのサーバーは、このプロジェクトに追加したときに、このレイヤを選択したかどうか。
可視 ---このレイヤは(まだQGISのこのバージョンでは使用されない)、凡例に見えるように選択されているか否か。
特定可能 ---このレイヤは特定ツールが使用されたときに結果を返すかどうか。
透明可能 ---このレイヤが透明でレンダリングすることが可能かどうか。QGISのこのバージョンでは、これが
Yes
であり画像符号化が透明度をサポートしている場合、常に透明度を使用します。ズームイン可能 ---このレイヤは、サーバーによってズームインすることが可能かどうか。QGISのこのバージョンでは、すべてのWMSレイヤがこれを
Yes
に設定されることを前提としています。欠陥レイヤは奇妙にレンダリングされることがあります。カスケードカウント --- WMSサーバーは、レイヤのためのラスタデータを取得するために、他のWMSサーバーへのプロキシとして動作することができます。このエントリは、このレイヤのための要求は結果のためにWMSサーバーをピアに転送された回数を示しています。
固定幅、固定高さ ---このレイヤは、固定されたソースピクセル寸法を有しているか否か。QGISのこのバージョンは、すべてのWMSレイヤは、何もこのセットを前提としています。欠陥レイヤは奇妙にレンダリングされることがあります。
** WGS 84バウンディングボックス** --- WGS 84座標での、レイヤのバウンディングボックス。一部のWMSサーバーは、(例えば、UTM座標が代わりに使用されている)これを正しく設定しないでください。この場合、このレイヤの初期ビューはQGISによって非常に「ズームアウト」外観でレンダリングされてもよいです。WMSのウェブマスターは、彼らがWMSのXML要素
LatLonBoundingBox
、EX_GeographicBoundingBox
またはCRS:84BoundingBox
として知っている可能性がある、このエラーが通知されなければなりません。CRSで利用可能 ---このレイヤは、WMSサーバーによってレンダリングすることができることを予測。これらは、WMS-ネイティブフォーマットで記載されています。
スタイルで利用可能 ---このレイヤがWMSサーバーによって描画されることができる画像のスタイル。
20.1.7. Show WMS legend graphic in table of contents and layout
QGIS WMSデータプロバイダーでは、コンテンツレイヤリストのテーブルで、また印刷レイアウトで、凡例のグラフィックを表示できます。WMSの凡例は、WMSサーバーにGetLegendGraphic機能があり、レイヤが指定されたgetCapabilityのURLを持っている場合にのみ表示されますので、さらにそのレイヤのためのスタイル設定を選択する必要があります。
legendGraphicが利用可能な場合、それはレイヤの下に表示されます。それは少しであり、(QgsLegendInterfaceアーキテクチャ上の制限のために)実際の次元でそれを開くために、それをクリックする必要があります。レイヤの凡例をクリックすると、フル解像度での凡例を持つフレームを開きます。
印刷レイアウトでは、凡例は元の(ダウンロードされた)寸法で統合されます。凡例グラフィックの解像度は、
の下のアイテムプロパティで設定して、印刷要件に一致させることができます。凡例は、現在の縮尺に基づいてコンテキスト情報を表示します。WMSの凡例は、WMSサーバーがGetLegendGraphic機能とレイヤが指定getCapabilityのURLを持っている場合にのみ表示されますので、スタイリングを選択する必要があります。
20.1.8. WMSクライアントの制限
すべての可能なWMSクライアント機能がQGISのこのバージョンに含まれてはいません。より注目すべき例外のいくつかを以下に示します。
WMSレイヤ設定の編集
WMSレイヤを追加 の手順を完了したら、もう設定は変更できません。逃げ道は、レイヤを完全に削除して、最初からやり直すことです。
認証が必要なWMS サーバー
現在、パブリックアクセスが可能かセキュリティで保護されたWMSサービスがサポートされています。セキュリティで保護されたWMSサーバーは、パブリック認証でアクセスできます。WMSサーバーを追加するときには(オプションの)資格情報を追加できます。詳細は WMS/WMTS サーバーを選択する セクションを参照。
ちなみに
セキュリティで保護されたOGC-レイヤへのアクセス
ベーシック認証以外のセキュリティで保護された方法で固定レイヤにアクセスする必要がある場合は、透過プロキシとしてInteProxyを使用すれば、複数の認証方式に対応できます。詳細は https://inteproxy.wald.intevation.org の InteProxy マニュアルにあります。
ちなみに
QGIS WMS Mapserver
バージョン1.7.0以降のQGISは、WMS 1.3.0 Mapserverの独自な実装を持っています。これについては QGIS Server Guide/Manual を読んでください。
20.2. WCS クライアント
ウェブカバレッジサービス(WCS)は、科学的モデルへの入力として、および他のクライアントのために、クライアント側のレンダリングに役立つ形でラスタデータへのアクセスを提供します。WCSはWFSとWMSと比較できます。WMSとWFSサービスインスタンスとして、WCSは、クライアントが、空間的な制約や他のクエリー基準に基づいて、サーバーの情報保有の部分を選択できます。
QGISではネイティブWCSプロバイダーを持っており、バージョン1.0および1.1の両方(大幅に異なっている)をサポートしていますが、1.1には多くの問題がある(すなわち、各サーバーは、様々な特殊性と異なる方法でそれを実装する)ため、現在は1.0を好みます。
ネイティブWCSプロバイダーは、すべてのネットワーク要求を処理し、すべての標準QGISのネットワーク設定(特にプロキシ)を使用しています。キャッシュ・モードを選択することも可能である(「常にキャッシュ」、「キャッシュを好む」、「ネットワークを好む」、「常にネットワーク」)、および時間的なドメインは、サーバーによって提供されている場合、プロバイダーはまた、時間位置の選択をサポートしています。
警告
認証 タブで ユーザー名 と パスワード を入力すると、保護されていない資格情報が接続構成に保持されます。たとえば、プロジェクトファイルを誰かと共有した場合、これらの 認証情報が見えてしまいます 。したがって、代わりに 認証設定 ( 設定 タブ)に資格情報を保存することをお勧めします。詳細は 認証システム 参照。
20.3. WFS および WFS-T クライアント
In QGIS, a WFS layer behaves pretty much like any other vector layer. You can identify and select features, and view the attribute table. QGIS supports WFS 1.0.0, 1.1.0, 2.0 and OGC API - Features (OAPIF), including editing (through WFS-T).
一般に、WFSレイヤの追加は、WMSで使用される手順と非常によく似ています。デフォルトのサーバーは定義されていないため、独自のサーバーを追加する必要があります。 WFSサーバーは、 MetaSearchプラグイン またはお気に入りのWeb検索エンジンを使用して見つけることができます。パブリックURLを含むリストは多数あり、維持されているものと維持されていないものがあります。
WFS レイヤを読み込む
As an example, we use the Gateway Geomatics WFS server and display a layer. https://demo.gatewaygeomatics.com/cgi-bin/wfs_gateway?REQUEST=GetCapabilities&VERSION=1.0.0&SERVICE=WFS
To be able to load a WFS Layer, first create a connection to the WFS server:
Open the Data Source Manager dialog by pressing the Open Data Source Manager button
Click on New... to open the Create a New WFS Connection dialog
Enter
Gateway Geomatics
as nameEnter the URL (see above)
注釈
In case of an OGC API - Features (OAPIF), the URL to provide should be the landing page, ie the main page from which it is possible to navigate to all the available service endpoints.
In the WFS settings dialog, you can:
Indicate the WFS version of the server. If unknown, press the Detect button to automatically retrieve it.
Define the maximum number of features retrieved in a single GetFetFeature request. If empty, no limit is set.
Invert axis orientation.
And depending on the WFS version:
Force to Ignore axis orientation (WFS 1.1/WFS 2.0)
Enable feature paging and specify the maximum number of features to retrieve with Page size. If no limit is defined, then the server default is applied.
警告
認証 タブで ユーザー名 と パスワード を入力すると、保護されていない資格情報が接続構成に保持されます。たとえば、プロジェクトファイルを誰かと共有した場合、これらの 認証情報が見えてしまいます 。したがって、代わりに 認証設定 ( 設定 タブ)に資格情報を保存することをお勧めします。詳細は 認証システム 参照。
Press OK to create the connection.
好みで設定した可能性のあるすべてのプロキシ設定も認識されていることに注意してください。
Now we are ready to load WFS layers from the above connection.
Choose 'Gateway Geomatics' from the Server Connections drop-down list.
Click Connect
Select the Parks layer in the list
You can also choose whether to:
Click Add to add the layer to the map.
ダウンロードの進行状況がQGISメインウィンドウの左下に視覚化されていることに気付くでしょう。そのレイヤーが読み込まれると、いくつかの地物を識別して選択し、属性テーブルを表示できます。
注釈
QGIS supports different versions of the WFS protocol, with background download and progressive rendering, on-disk caching of downloaded features and version autodetection.