19. Working with OGC / ISO protocols

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.opengeospatial.org/.

QGISでサポートされている重要なOGC仕様は以下のとおりです。

OGCサービスは、異なるGISの実装とデータストアとの間の地理空間データを交換するためにますます使用されています。QGISは **SFS**(PostgreSQL/PostGISのデータプロバイダーのサポートにより、 PostGISレイヤ のセクションを参照)され、クライアントとして上記の仕様に対処できます。

You can also share your maps and data through the WMS, WMTS, WFS, WFS-T and WCS protocols using a webserver with QGIS Server, UMN MapServer or GeoServer installed.

19.1. WMS/WMTS クライアント

19.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を取ることができ、QGISが内部で使用するのと同じ画像を取得するために、Webブラウザでそれらを使用しています。そこに市場でのWMSサーバーのいくつかのブランドがあり、それらすべてが、WMSの標準の独自の解釈を持っているので、これは、トラブルシューティングに役立ちます。

WMSレイヤーは簡単に追加できます。WMSサーバーにアクセスするURLを知っていれば追加できます。サーバーに対してアクセスできる接続ができてサーバーがデータ転送方式としてHTTPを理解できれば大丈夫です。

Additionally, QGIS will cache your WMS responses (i.e. images) for 24h as long as the GetCapabilities request is not triggered. The GetCapabilities request is triggered everytime the Connect button in the Add Layer(s) from WMS(T) Server dialog is used to retrieve the WMS server capabilities. This is an automatic feature meant to optimize project loading time. If a project is saved with a WMS layer, the corresponding WMS tiles will be loaded from the cache the next time the project is opened as long as they are no older than 24H.

19.1.2. WMTS サポートの概要

QGISもWMTSクライアントとして動作することができます。WMTSは、地理空間データのタイルセットを配布するためのOGC標準です。WMTSで、タイルセットは、事前に生成され、クライアントはタイルのみの伝送ではなく、それらの生産を要求したので、これはWMSよりデータを配信するより速く、より効率的な方法です。WMS要求は、典型的には、生成及びデータの伝送の両方を含みます。タイル張りの地理空間データを閲覧するための非OGC標準のよく知られた例は、Googleマップです。

ユーザーが望むかもしれないものに近い様々な縮尺でデータを表示するため、WMTSのタイルセットは、いくつかの異なる縮尺レベルで生産され、それらを要求するGISクライアントのために利用できるようになります。

この図はタイルセットの概念を示しています:

../../../_images/concept_wmts.png

図 19.1 WMTS タイルセットコンセプト

サポートをQGIS WMTSの2種類のインタフェースは、キーと値のペア(KVP)とRESTfulを経由しています。これら2つのインターフェイスは異なっており、それらは別々にQGISに指定する必要があります。

  1. 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レイヤーをテストするためにうまく動作します。この文字列を追加すると、WMTS Webサービスは、WMSサービスの代わりに使用されることを示します。

  2. RESTful WMTS サービスは異なる形式です、わかりやすいURLです。この形式は OGC に推奨されています:

    {WMTSBaseURL}/1.0.0/WMTSCapabilities.xml
    

    This format helps you to recognize that it is a RESTful address. A RESTful WMTS is accessed in QGIS by simply adding its address in the WMS setup in the URL field of the form. An example of this type of address for the case of an Austrian basemap is https://maps.wien.gv.at/basemap/1.0.0/WMTSCapabilities.xml.

注釈

You can still find some old services called WMS-C. These services are quite similar to WMTS (i.e., same purpose but working a little bit differently). You can manage them the same as you do WMTS services. Just add ?tiled=true at the end of the url. See https://wiki.osgeo.org/wiki/Tile_Map_Service_Specification for more information about this specification.

WMTSを読んだときに, WMS-C についても考えるでしょう.

19.1.3. WMS/WMTS サーバーを選択する

QGISでWMS地物を初めて使用するときは、定義されたサーバーはありません。

