Web Map Services

by

in

Falámos num artigo anterior que a lista de mapas online do OruxMaps pode ser alargada através da inclusão de mapas disponíveis na Internet em tempo real. Basta que cumpram o protocolo WMS (Web Map Service).

O que é o Web Map Service?

O Web Map Service, mais conhecido pelo acrónimo WMS, é um protocolo destinado a disponibilizar imagens georreferenciadas através da Internet, as quais são geradas a partir de bases de dados GIS (Geographic Information System). E aqui tomamos este conceito na sua forma mais lata: um qualquer sistema de informação que captura, armazena, analisa, gere e apresenta dados relacionados com localizações.

A especificação do protocolo WMS (http://www.opengeospatial.org/standards/wms) foi desenvolvida e publicada logo em 1999 pelo Open Geospatial Consortium (OGC). A primeira versão do protocolo (1.0.0) foi lançada em Abril de 2000, seguindo-se depois as versões 1.1.0 e 1.1.1, respectivamente em Junho de 2001 e Janeiro de 2002. A última versão (1.3.0) saiu em Janeiro de 2004. A sua especificação pode ser analisada em detalhe a partir da seguinte hiperligação:

http://portal.opengeospatial.org/files/?artifact_id=14416

Actualmente o protocolo WMS é suportado como um formato para mapas pela maior parte de aplicações GIS, sejam elas comerciais, como o ESRI ArcGIS, MapInfo Professional, GeoMedia, Global Mapper, ou livres, como o Google Earth, MapGuide, NASA World Wind.

Em Portugal, o Instituto Geográfico Português (IGP), através do serviço m@pas online (http://mapas.igeo.pt/), e o Instituto Geográfico do Exército Português (IGEOE) , através do projecto Geo-WebServices (http://www.igeoe.pt/mapas/html/AplicacoesClientes.htm), disponibilizam gratuitamente  um conjunto de serviços de dados geográficos de acordo com os padrões do Open GeoSpatial Consortium, e o protocolo WMS e Web Feature Service (WFS).

No IGP os serviços disponíveis são os seguintes:

Nome Endereço do serviço WML (URL) 
Carta Administrativa Oficial de Portugal (CAOP Continente) http://mapas.igeo.pt/ows/caop/continente
Carta Administrativa Oficial de Portugal (CAOP Madeira) http://mapas.igeo.pt/ows/caop/madeira
Carta Administrativa Oficial de Portugal (CAOP Açores) http://mapas.igeo.pt/ows/caop/acores/gocidental
http://mapas.igeo.pt/ows/caop/acores/gcentral
http://mapas.igeo.pt/ows/caop/acores/goriental    

Carta de Risco de Incêndio Florestal 2010 (CRIF)    

http://mapas.igeo.pt/wms/crif    

Carta de Portugal Continental à escala 1:500 000 (sc500k) http://mapas.igeo.pt/wms/sc500k    

Modelo Digital de Terreno (mdt50m) http://mapas.igeo.pt/wms/mdt50m    

Rede Geodésica Nacional – Continente (vgs) http://mapas.igeo.pt/ows/vgs    

 

Já ao nível do IGEOE, são disponibilizados os seguintes serviços:

Nome Endereço do serviço WML (URL) 
Carta Militar Itinerária
1:500 000 Continente
http://www.igeoe.pt/igeoearcweb/wmsconnector/com.esri.wms.Esrimap/500k_Continente
Cartas Militares de Portugal – 1:500 000 e 1:250 000 do Continente e Regiões autónomas http://www.igeoe.pt/igeoearcweb/wmsconnector/com.esri.wms.Esrimap/WebMapSrv

 

Aceder a um Web Map Service

Para “consumir” mapas WMS uma aplicação GIS, seja ela qual for, tem que, pelo menos, conhecer-se o URL do serviço, mas também informação relativa a outros aspectos:

  • Identificação,
  • Níveis de ampliação que podem ser consultados,
  • Camadas visualizáveis,
  • Formatos de imagem fornecidos.

Esta informação pode ser obtida interrogando-se directamente o Web Map Service, utilizando para tal métodos que fazem parte da especificação do protocolo. Um deles, o método GetCapabilities, permite ao utilizador obter meta-informação sobre os parâmetros necessários à utilização do serviço, camadas a visualizar e em que formatos gráficos.

O resultado da chamada ao Web Map Service com o método GetCapabilities é dado sob a forma de um ficheiro em formato XML, o qual poderá depois ser processado internamente pela aplicação GIS ou aberto e lido pelo utilizador.

Assim, e como forma de exemplo, vamos interrogar o serviços WMS  disponibilizado pelo IGEOE, o qual fornece a Carta Militar Itinerária do Continente à escala 1:500 000.

No browser é dado o seguinte URL:

http://www.igeoe.pt/igeoearcweb/wmsconnector/com.esri.wms.Esrimap/500k_Continente?version=1.1.1&service=WMS&request=GetCapabilities

Note-se  os parâmetros de chamada do serviço WMS “version=1.1.1” e “request=GetCapabilities”, os quais indicam o que o utilizador prorura e em que versão do protocolo.

O resultado é devolvido como um ficheiro no formato XML (500k_Continente.xml), de que apresentamos apenas os fragmentos mais relevantes:

<Name>OGC:WMS</Name>
<Title>Web Map Service 500k_continente</Title>

(Elementos que fornecem a referência do service WMS)


<OnlineResource xmlns:xlink=”http://www.w3.org/1999/xlink” xlink:href=”http://www.igeoe.pt/igeoearcweb/wmsconnector/com.esri.wms.Esrimap/500k_continente?” xlink:type=”simple” />

(URL do serviço)


<Format>image/png</Format>
<Format>image/jpeg</Format>
<Format>image/gif</Format>

(formatos gráficos em que são disponibilizadas as imagens do mapa)


<Layer queryable=”0” opaque=”0” noSubsets=”0“>
   <Name>4</Name>
   <Title>500k</Title>
   <SRS>EPSG:4326</SRS>
   <LatLonBoundingBox minx=”-10.181375771” miny=”36.8793377744” maxx=”-6.0820216161” maxy=”42.227177389” />
   <BoundingBox SRS=”EPSG:4326” minx=”-10.181375771” miny=”36.8793377744” maxx=”-6.0820216161” maxy=”42.227177389” /> </Layer>

(definições e referência da camada)

Integração com OruxMaps

A informação que reunimos na sequência da chamada ao método GetCapabilities do serviço WMS é fundamental para o adicionarmos como um mapa online à colecção de mapas do OruxMaps.

Esta aplicação armazena e gere a informação relativa a mapas WMS num ficheiro XML (wms_services.xml), o qual, como já dissemos, pode ser editado pelo utilizador.

O ficheiro wms_services.xml pode ser descarregado a partir da seguinte hiperligação:

http://www.oruxmaps.com/wms_services.xml

Nele, econtram-se já pré-definidos dois mapas. Mas o objectivo é adicionarmos mais mapas, pelo que se continuarmos com o exemplo de integração do serviço WMS fornecido pelo IGEOE teremos que adicionar-lhe o seguinte fragmento XML:

<wms>
  <name>500k_continente</name>
  <uid>1002</uid><!–unique identifier in your database cache; >1000 –>
  <desc>ArcIMS 9.3.0 500k_continente Web Map Service</desc>
  <url>http://www.igeoe.pt/igeoearcweb/wmsconnector/com.esri.wms.Esrimap/500k_continente?</url>
  <minzoomlevel>8</minzoomlevel><!– 0 to 20 –>
  <maxzoomlevel>17</maxzoomlevel><!– 0 to 20 –>
  <version>1.1.1</version><!– do not change –>
  <layers>500k</layers>
  <coordinatesystem>EPSG:4326</coordinatesystem><!– do not change –>
  <format>image/png</format>
  <cache>1</cache><!– not in use –>
 </wms>

O aspecto final do ficheiro wms_services.xml será agora o seguinte:

<?xml version=”1.0″ encoding=”utf-8″?>
<wms_services>
 <wms>
  <name>Terraserver (USA)</name>
  <uid>1001</uid><!–unique identifier in your database cache; >1000 –>
  <desc>USA topo maps</desc>
  <url>http://terraserver-usa.com/ogcmap6.ashx?</url>
  <minzoomlevel>8</minzoomlevel><!– 0 to 20 –>
  <maxzoomlevel>17</maxzoomlevel><!– 0 to 20 –>
  <version>1.1.1</version><!– do not change –>
  <layers>DRG</layers>
  <coordinatesystem>EPSG:4326</coordinatesystem><!– do not change –>
  <format>image/jpeg</format>
  <cache>1</cache><!– not in use –>
 </wms>
   <wms>
      <name>Kartverket sea (NOR)</name><!–ERROR DE UNOS 200 mts SE SUPONE SOPORTA EPSG:4326???–>
      <uid>1309</uid><!–unique identifier in your database cache; >1000 –>
      <desc>Norway sea maps</desc>
      <url><![CDATA[http://openwms.statkart.no/skwms1/wms.sjo_hovedkart2?SERVICE=WMS&BGCOLOR=0xFFFFFF&TRANSPARENT=FALSE&]]></url>
      <minzoomlevel>8</minzoomlevel><!– 0 to 20 –>
      <maxzoomlevel>17</maxzoomlevel><!– 0 to 20 –>
      <version>1.1.1</version><!– do not change –>                 
      <layers>Sjokart_Hovedkartserien2</layers>
      <coordinatesystem>EPSG:4326</coordinatesystem><!– do not change –>
      <format>image/png</format>
      <cache>1</cache><!– not in use –>
   </wms>
 <wms>
  <name>500k_continente</name>
  <uid>1002</uid><!–unique identifier in your database cache; >1000 –>
  <desc>ArcIMS 9.3.0 500k_continente Web Map Service</desc>
  <url>http://www.igeoe.pt/igeoearcweb/wmsconnector/com.esri.wms.Esrimap/500k_continente?</url>
  <minzoomlevel>8</minzoomlevel><!– 0 to 20 –>
  <maxzoomlevel>17</maxzoomlevel><!– 0 to 20 –>
  <version>1.1.1</version><!– do not change –>
  <layers>500k</layers>
  <coordinatesystem>EPSG:4326</coordinatesystem><!– do not change –>
  <format>image/png</format>
  <cache>1</cache><!– not in use –>
 </wms>
</wms_services>

Para os mapas WMS ficarem a funcionar basta ao utilizador instalar o referido ficheiro xml na pasta  “oruxmaps/mapfiles” do cartão de memória do dispositivo Android e reiniciar a aplicação.

Da próxima vez que o utilizador executar o OruxMaps e seleccionar a opção “Online Maps” passa a dispôr na base de dados dos mapas WMS:

O aspecto final é este:

O mapa pode ser sempre armazenado no dispositivo como um mapa offline e assim utilizado em zonas sem conexões WIFI ou 3G, recorrendo ao gerador integrado do OruxMaps (Menu > Tools  > Map Creator).


Comentários

2 comentários a “Web Map Services”

  1. Avatar de Pedro Santos
    Pedro Santos

    Fantástico artigo! Obrigado!

    1. Boas.Fazemos por isso, por aqui. A “partilha” será sempre uma das nossas prioridades.
      Inté