AventureBox
Crie sua conta Entrar Explorar Principal

Mapas para aplicativos de navegação: como funcionam?

    Um pouco sobre como aplicativos mostram mapas dinâmicos e quais ferramentas você pode utilizar para construir o seu próprio mapa.

    Existem por ai dezenas de aplicativos de navegação por GPS disponíveis para smartphone. E apesar das diferenças, quase todos eles baseiam-se num tipo de mecanismo bastante comum para expor mapas (na maioria das vezes, Google Maps ou algum da OSM). Estamos falando do mecanismo TMS, ou Tile Map Service.

    O QUE É TMS?

    Imagine que você fez o mapa do mundo inteiro. Isso mesmo, do mundo inteiro: a depender da escala, uma imagem potencialmente gigante com tudo o que um bom mapa contém. Gigante não só em termos físicos, mas em termos 'virtuais', em megabytes, gigabytes etc. Como faríamos para distribuir esse mapa para toda uma comunidade de usuários? Entregar numa pendrive? Colocar num Google Drive e deixar que as pessoas façam download? Se estamos falando de uma imagem, um arquivo muito grande, então nenhuma dessas opções são adequadas. Afinal, se eu quero apenas a parte do mapa que está na Serra da Mantiqueira, por que eu deveria obter todo o mapa?

    O TMS resolve isso ao dividir - literalmente recortar - o mapa original em muitos e pequenos sub-mapas de tamanho fixo e colocar um serviço dedicado a procurar o sub-mapa que você deseja. Esse serviço requer, no entanto, que você passe alguns números que identifiquem o sub-mapa. Esses números são chamados X, Y e Z, como num plano cartesiano mesmo. O parâmetro X aumenta ou diminui no sentido LESTE - OESTE; o Y no sentido NORTE - SUL; e o Z é na verdade o zoom.

    Quando você está na trilha, sempre que você muda de posição, o aplicativo obtém as coordenadas via GPS e faz a conversão para números XYZ. Em seguida, com os números em mãos, o app requisita ao serviço TMS o sub-mapa de onde você está e mostra na tela.

    Perceba também que ao mudar o zoom, no Google Maps por exemplo, elementos do mapa podem sumir ou aparecer. É que o mecanismo TMS permite a construção de mapas dinâmicos. Você pode construir um mapa que na escala 1:100.000 tenha curvas de nivel de 50m e que na escala 1:25.000 tenha curvas de 10m.

    Ah, e você está curioso para saber como é de fato essa requisição a um serviço TMS, tudo não passa de uma URL. Copie e cole a seguinte url no seu navegador e veja (os número X = 62, Y=42 e Z=7):

    https://tile.openstreetmap.org/7/63/42.png

    Se você for brincar com esses número, lembre-se que a principio pode não ser tão lógico, pois há uma regra de conversão envolvida.

    QUAIS APLICATIVOS CONSEGUEM LIDAR COM TMS?

    Embora a probabilidade seja de que todos usem TMS para apresentar os mapas, nem todos permitem que o usuario altere ou adicione uma url para TMS. Isso porque alguns problemas legais podem surgir. Sobre o TMS do Google Maps (http://mt0.google.com/vt/lyrs=y&hl=en&x=800&y=350&z=10), por exemplo, há uma discussão se o acesso direto aos mapas da Google seja ou não permitido de acordo com seus Termos de Uso.

    Mas há por aí alguns aplicativos capazes de lidar bem com TMS. O excelente LocusMap é um deles. Lá você pode inserir qualquer url TMS, inclusive para usar mapas que você mesmo faz e disponibiliza. É possível inclusive utilizar o formato MBTiles, que na verdade é apenas uma forma de armazenar todos os pequenos sub-mapas que um TMS usa... de forma que, se o mapa for pequeno, você só importa o arquivo MBTiles diretamente no LocusMap sem ter que criar um servidor TMS.

    Observação: adicionar uma url TMS no locusmap, na verdade, não é tão simples assim. É preciso editar um arquivo chamado providers.xml que fica dentro da pasta do aplicativo. Mas para simplesmente abrir um MBTiles é simples e dá para fazer usando a própria interface do Locus.

    DÁ PARA SALVAR OS MAPAS OBTIDOS DE UM TMS?

    Está claro que para obter um pedaço de mapa é preciso conexão com internet, certo? Afinal, o aplicativo precisa ir até o provedor do mapa e pegar os tiles (sub-mapas) necessários para mostrar na tela. Como na maioria das vezes o individuo acaba ficando sempre numa mesma região, então o aplicativo guarda temporariamente no próprio smartphone o sub-mapa requisitado. De modo que na próxima vez que tiver que mostrar na tela, ele não precisa ir lá no provedor buscar a imagem: basta pegar a que ele salvou localmente. É o que chamamos de Cache. Mas em geral esse cache é temporário, se você ficar muito tempo sem visitar aquela região específica, ele joga fora o cache. Por isso que em muitos aplicativos, para que você consiga ver o mapa quando não tem conexão com a internet, é necessário antes abrir o mapa na região de interesse, para que o sub-mapa envolvido seja guardado no smartphone e você não precise ir até o provedor quando estiver desconectado.

    Mas se você consegue baixar e salvar um sub-mapa para fazer cache (temporário), então é possível salvar qualquer mapa no seu smartphone e deixar lá para sempre (da mesma forma que você pode acessar o link TMS que passamos e salvar a imagem no seu computador). O LocusMap tem ferramenta para isso, onde você seleciona a região e ele faz o download para uso posterior sem conexão com internet.

    COMO FAZER MEU PRÓPRIO TMS

    Fazer o próprio TMS requer que você tenha um servidor que consiga atender requisições do tipo XYZ (existem coisas prontas por ai já) e que consiga acessar a forma que você escolheu para armazenar as centenas ou milhares de imagens (sub-mapas). Uma boa opção para armazenar os sub-mapas é, como já foi dito, usar arquivos MBTiles. Existem plugins talvez não muito confiáveis no QGis que transformam seu mapa para MBTiles.

    Mas também é possível fabricar MBTiles de forma bem interessante e flexível através do TileMill (https://tilemill-project.github.io/tilemill/). Ele usa o CartoCSS para estilizar mapas de forma relativamente fácil, bastando importar nele todos os arquivos raster e shapefile do mapa e escrever de que forma os elementos serão apresentados. A instalação do TileMill, no entanto, pode não ser muito simples para leigos em TI.

    Trilhas Perdidas

    Trilhas Perdidas

    Brasília - DF

    Rox
    299

    O projeto Trilhas Perdidas vem usando as tecnologias de imagens de satélite para mapear e catalogar atrativos naturais conhecidos ou desconhecidos Brasil afora.

    Mapa de Aventuras
    www.trilhasperdidas.com.br