You then need to create connections to the server you are targeting:

  1. Go to the wms WMS/WMTS tab of the Data Source Manager dialog, either by:

    • clicking the dataSourceManager Open Data Source Manager button (or pressing Ctrl+L) and enabling the tab

    • clicking the addWmsLayer Add WMS layer button on the Manage Layers toolbar

    • or selecting Layer ► Add Layer ► addWmsLayer Add WMS/WMTS Layer... menu

  2. Press New from the Layers tab. The Create a New WMS/WMTS Connection... dialog appears.

    ちなみに

    Right-click the wms WMS/WMTS entry from within the Browser panel and select New Connection... also opens the Create a New WMS/WMTS Connection... dialog.

  3. Then enter the parameters to connect to your desired WMS server, as listed below:

    ../../../_images/add_connection_wms.png

    図 19.2 Creating a connection to a WMS server

    • Name: A name for the connection. This name will be used in the Server Connections drop-down box so that you can distinguish it from other WMS servers.

    • URL: URL of the server providing the data. This must be a resolvable host name -- the same format as you would use to open a telnet connection or ping a host, i.e. the base URL only. For example, you shouldn't have fragments such as request=GetCapabilities or version=1.0.0 in your URL.

    • Authentication (optional): using a stored configuration or a basic authentication with Username and Password.

      警告

      Entering username and password in the Authentication tab will keep unprotected credentials in the connection configuration. Those credentials will be visible if, for instance, you shared the project file with someone. Therefore, it's advisable to save your credentials in a Authentication configuration instead (configurations tab). See 認証システム for more details.

    • HTTP Referer

    • DPI-Mode: Available options are all, off, QGIS, UMN and GeoServer

    • unchecked Ignore GetMap/GetTile URI reported in capabilities: if checked, use given URI from the URL field above.

    • unchecked Ignore GetFeatureInfo URI reported in capabilities: if checked, use given URI from the URL field above.

    • unchecked Ignore axis orientation (WMS 1.3/WMTS)

    • unchecked Ignore reported layer extents: because the extent reported by raster layers may be smaller than the actual area which can be rendered (notably for WMS servers with symbology which takes more space than the data extent), check this option to avoid cropping raster layers to their reported extents, resulting in truncated symbols on the borders of these layers.

    • unchecked Invert axis orientation

    • unchecked Smooth pixmap transformation

  4. Press OK

新しいWMSサーバー接続が作成されたら、それは将来のQGISセッションのために保存されます。

If you need to set up a proxy server to be able to receive WMS services from the internet, you can add your proxy server in the options. Choose Settings ► Options and click on the Network tab. There, you can add your proxy settings and enable them by setting checkbox Use proxy for web access. Make sure that you select the correct proxy type from the Proxy type selectString drop-down menu.

19.1.4. WMS/WMTS レイヤーを読み込む

Once you have successfully filled in your parameters, you can use the Connect button to retrieve the capabilities of the selected server. This includes the image encoding, layers, layer styles and projections. Since this is a network operation, the speed of the response depends on the quality of your network connection to the WMS server. While downloading data from the WMS server, the download progress is visualized in the lower left corner of the main QGIS dialog.

Your screen should now look a bit like 図 19.3, which shows the response provided by a WMS server.

../../../_images/connection_wms.png

図 19.3 Dialog for adding a WMS server, with filter on available layers

The upper part of the Layers tab of the dialog shows a tree structure that can include layer groups embedding layers with their associated image style(s) served by the server. Each item can be identified by:

  • an ID

  • a Name

  • a Title

  • and an Abstract.

The list can be filtered using the search widget in the top right corner.

画像エンコーディング

画像符号化 セクションは、クライアントとサーバーの両方でサポートされているフォーマットを示しています。画像の精度要件に応じていずれかを選択します。

ちなみに

画像エンコーディング

典型的な WMS サーバーは画像のエンコーディングにJPEGかPNGを提案してくるでしょう。JPEG は損失のある圧縮形式ですが、PNG は生のラスターデータを忠実に再現します。

