Posts Tagged “java”

Ano retrasado conheci um site muito interessante, o OpenStreetMap. Audacioso, o projeto se propõe a construir e manter um mapa-mundi semelhante ao Google Maps e afins (só o mapa, sem as imagens de satélite) porém com conteúdo unicamente postado por usuários e sob uma licença livre (GFDL). Enquanto certas cidades européias encontram-se mapeadas com fidelidade igual ou (frequentemente) superior às alternativas comerciais, aqui no Brasil ainda temos um esforço colaborativo a ser feito. Foi divertido mapear meu bairro. :)

De qualquer forma, o post do Rafael Rossignol Felipe no Br-Linux sobre o OpenStreetMap me introduziu o GpsMid, um programa feito em Java (J2ME) para exibir os mapas do OSM em seu celular. Além do fato de ser totalmente livre, o uso do GpsMid apresenta algumas vantagens, como o fato de exibir os mapas e traçar rotas offline, isto é, sem tráfego de dados. Sendo Java, serve para praticamente qualquer celular, testei aqui no meu N95 e funcionou perfeitamente.

A instalação ainda não é trivial, ou melhor, a geração do instalador, já que o programa utiliza os mapas offline que precisam estar embutidos dentro do arquivo .jar. Criei um com o mapa da cidade do Rio de Janeiro e arredores, cujo link para download está no fim do post.

Primeiro precisamos definir qual área do mapa queremos ter. Não é possível ter o mundo inteiro – para você ter uma idéia, o arquivo planet.osm, um XML que contém o mapa-mundi bruto, tem hoje 95 GB (ou 4 GB compactado em bzip2). O ideal então é pegar somente a cidade que você vive, ou a região a qual você vai. Neste exemplo, criei com a cidade do Rio de Janeiro. Como ainda não temos muita gente mapeando o Brasil, acredito que o país inteiro – ou melhor, o que há mapeado dele – não ocuparia mais que 50 MB, mas não experimentei. De qualquer forma, entre no OpenStreetMap e dê zoom até a região que deseja construir o mapa:

Rio de Janeiro no OpenStreetMapRio de Janeiro no OpenStreetMap

Enquanto isso, baixe o JOSM – Java OpenStreetMap Editor. Execute-o com java -jar josm-latest.jar. Vá na opção File > Download from OSM… e entre com o link do mapa, encontrado na parte inferior direita do mesmo (Permalink) ou, caso prefira, entre com a latitude e longitude de começo e fim, e clique em OK.

Fazendo download do mapa com o JOSM

O JOSM irá efetuar o download do mapa bruto e o exibirá na tela. Vá na opção File > Save e dê um nome qualquer com a extensão osm, como rio.osm. Alternativamente, você poderá efetuar o download do planeta inteiro, veja mais informações no Wiki do OpenStreetMap.

JOSM exibindo o mapa do Rio de Janeiro

De qualquer forma, tendo o mapa .osm em mãos, é hora de misturar o mapa com o GpsMid, utilizando o Osm2GpsMid. Baixe-o e execute-o com java -jar Osm2GpsMid-*.jar, selecione a área a ser incluída no programa utilizando o botão direito do mouse; em Openstreetmap data source escolha o mapa osm; em Midlet name digite algo ou deixe o padrão e clique em Create GpsMid midlet.

Osm2GpsMid

O programa irá criar dois arquivos, um .jad e um .jar, agora basta transferi-los para seu telefone, abrir o .jad e instalar. Confira o screenshot:

GpsMid-RioDeJaneiro

Se quiser experimentar e não quiser passar por todo o processo, baixe aqui o GpsMid-RioDeJaneiro.

Tags:, , , , ,

Comments 6 comentários »