Publicação de um projeto QGIS

De Dados Abertos
Ir para: navegação, pesquisa

QGIS Server

O QGIS Server já vem instalado na distribuição OSGeo Live 9.

Escolhendo no menu Geospatial → Web Services → QGIS Server o browser é aberto com um cliente web que mostra uma mapa preparado pelo QGIS Server.

Usando as ferramentas do programador no browser, repare que os pedidos GetMap são feitos ao serviço http://localhost/cgi-bin/qgis_mapserv.fcgi.

Um pedido completo é algo como:

http://localhost/cgi-bin/qgis_mapserv.fcgi?map=/usr/local/share/qgis/QGIS-NaturalEarth-Example.qgs&
LAYERS=HYP_50M_SR_W%2Cne_10m_lakes%2Cne_10m_rivers_lake_centerlines&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&
EXCEPTIONS=application%2Fvnd.ogc.se_inimage&FORMAT=image%2Fjpeg&SRS=EPSG%3A4326&
BBOX=-16.875,28.125,-11.25,33.75&WIDTH=256&HEIGHT=256

Se porventura já atualizou o OSGeo Live, pode-lhe aparecer os famosos tiles cor de rosa. Tem que reinstalar o QGIS Server com:

sudo apt-get install qgis-server libapache2-mod-fcgid
sudo a2enmod cgid
sudo service apache2 restart

Antes de avançar, certifique-se que tem o QGIS Server a funcionar.

Screenshot from 2015-11-26 21-09-30.png

QGIS Client

Depois de confirmar que tem o QGIS Server a correr, vamos instalar o QGIS Client. Na verdade, o QGIS Server pode ser utilizado com qualquer cliente WMS. No entanto, a dupla QGIS Server e QGIS Client permitem-nos muito facilmente publicar na web um projeto desenvolvido no QGIS (Desktop).

O workflow que vamos usar é muito simples:

  • Instalar e confirmar o bom funcionamento do QGIS Server
  • Instalar e confirmar o bom funcionamento do QGIS Client
  • Desenvolver projetos no QGIS e copiar para uma determinada pasta. Automagicamente os projetos ficam disponíveis na web. Sempre que necessário, fazemos alterações aos projetos e voltamos a copiá-los para a pasta do servidor.

Vamos então instalar o QGIS Client.

Preparação

A nossa máquina virtual OSGeo Live vai ser utilizada como servidor. Para os projetos publicados com o QGIS Client, vamos criar um alias (um sinónimo) para a máquina localhost:

sudo medit /etc/hosts

Acrescente a linha:

127.0.0.1	qgisserver.localhost

Confirma o bom funcionamento do alias, usando o comando ping para falar com a máquina qgisserver.localhost:

ping qgisserver.localhost

Para terminar o ping, faça Ctrl+c.

Instalação

O QGIS Client é um projeto opens source. Está no github.

Começa-se por replicar o código que está no github, e depois corre-se o programa de instalação com dois parâmetros:

  • A pasta onde vão ser carregados os projetos a publicar
  • O endereço do servidor a partir do qual os projetos estão disponíveis.

Para instalar o QGIS Client, execute os seguintes comandos:

cd
git clone https://github.com/qgis/qgis-web-client.git
cd qgis-web-client
sudo ./install.sh /home/user/qgis-web-client/projects qgisserver.localhost
sudo service apache2 restart

O QGIS Client passou a estar disponível a partir do endereço: http://qgisserver.localhost/maps/.

Abra o endereço e certifique-se que consegue navegar nos dois projetos existentes:

Criar um novo projeto no QGIS

Crie um novo projeto no QGIS.

  • Acrescente o MDT da Madeira (madeira.tiff).
  • Selecione apenas as freguesias da Calheta, e guarde o resultado no sistema de coordenadas EPSG:4326.
  • Selecione apenas os restaurantes, cafés, bares e fasts food da Calheta, e guarde o resultado no sistema de coordenadas EPSG:4326.

Vá às propriedades do projeto (Project → Project Properties...).

  • Na seção CRS, ponha as coordenadas do projeto em EPSG:3857 (WGS84 / Pseudo Mercator).
  • Na seção OWS server, marque a opção Advertised extent, e carregue no botão Use Current Canvas Extent.

Screenshot from 2015-11-29 20-25-31.png

Impressão de mapas na web

Para poder imprimir a partir da web ou gerar um PDF é necessário criar um composer no QGIS.

No QGIS, escolha Project → New Print Composer. Escolha um nome qualquer, p.ex. papiro.

No editor do Composer, acrescente:

  • Um mapa (em Layout → Add Map)
  • Um título (em Layout → Add Label)

Screenshot from 2015-11-29 20-36-04.png

Grave o projeto com o nome calheta.

Publicação do projeto

Copie o projeto gravado para a pasta qgis-web-client/projects. Não é preciso fazer mais nada.

Abra o QGIS Client a partir do endereço http://qgisserver.localhost/maps ou diretament http://qgisserver.localhost/maps/calheta.

Screenshot from 2015-11-29 21-29-58.png

Problemas frequentes

O problema mais comum tem a ver com o acesso aos dados. O QGIS Server precisa de ter acesso aos dados dos projetos, pe.ex. às shapefiles, rasters, tracks, etc. Por isso, os dados têm que estar no servidor, no caminho indicado no projeto.

Por princípio, o QGIS Desktop usa caminhos relativos, por conveniência. Pode-se alterar este comportamento em: Project → Project Properties, na seção General, em Save paths. Só altere se for necessário.

Uma sugestão é, na pasta onde guarda os projetos, p.ex. qgis-projets, criar uma sub-pasta para todos os dados do projeto, p.ex. calheta. Todas as shapefiles, rasters, etc, vão estar dentro dessa pasta calheta (eventualmente usando outras sub-pastas se o projeto for grande). O arquivo do projeto calheta.qgs fica acima da pasta dos dados, ou seja, diratamente na pasta qgis-projects. Com esta organização, no final é fácil transferir todo o projeto para o servidor.

As imagens seguintes ilustram esta organização:

Screenshot from 2015-11-29 22-12-43.png

Screenshot from 2015-11-29 22-19-59.png

Com esta organização, passa-se para o servidor o ficheiro do projeto e a respetiva pasta dos dados para a pasta qgis-web-client/projects.

Detetar os problemas

Para ter mais informação sobre o que realmente se está a passar, há dois arquivos de log que ajudam:

  • /var/log/apache2/error.log
  • /var/log/apache2/qgis-web-client-error.log

Na linha de comandos pode ficar a observar constatemente essses arquivos com:

tail -f /var/log/apache2/error.log /var/log/apache2/qgis-web-client-error.log