WMSデータが自然の中での撮影であることを期待する場合、および/または画質の若干の損失を気にしない場合、JPEGを使用してください。このトレードオフは、一般的にPNGに比べて5倍のデータ転送要求によって減少します。

元のデータの正確な表現をしたい、そしてデータ転送の要件の増加を気にしない場合、PNGを使用してください。

オプション

The Options area of the dialog provides means to configure the WMS requests. You can define:

  • Tile size if you want to set tile sizes (e.g., 256x256) to split up the WMS request into multiple requests.

  • The Request step size

  • The Feature limit for GetFeatureInfo defines the maximum number of GetFeatureInfo results from the server.

  • If you select a WMS from the list, a field with the default projection provided by the web server appears. Press the Change... button to replace the default projection of the WMS with another CRS supported by the WMS server.

  • Finally you can activate checkbox Use contextual WMS Legend if the WMS Server supports this feature. Then only the relevant legend for your current map view extent will be shown and thus will not include legend items for items you can't see in the current map.

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.

You can select several layers at once, but only one image style per layer. When several layers are selected, they will be combined at the WMS server and transmitted to QGIS in one go, as a single layer. The default name is a slash (/) separated list of their original title.

レイヤー順序

The Layer Order tab lists the selected layers available from the current connected WMS server.

WMS layers rendered by a server are overlaid in the order listed in the Layers tab, from top to bottom of the list. If you want to change the overlay order, you can use the Up and Down buttons of the Layer Order tab.

透過性

The Global transparency setting from the Layer Properties is hard coded to be always on, where available.

ちなみに

WMSレイヤーの透過性

The availability of WMS image transparency depends on the image encoding used: PNG and GIF support transparency, whilst JPEG leaves it unsupported.

空間参照系

座標参照系(CRS)はQGIS投影のためOGC用語です。

各WMSレイヤーはWMSサーバーの能力に応じて、複数のCRSに提示することができます。

To choose a CRS, select Change... and 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.

19.1.5. タイルセット

WMTSを使用して(キャッシュWMS)サービスのような

https://opencache.statkart.no/gatekeeper/gk/gk.open_wmts?\
  service=WMTS&request=GetCapabilities

サーバーによって与えられた タイルセット タブを閲覧できます。タイルのサイズ、フォーマットおよびサポートされているCRSなどの追加情報は、この表に記載されています。この機能と組み合わせて、 表示 ► パネル (または kde 設定 ► パネル ) それから タイル縮尺パネル を選択することで、タイル縮尺スライダーを使用できます。これは、ドッキングされた素敵なスライダーでタイルサーバーから利用可能な縮尺を提供します。

19.1.6. 地物特定ツールの利用

一度WMSサーバーを追加してしまい、WMSサーバーからのすべてのレイヤーが照会可能であるならば、 identify 識別 ツールを使用して地図キャンバス上でピクセルを選択できます。クエリが行われた各選択のためのWMSサーバーに行われます。クエリの結果はテキスト形式で返されます。このテキストの書式は、使用される特定のWMSサーバーに依存しています。

フォーマット選択

複数の出力フォーマットがサーバーによってサポートされている場合、サポートされる形式とコンボボックスが自動的に識別結果ダイアログに追加され、選択されたフォーマットは、レイヤーのためのプロジェクトに格納されてもよいです。

GMLフォーマットサポート

