Como os mapas chegam à app: tiles e servidores de tiles
Cada mapa do TDM é composto por tiles quadrados fornecidos por um servidor de tiles na Internet. O mundo é dividido em níveis de zoom: o nível 0 mostra a Terra inteira num único tile, e cada nível seguinte divide cada tile em quatro novos. A app só carrega os tiles visíveis no ecrã.
Há dois tipos fundamentalmente diferentes: os mapas raster são imagens já desenhadas (PNG/JPEG) — exatamente como o fornecedor as fez, mas não podem ser alteradas e ficam desfocadas ao rodar ou inclinar. Os mapas vetoriais entregam a geometria em bruto: estradas, rios e edifícios como coordenadas. O desenho acontece no teu dispositivo, com um estilo que define cores e letras. Por isso os mapas vetoriais ficam nítidos em qualquer zoom e podem ser rodados, inclinados e recoloridos — o TDM renderiza-os com o motor open source MapLibre.
Ver também: Porque é que os mapas vêm em direto da Internet · Mapas vetoriais vs. raster · Licenças de mapas: Azure, HERE — e porque não há Google Maps
Porque é que os mapas vêm em direto da Internet
Não se podia simplesmente descarregar «o mapa todo»? Façamos as contas: a cada nível de zoom o número de tiles quadruplica. No nível 20 a Terra fica dividida em mais de um bilião de tiles — a vista de satélite do mundo inteiro com os 20 níveis de zoom ocuparia muitos petabytes, milhões de gigabytes. Mais do que qualquer telemóvel alguma vez poderá guardar.
Por isso o TDM vai buscar os mapas online «em direto»: só se carrega o que estás a ver. Para que as zonas sem rede não estraguem a volta, a app guarda cada tile já carregado na cache de tiles, e ao iniciar uma navegação pré-carrega os tiles ao longo da rota. Para zonas verdadeiramente offline há ainda os mapas offline — pacotes compactos por região.
Ver também: Como os mapas chegam à app: tiles e servidores de tiles · Dados de mapa em cache · Como são construídos os mapas offline
Licenças de mapas: Azure, HERE — e porque não há Google Maps
Nem todos os mapas são gratuitos: os da Microsoft Azure Maps e da HERE são serviços comerciais. Cada tile carregado e cada cálculo de rota passa por uma chave API e é pago. Por isso estas vistas (e os routers online correspondentes) só estão disponíveis para utilizadores com sessão iniciada — no modo convidado o TDM muda para os mapas OSM gratuitos.
E o Google Maps? A Google só permite usar os seus mapas exclusivamente através das suas próprias apps e SDKs. Incorporar tiles da Google num motor de mapas de terceiros como o MapLibre — e ainda mais guardá-los para uso offline — é expressamente proibido pelos termos de utilização. Por isso não pode haver material cartográfico da Google no TDM.
As alternativas livres são de primeira: o OpenStreetMap é mantido por milhões de voluntários e, sobretudo nas estradas pequenas, está muitas vezes mais atualizado do que os fornecedores comerciais.
Ver também: Azure Maps · HERE Maps · Perfis de routing & fornecedores
Como são construídos os mapas offline
Por trás de cada região offline há dois pacotes separados que a app descarrega em conjunto: um pacote de visualização e um pacote de rotas. O de visualização é um mapa vetorial (formato PMTiles, até ao zoom 14) — a geometria para desenhar. O de rotas contém, em vez disso, um grafo rodoviário navegável para o motor de rotas offline Valhalla: regras de viragem, sentidos únicos, velocidades. Desenhar e calcular rotas exigem estruturas de dados completamente diferentes — daí a separação. Para ti continua a ser uma entrada com um único botão de download.
A isto junta-se o mapa base mundial (zoom 0–8): fica como fundo ligeiramente escurecido sob a tua região de detalhe, para que fora dela não haja um vazio cinzento — a região de detalhe destaca-se como uma ilha mais clara. Estilo, letras e símbolos vêm integrados na app; os pacotes só fornecem dados.
Ver também: Sem rede? Roteamento integrado offline · Mapa base mundial · Modelo de elevação, sombreado e 3D · Material cartográfico local: routing vs exibição
Modelo de elevação, sombreado e 3D
O relevo do terreno («sombreado») é calculado a partir de um modelo digital de elevação: tiles em que cada píxel codifica uma altitude em vez de uma cor — o TDM usa os tiles de terreno da AWS, disponíveis livremente. A partir dessas altitudes o motor calcula luz e sombra em direto, como se o sol estivesse a noroeste: vales e cristas ganham volume sem alterar o mapa. O mesmo modelo alimenta o terreno 3D — o mapa torna-se uma superfície inclinável, com globo e atmosfera ao reduzir o zoom.
Para a estrada, o relevo também existe como pacote offline — com um truque: o TDM codifica as altitudes de forma mais compacta do que o formato padrão (cujos bits mais finos só contêm ruído) e limita o fundo do mar a 0 m; o pacote encolhe para cerca de um sexto. Há duas variantes: todas as regiões em resolução média ou o núcleo da Europa em alta resolução.
Ver também: Relevo – tornar o terreno visível · Mapas 3D e globo · Como são construídos os mapas offline
As camadas de supercurvas
A camada «estradas com curvas» nasce de uma pipeline de dados própria baseada no OpenStreetMap: para cada estrada calcula-se, a partir da sua geometria, uma pontuação de sinuosidade — quanto mais apertadas e frequentes as curvas, mais alta. Rotundas, semáforos e zonas acalmadas não contam, e estradas não pavimentadas são excluídas. Restam três níveis: âmbar (com curvas), laranja (muito sinuosa) e magenta (extremamente sinuosa) — classificados por pontuação e densidade de curvas por quilómetro, para que nem as regiões montanhosas inundem o mapa nem os troços curtos de serpentinas se percam.
Ao afastar o zoom, o mapa mostra só a classe de topo; ao aproximar, juntam-se as outras. Os três níveis ligam-se individualmente no seletor de mapas — e os mesmos dados alimentam o roteamento KAKIMOTO.
Ver também: KAKIMOTO: a lotaria das curvas · O catálogo de mapas
KAKIMOTO: a lotaria das curvas
O KAKIMOTO é a opção de roteamento mais divertida do TDM — uma lotaria das curvas para motociclistas. A app planeia primeiro uma rota base supersinuosa até ao destino. Depois sorteia, dos dados de supercurvas, segmentos de curvas adicionais num corredor ao longo da rota e integra-os de forma a serem realmente percorridos — não apenas tocados. Um orçamento de desvio mantém a volta razoável: cerca de um terço mais de distância do que a rota base.
O melhor: cada sorteio é diferente. Se o resultado não te agradar, sorteias de novo — e obténs uma nova combinação de troços de curvas. O KAKIMOTO corre sobre o roteamento offline (Valhalla) com o perfil de mota; precisas por isso dos mapas offline da região e dos dados de supercurvas.
Ver também: As camadas de supercurvas · Sem rede? Roteamento integrado offline · Routing de porto em porto