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:
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”
Fantástico artigo! Obrigado!
Boas.Fazemos por isso, por aqui. A “partilha” será sempre uma das nossas prioridades.
Inté