identify :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は、典型的には少なくとも 画像/png画像/jpeg である、で構築された基礎となるQtライブラリをフォーマットするものは何でもサポートしています。

    • アイデンティティ形式 ---サーバーが識別ツールを使用する場合に対応できるMIME-タイプのリスト。現在、QGISは ``テキストplain``タイプをサポートしています。

  • レイヤープロパティ

    • 選択 ---そのサーバーは、このプロジェクトに追加したときに、このレイヤーを選択したかどうか。

    • 可視 ---このレイヤーは(まだQGISのこのバージョンでは使用されない)、凡例に見えるように選択されているか否か。

    • 特定可能 ---このレイヤーは特定ツールが使用されたときに結果を返すかどうか。

    • 透明可能 ---このレイヤーが透明でレンダリングすることが可能かどうか。QGISのこのバージョンでは、これが Yes であり画像符号化が透明度をサポートしている場合、常に透明度を使用します。

    • ズームイン可能 ---このレイヤーは、サーバーによってズームインすることが可能かどうか。QGISのこのバージョンでは、すべてのWMSレイヤーがこれを Yes に設定されることを前提としています。欠陥レイヤーは奇妙にレンダリングされることがあります。

    • カスケードカウント --- WMSサーバーは、レイヤーのためのラスターデータを取得するために、他のWMSサーバーへのプロキシとして動作することができます。このエントリは、このレイヤーのための要求は結果のためにWMSサーバーをピアに転送された回数を示しています。

    • 固定幅、固定高さ ---このレイヤーは、固定されたソースピクセル寸法を有しているか否か。QGISのこのバージョンは、すべてのWMSレイヤーは、何もこのセットを前提としています。欠陥レイヤーは奇妙にレンダリングされることがあります。

    • ** WGS 84バウンディングボックス** --- WGS 84座標での、レイヤーのバウンディングボックス。一部のWMSサーバーは、(例えば、UTM座標が代わりに使用されている)これを正しく設定しないでください。この場合、このレイヤーの初期ビューはQGISによって非常に「ズームアウト」外観でレンダリングされてもよいです。WMSのウェブマスターは、彼らがWMSのXML要素 LatLonBoundingBoxEX_GeographicBoundingBox またはCRS:84 BoundingBox として知っている可能性がある、このエラーが通知されなければなりません。

    • CRSで利用可能 ---このレイヤーは、WMSサーバーによってレンダリングすることができることを予測。これらは、WMS-ネイティブフォーマットで記載されています。

    • スタイルで利用可能 ---このレイヤーがWMSサーバーによって描画されることができる画像のスタイル。

19.1.7. Show WMS legend graphic in table of contents and layout

The QGIS WMS data provider is able to display a legend graphic in the table of contents' layer list and in the print layout. The WMS legend will be shown only if the WMS server has GetLegendGraphic capability and the layer has getCapability url specified, so you additionally have to select a styling for the layer.

legendGraphicが利用可能な場合、それはレイヤーの下に表示されます。それは少しであり、(QgsLegendInterfaceアーキテクチャ上の制限のために)実際の次元でそれを開くために、それをクリックする必要があります。レイヤーの凡例をクリックすると、フル解像度での凡例を持つフレームを開きます。

In the print layout, the legend will be integrated at it's original (downloaded) dimension. Resolution of the legend graphic can be set in the item properties under Legend ► WMS LegendGraphic to match your printing requirements.

凡例は、現在の縮尺に基づいてコンテキスト情報を表示します。WMSの凡例は、WMSサーバーがGetLegendGraphic機能とレイヤーが指定getCapabilityのURLを持っている場合にのみ表示されますので、スタイリングを選択する必要があります。

19.1.8. WMSクライアントの制限

すべての可能なWMSクライアント機能がQGISのこのバージョンに含まれてはいません。より注目すべき例外のいくつかを以下に示します。

WMSレイヤー設定の編集

Once you've completed the addWmsLayer Add WMS layer procedure, there is no way to change the settings. A work-around is to delete the layer completely and start again.

認証が必要なWMS サーバー

現在、一般にアクセス可能と確保WMSサービスがサポートされています。セキュリティで保護されたWMSサーバーは、パブリック認証でアクセスできます。WMSサーバーを追加するときには(オプション)資格情報を追加できます。詳細は WMS/WMTS サーバーを選択する セクションを参照。

ちなみに

セキュアな OGC-レイヤーへのアクセス

