s--- title: Exercício 4 - Mapas de dados geoespaciais via OGC API - Maps
Exercício 4 - Mapas de dados geoespaciais via OGC API - Maps
A OGC API - Maps fornece uma API Web para aceder a quaisquer dados geoespaciais como uma imagem de mapa georreferenciada.
Suporte da pygeoapi
A pygeoapi suporta a especificação da OGC API - Maps, utilizando o MapServer MapScript e uma fachada WMS como backends principais.
Note
Consulte a documentação oficial para mais informações sobre os backends de mapa suportados.
Publicar um conjunto de dados raster
Nesta secção, iremos expor um ficheiro Geopackage disponível na localização workshop/exercises/data/airport.gpkg
utilizando o MapServer MapScript. Estes dados podem ser consumidos por vários clientes que são compatíveis com a OGC API - Maps. Uma lista de alguns desses clientes pode ser encontrada aqui. Aqui também podemos passar o estilo no formato .sld, que pode ser gerado no Geoserver, QGIS, etc.
Interagir com a OGC API - Maps via MapScript
Abra o ficheiro de configuração da pygeoapi num editor de texto. Encontre a linha # START - EXERCISE 4 - Maps
.
Descomente a secção relacionada com #airports.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
|
Note
Consulte a documentação oficial para mais informações sobre os backends de mapa suportados.
A pygeoapi como um proxy WMS
Pode consultar a secção "A pygeoapi como uma Ponte para Outros Serviços" para aprender a publicar WMS como OGC API - Maps.
Acesso do lado do cliente
QGIS
O QGIS adicionou suporte para APIs que fornecem layers de imagem renderizadas através do seu suporte raster.
Adicionar camada da OGC API - Maps ao QGIS
- Instale uma versão recente do QGIS (>3.28).
- Abra o painel
Adicionar camada raster
. - Selecione
OGCAPI
para o tipo de Fonte. - Adicione o ponto de extremidade local como fonte
http://localhost:5000/collections/airports
. - Selecione
PNG
como formato de imagem. - Finalmente, adicione a camada ao mapa.
OWSLib
A OWSLib é uma biblioteca Python para interagir com os Serviços Web da OGC e suporta várias OGC APIs, incluindo a OGC API - Maps.
Interagir com a OGC API - Maps via OWSLib
Se não tiver Python instalado, considere executar este exercício num contentor Docker. Consulte o Capítulo de Configuração.
pip3 install owslib
pip3 install owslib
Para executar em Python:
>>> from owslib.ogcapi.maps import Maps
>>> m = Maps('http://localhost:5000')
>>> data = m.map('airports', width=1200, height=800, transparent=False)
>>> with open("output.png", "wb") as fh:
... fh.write(data.getbuffer())
>>> from owslib.ogcapi.maps import Maps
>>> m = Maps('http://localhost:5000')
>>> data = m.map('airports', width=1200, height=800, transparent=False)
>>> with open("output.png", "wb") as fh:
... fh.write(data.getbuffer())
Note
Consulte a documentação oficial da OWSLib para mais exemplos.
Resumo
Parabéns! Agora é capaz de servir um OGC WMS através da pygeoapi e da OGC API - Maps.