SVG - Scalable Vector Graphics |
Ao perceber que não seria possível implementar o aplicativo para a visualização dos mapas com as ferramentas e frameworks relacionados a GIS, consideramos a solução que consistia em se digitalizar um mapa e utilizar a especificação do SVG para se permitir ao usuário aumentar, diminuir e navegar pela imagem.
SVG - Scalable Vector GraphicsO SVG consiste de módulos baseados em XML, que tem por objetivo descrever gráficos de duas dimensões, com animações e interatividade, e de um conjunto de APIs que podem ser utilizadas para se desenvolver aplicações baseadas em gráficos. A especificação atual é a versão 1.2, sendo bastante densa e complexa. A vantagem do SVG sobre formatos Bitmap, como JPEG e PNG consiste na possibilidade de se desenvolver aplicações com animações e gráficos interativos, uma vez que os últimos são estáticos, equanto o primeiro é dinâmico.Inicialmente, a especificação foi voltada a aplicações de Desktop, porém, grandes empresas que trabalham no ramo da Computação Móvel viram no SVG uma forma de oferecer uma grande variedade de serviços e decidiram incentivar a adaptação da especificação SVG para os dispositivos móveis. No entanto, existia uma grande diferença entre os recursos disponíveis em Laptops, PDAs e telefones celulares, o que fez com que se modularizasse o SVG em três níveis:
Apesar de o SVG Tiny possuir algumas limitações, como o fato de não suportar gradientes ou aplicar padrões, ele suporta animações e possui funcionalidades básicas para se desenvolver aplicativos para dispositivos móveis que lidam com gráficos. Além disso, a especificação do SVG Tiny vale para todos os dispositivos móveis, uma vez que ela é uma parte da especificação do SVG Basic. O uso de SVG vem crescendo continuamente e tem um futuro promissor. Vem-se utilizando o SVG para desenvolver aplicativos GIS, entre muitos outros. Uma evidência do aumento da popularidade do SVG é o fato de o JCP (Java Community Process) ter criado uma equipe JSR (Java Scpecifications Request), liderada pela Nokia e pela Sun, para se desenvolver uma API Java, baseada em SVG Tiny, para o J2ME. Apesar de a iniciativa ser boa, não existem implementações diponíveis para a API. Apesar de se existir a especificação SVG Mobile, existem poucoas implementações para se processar o conteúdo SVG Tiny em dispositivos móveis, sendo que uma das melhores e mais populares atualimente é o TinyLine, por ser fácil de se obter, ser livre e poder ser utilizado em telefones que não possuem uma implementação SVG inclusa. O TinyLine utiliza Java e roda em vários "perfis" do J2ME (J2ME MIDP2.0, Nokia SEries 60 MIDP e J2ME Personal Profile). Além de permitir que se visualize o conteúdo SVG, o TinyLine oferece uma toolkit (que pode ser obtida sem nenhum custo) para se lidar com os gráficos. Ele se encontra na versão 1.9 e passa por quase todos os testes na porção SVG Tiny do W3C SVG 1.1 Test Suite (que serve como uma base de comparação para se verificar se a implementação está de acordo com a especificação), possuindo uma equipe de desenvolvedores bastante ativa. Vale observar que não foi utilizado o SVG Basic para a implementação do aplicativo por não se ter encontrado uma implementação não comercial dessa especificação. TinyLineComo foi citado acima, a TinyLine oferece uma toolkit para se lidar com imagens SVG. Existem dois pacotes principais: TinyLine 2D e TinyLine SVG, sendo que o último une as funcionalidades do primeiro com a implementação da especificação Mobile SVG.O TinyLine 2D é uma biblioteca de classes J2ME para gráficos de duas dimensões de alta performance, sendo que se tem como objetivo expandir as funcionalidades para gráficos 2D do J2ME. Ela foi projetada para ser pequena (menos que 35k), muito eficiente e compatível ao CLDC 1.0/MIDP. A SDK foi projetada para minimizar o uso de RAM e de processador. A TinyLine SVG Toolkit consiste de aplicações SVG Tiny e uma SDK para dispositivos J2ME. Essas aplicações são visualizadores de SVG Tiny para diferentes perfis do J2ME, sendo que as principais vantagens delas sobre outros visualizadores são:
|