If you need to access secured layers with secured methods other than basic authentication, you can use InteProxy as a transparent proxy, which does support several authentication methods. More information can be found in the InteProxy manual at https://inteproxy.wald.intevation.org.

ちなみに

QGIS WMS Mapserver

Since Version 1.7.0, QGIS has its own implementation of a WMS 1.3.0 Mapserver. Read more about this in QGIS Server Guide/Manual.

19.2. WCS クライアント

wcs ウェブカバレッジサービス(WCS)は、科学的モデルへの入力として、および他のクライアントのために、クライアント側のレンダリングに役立つ形でラスターデータへのアクセスを提供します。WCSはWFSとWMSと比較できます。WMSとWFSサービスインスタンスとして、WCSは、クライアントが、空間的な制約や他のクエリー基準に基づいて、サーバーの情報保有の部分を選択できます。

QGISではネイティブWCSプロバイダーを持っており、バージョン1.0および1.1の両方(大幅に異なっている)をサポートしていますが、1.1には多くの問題がある(すなわち、各サーバーは、様々な特殊性と異なる方法でそれを実装する)ため、現在は1.0を好みます。

ネイティブWCSプロバイダーは、すべてのネットワーク要求を処理し、すべての標準QGISのネットワーク設定(特にプロキシ)を使用しています。キャッシュ・モードを選択することも可能である(「常にキャッシュ」、「キャッシュを好む」、「ネットワークを好む」、「常にネットワーク」)、および時間的なドメインは、サーバーによって提供されている場合、プロバイダーはまた、時間位置の選択をサポートしています。

警告

Entering username and password in the Authentication tab will keep unprotected credentials in the connection configuration. Those credentials will be visible if, for instance, you shared the project file with someone. Therefore, it's advisable to save your credentials in a Authentication configuration instead (configurations tab). See 認証システム for more details.

19.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 WFS3 (OGC API - Features), including editing (through WFS-T).

In general, adding a WFS layer is very similar to the procedure used with WMS. There are no default servers defined, so you have to add your own. You can find WFS servers by using the MetaSearch plugin or your favourite web search engine. There are a number of lists with public URLs, some of them maintained and some not.

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:

  1. Open the Data Source Manager dialog by pressing the dataSourceManager Open Data Source Manager button

  2. Enable the addWfsLayer WFS/OGC API-Features tab

  3. Click on New... to open the Create a New WFS Connection dialog

  4. Enter Gateway Geomatics as name

  5. Enter the URL (see above)

    ../../../_images/add_connection_wfs.png

    図 19.4 Creating a connection to a WFS server

    注釈

    In case of an OGC API - Features (WFS3), 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.

  6. 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.

    警告

    Entering username and password in the Authentication tab will keep unprotected credentials in the connection configuration. Those credentials will be visible if, for instance, you shared the project file with someone. Therefore, it's advisable to save your credentials in an Authentication configuration instead (Configurations tab). See 認証システム for more details.

  7. Press OK to create the connection.

好みで設定した可能性のあるすべてのプロキシ設定も認識されていることに注意してください。

Now we are ready to load WFS layers from the above connection.

  1. Choose 'Gateway Geomatics' from the Server Connections selectString drop-down list.

  2. Click Connect

  3. Select the Parks layer in the list

  4. You can also choose whether to:

    • unchecked Use title for layer name, showing the layer's title as defined on the server in the Layers panel instead of its Name

    • checkbox Only request features overlapping the view extent

    • unchecked Change the layer's CRS

    • or Build query to specify particular features to retrieve, by either using the corresponding button or double-clicking the target layer.

  5. Click Add to add the layer to the map.

../../../_images/connection_wfs.png

図 19.5 WFSレイヤーを追加

You'll notice the download progress is visualized in the lower left of the QGIS main window. Once the layer is loaded, you can identify and select a couple of features and view the attribute table.

注釈

QGIS supports different versions of the WFS protocol, with background download and progressive rendering, on-disk caching of downloaded features and version autodetection.