20. Working with OGC / ISO protocols

O Consórcio Geoespacial Aberto (OGC), é uma organização internacional como mais de 300 organizações em todo mundo do tipo comerciais, sem fins lucrativos e de investigação. Os membros desenvolvem e implementam padrões para os conteúdos e serviços geoespaciais, processamento e troca de dados SIG.

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

Importantes especificações OGC suportadas pelo QGIS são:

OGC services are increasingly being used to exchange geospatial data between different GIS implementations and data stores. QGIS can deal with the above specifications as a client, being SFS (through support of the PostgreSQL / PostGIS data provider, see section Camadas 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.

20.1. Cliente WMS/WMTS

20.1.1. Visão Global do Suporte WMS

QGIS currently can act as a WMS client that understands WMS 1.1, 1.1.1 and 1.3 servers. In particular, it has been tested against publicly accessible servers such as DEMIS.

A WMS server acts upon requests by the client (e.g., QGIS) for a raster map with a given extent, set of layers, symbolization style, and transparency. The WMS server then consults its local data sources, rasterizes the map, and sends it back to the client in a raster format. For QGIS, this format would typically be JPEG or PNG.

WMS is generically a REST (Representational State Transfer) service rather than a full-blown Web service. As such, you can actually take the URLs generated by QGIS and use them in a web browser to retrieve the same images that QGIS uses internally. This can be useful for troubleshooting, as there are several brands of WMS server on the market and they all have their own interpretation of the WMS standard.

As camadas WMS podem ser adicionadas facilmente, desde que conheça o acesso URL para o servidor WMS, tenha uma ligação de serviço a esse servidor, e o servidor compreenda HTTP como um mecanismos de transporte de dados.

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.

20.1.2. Visão Global do Suporte WMTS

QGIS can also act as a WMTS client. WMTS is an OGC standard for distributing tile sets of geospatial data. This is a faster and more efficient way of distributing data than WMS because with WMTS, the tile sets are pre-generated, and the client only requests the transmission of the tiles, not their production. A WMS request typically involves both the generation and transmission of the data. A well-known example of a non-OGC standard for viewing tiled geospatial data is Google Maps.

De maneira a exibir os dados a várias escalas perto do que o utilizador queira ver, os conjuntos de mosaicos WMTS são produzidos em vários diferentes níveis de escala e são disponibilizados para o cliente SIG a seu pedido.

Este diagrama ilustra o conceito dos conjuntos de mosaicos

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

Fig. 20.1 Conceito dos conjuntos de mosaicos do WMTS

The two types of WMTS interfaces that QGIS supports are via Key-Value-Pairs (KVP) and RESTful. These two interfaces are different, and you need to specify them to QGIS differently.

  1. In order to access a WMTS KVP service, a QGIS user must open the WMS/WMTS interface and add the following string to the URL of the WMTS tile service:

    "?SERVICE=WMTS&REQUEST=GetCapabilities"
    

    Um exemplo deste tipo de endereço é

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

    A camada topo2 funciona lindamente para testar neste WMTS. Adicionando esta linha e texto indica que é um serviço web WMTS que deverá ser usado em vez de o serviço WMS.

  2. O serviço WMTS RESTful torna-se uma forma diferente, é um URL simples, a forma recomendada pela 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.

Nota

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.

Quando lê o WMTS pode muitas vezes pensar em WMS-C.

20.1.3. Selecionando os Servidores WMS/WMTS

A primeira vez que você usa o recurso WMS no QGIS, não há servidores definidos.

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 Gerenciador de fonte de dados Open Data Source Manager button (or pressing Ctrl+L) and enabling the tab

    • clicking the adicionar camada Wms Add WMS layer button on the Manage Layers toolbar

    • or selecting Layer ► Add Layer ► adicionar camada Wms Add WMS/WMTS Layer… menu

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

    Dica

    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. Em seguida, digite os parâmetros para se conectar ao seu servidor WMS desejado, conforme listado abaixo:

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

    Fig. 20.2 Criando uma conexão com um servidor WMS

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

      Aviso

      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 Sistema de Autenticação for more details.

    • HTTP Referência

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

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

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

    • desmarcado Ignorar a orientação dos eixos (WMS 1.3/WMTS)

    • desmarcado 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.

    • desmarcado Inverter orientação do eixo

    • desmarcado Suavizar transformação do mapa de pixels

  4. Pressione OK

Once the new WMS server connection has been created, it will be preserved for future QGIS sessions.

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 caixa de seleção Use proxy for web access. Make sure that you select the correct proxy type from the Proxy type selecionarCadeia drop-down menu.

20.1.4. Carregando as camadas 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 Fig. 20.3, which shows the response provided by a WMS server.

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

Fig. 20.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:

  • um ID

  • um Nome

  • um Título

  • e um Resumo.

A lista pode ser filtrada usando a ferramenta de |pesquisa| no canto superior direito.

Codificação da Imagem

A seção Codificação de Imagem agora apresenta uma lista de formatos suportados pelo cliente e servidor. Escolha de acordo com as exigências de precisão da sua imagem.

Dica

Codificação da Imagem

Tipicamente irá encontrar servidores WMS que oferecem a escolha da codificação de imagem JPEG ou PNG. O JPEG é um formato de perda de compressão, enquanto que o PNG reprodução fielmente os dados raster brutos.

Use JPEG se espera dados WMS para fotografia na natureza e/ou não se importa da perda de alguma qualidade na imagem. Este típico trade-off reduz em 5 vezes o requerimento de transferência comparado ao PNG.

Use o PNG se necessitar representações precisas dos dados originais, e não se importa dos requerimentos de transferência de dados.

Opções

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.

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

  • The Maximum number of GetFeatureInfo results from the server

  • Each WMS layer can be presented in multiple CRSs, depending on the capability of the WMS server. If you select a WMS from the list, a field with the default projection provided by the web server appears. Press the : definirProjeção Select CRS widget to replace the default projection of the WMS with another CRS supported by the WMS server.

    A dialog similar to the one shown in Fig. 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.

  • Finally you can activate caixa de seleção 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.

Ordem das Camadas

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.

Transparência

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

20.1.5. Mosaicos

Ao usar Serviços WMTS (WMS em cache) como

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

you are able to browse through the Tilesets tab given by the server. Additional information like tile size, formats and supported CRS are listed in this table. In combination with this feature, you can use the tile scale slider by selecting View ► Panels ( or kde Settings ► Panels), then choosing Tile Scale Panel. This gives you the available scales from the tile server with a nice slider docked in.

20.1.6. Usando a Ferramenta Identificar

Once you have added a WMS server, and if any layer from a WMS server is queryable, you can then use the identificar Identify tool to select a pixel on the map canvas. A query is made to the WMS server for each selection made. The results of the query are returned in plain text. The formatting of this text is dependent on the particular WMS server used.

Seleção do formato

Se múltiplos formatos são suportados pelo servidor, uma caixa de combinação com os formatos suportados é automaticamente adicionado aos resultados da janela de identificação e o formato selecionado irá armazenar no projeto para a camada.

Suporte do formato GML

The identificar Identify tool supports WMS server response (GetFeatureInfo) in GML format (it is called Feature in the QGIS GUI in this context). If “Feature” format is supported by the server and selected, results of the Identify tool are vector features, as from a regular vector layer. When a single feature is selected in the tree, it is highlighted in the map and it can be copied to the clipboard and pasted to another vector layer. See the example setup of the UMN Mapserver below to support GetFeatureInfo in GML format.

# 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"

Propriedades de Visualização

Uma vez ter adicionado o servidor WMS, pode ver as suas propriedades clicando com o direito do mouse na legenda, e selecionando Propriedades.

Separador de Metadados

O separador Metadados exibem a riqueza de informação sobre o servidor WMS, geralmente recolhidos a partir da declaração de de Capacidades devolvidos a partir desse servidor. Muitas das definições podem ser removidas através da leitura dos padrões WMS (veja OPEN-GEOSPATIAL-CONSORTIUM Referências Bibliográficas e Web), mas aqui estão algumas definições úteis:

  • Propriedades do Servidor

    • Versão do WMS — Versão do WMS suportada pelo servidor.

    • Image Formats — The list of MIME-types the server can respond with when drawing the map. QGIS supports whatever formats the underlying Qt libraries were built with, which is typically at least image/png and image/jpeg.

    • Identity Formats — The list of MIME-types the server can respond with when you use the Identify tool. Currently, QGIS supports the text-plain type.

  • Propriedades da Camada

    • Selecionado — Querendo ou não esta camada selecionado quando o seu servidor foi adicionado a este projeto.

    • Visível — Se esta camada é ou não selecionada como visível na legenda (ainda não usada nesta versão do QGIS).

    • Pode Identificar — Camada que retorna ou não resultados através do uso da ferramenta Identificar.

    • Pode ser transparente* — Se esta camada pode ou não ser renderizada com transparência. Esta versão do QGIS utilizará sempre a transparência se esta for “Sim” e a codificação da imagem suportar a transparência.

    • Can Zoom In — Whether or not this layer can be zoomed in by the server. This version of QGIS assumes all WMS layers have this set to Yes. Deficient layers may be rendered strangely.

    • Contagem em cascata — Os servidores WMS pode funcionar como proxy para outros servidores WMS para obter dados raster para uma camada. Esta entrada mostra quantas vezes o pedido para esta camada é avançada por peer nos servidores WMS para o resultado.

    • Fixed Width, Fixed Height — Whether or not this layer has fixed source pixel dimensions. This version of QGIS assumes all WMS layers have this set to nothing. Deficient layers may be rendered strangely.

    • WGS 84 Bounding Box — The bounding box of the layer, in WGS 84 coordinates. Some WMS servers do not set this correctly (e.g., UTM coordinates are used instead). If this is the case, then the initial view of this layer may be rendered with a very ‘zoomed-out’ appearance by QGIS. The WMS webmaster should be informed of this error, which they may know as the WMS XML elements LatLonBoundingBox, EX_GeographicBoundingBox or the CRS:84 BoundingBox.

    • SRC disponíveis — As projeções desta camada podem ser renderizadas pelo servidor WMS. Os mesmos estão listados num formato nativo WMS.

    • Disponível em estilo — Os estilos da imagem desta camada podem ser renderizadas pelo o servidor WMS.

20.1.7. Mostrar gráfico de legendas WMS no índice e 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.

Se uma legendGraphic está disponível, será mostrada abaixo da camada. É pequena, e você tem que clicar sobre ela para abrir na dimensão real (devido à limitação arquitetônica QgsLegendInterface). Clicando sobre a legenda da camada abrirá um quadro com a legenda em resolução máxima.

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.

A legenda irá exibir informações contextuais com base em sua escala atual. A legenda WMS será exibida somente se o servidor WMS tiver capacidade GetLegendGraphic e a camada getCapability url for especificada, então você tem que selecionar um estilo.

20.1.8. Limitações do Cliente WMS

Nem todas as funcionalidades possíveis do cliente WMS tinham sido incluídas nesta versão do QGIS. Algumas das exceções mais notáveis são as seguintes.

Editando as Configurações da Camada WMS

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

Servidores WMS que Requerem Autenticação

Atualmente o acesso público e serviços WMS protegidos são suportados. Os servidores WMS protegidos podem ser acedidos pela autenticação pública. Pode adicionar credenciais (opcionais) quando adiciona o servidor WMS. Veja a seção Selecionando os Servidores WMS/WMTS para detalhes.

Dica

Acedendo a camadas protegidas OGC

Se você precisar acessar camadas seguras com métodos de segurança que não sejam autenticação básica, você pode usar o InteProxy como um proxy transparente, que suporta vários métodos de autenticação. Mais informações podem ser encontradas no manual do InteProxy em https://inteproxy.wald.intevation.org.

Dica

QGIS WMS Mapserver

Desde a Versão 1.7.0, QGIS tem sua própria implementação de um servidor de mapas WMS 1.3.0. Leia mais sobre isto em Guia/Manual do Servidor QGIS.

20.2. WCS Cliente

wcs O Serviço Web de Cobertura (WCS) fornecem acesso aos dados matriciais de forma a serem úteis à renderização cliente, como entrada a modelos científicos, e para outros clientes. O WCS pode ser comprado ao WFS e ao WMS. Como as instâncias WMS e WFS, o WCS permite aos clientes escolher porções de informação salvadas de servidores baseados condicionantes espaciais e outros critérios de consulta.

QGIS has a native WCS provider and supports both version 1.0 and 1.1 (which are significantly different), but currently it prefers 1.0, because 1.1 has many issues (i.e., each server implements it in a different way with various particularities).

The native WCS provider handles all network requests and uses all standard QGIS network settings (especially proxy). It is also possible to select cache mode (‘always cache’, ‘prefer cache’, ‘prefer network’, ‘always network’), and the provider also supports selection of time position, if temporal domain is offered by the server.

Aviso

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 Sistema de Autenticação for more details.

20.3. WFS e WFS-T Cliente

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

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.

Carregando uma camada WFS

Como exemplo, usamos o servidor WFS Gateway Geomatics e exibimos uma camada. https://demo.gatewaygeomatics.com/cgi-bin/wfs_gateway?REQUEST=GetCapabilities&VERSION=1.0.0&SERVICE=WFS

Para poder carregar uma camada WFS, primeiro crie uma conexão com o servidor WFS:

  1. Open the Data Source Manager dialog by pressing the Gerenciador de fonte de dados Open Data Source Manager button

  2. Habilitar a addWfsLayer :guilabel: aba WFS/OGC API-Features

  3. Clique em Novo… para abrir o diálogo Criar uma nova conexão WFS

  4. Insira Geomática do portal como nome

  5. Insira a URL (veja acima)

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

    Fig. 20.4 Criando uma conexão com um servidor WFS

    Nota

    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.

  6. No diálogo de configuração WFS, você pode:

    • Indique a versão WFS do servidor. Se desconhecido, pressione o botão Detectar para recuperá-la automaticamente.

    • Define the maximum number of features retrieved in a single GetFetFeature request. If empty, no limit is set.

    • Inverter orientação do eixo

    • E dependendo da versão WFS:

      • Forçar a Ignorar orientação dos eixos (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.

    Aviso

    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 Sistema de Autenticação for more details.

  7. Pressione OK para criar a conexão.

Repare que as configurações proxy que definiu nas suas preferências são também reconhecidas.

Agora estamos prontos para carregar as camadas WFS a partir da conexão acima.

  1. Choose ‘Gateway Geomatics’ from the Server Connections selecionarCadeia drop-down list.

  2. Clique :guilabel:`Conectar’.

  3. Selecione a camada Parques na lista

  4. Você também pode escolher se deseja:

    • desmarcado Usar título para nome da camada, mostrando o título da camada como definido no servidor no painel Camadass em vez de seu Nome.

    • caixa de seleção Only request features overlapping the view extent

    • desmarcado Mudar o SRC da camada

    • ou Construir consulta para especificar características particulares a serem recuperadas, utilizando o botão correspondente ou fazendo duplo clique na camada alvo.

  5. Clique Adicionar para adicionar a camada ao mapa.

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

Fig. 20.5 Adicionando uma camada WFS

O progresso do download é visualizado na parte inferior esquerda da janela principal do QGIS. Uma vez carregada a camada, você pode identificar e selecionar algumas feições e visualizar a tabela de atributos.

Nota

O QGIS suporta diferentes versões do protocolo WFS, com download em background e renderização progressiva, cache em disco de recursos baixados e autodetecção de versão.