Google Maps no JME
Escrito por Quintana em 16/02/09 17:48
Achei um artigo muito interessante no fórum da Nokia que explica como colocar um mapa do Google maps em seu aplicativo em JME.

A idéia é simples: o Google disponibiliza uma API de mapas estáticos, que não são nada além de mapas no formato de imagens. Esses mapas podem ser personalizados em seu formato, tamanho, localização, nível de zoom e até indicadores dentro do mapa. Um exemplo é a url:
http://maps.google.com/staticmap?center=40.714728,-73.998672&zoom=14&size=512x512&markers=40.702147,-74.015794,blues
Essa URL traz uma imagem do Google maps da posição 40.714728,-73.998672, com zoom 14 e coloca um marcador no mapa. Uma dica para mostrar um mapa em JME é pedir que o mapa venha em formato PNG, pois há muitos celulares que só suportam esse formato de imagem. Faça isso usando o parâmetro: format=png8. Uma lista completa dos parâmetros pode ser encontrada na documentação oficial da API de mapas estáticos do Google.
O problema dessa API é que ela requer a latitude e a longitute para desenhar o mapa. Mas nem tudo está perdido, existe um serviço do Google que retorna a latitude, a longitude e outras informações de um endereço conhecido. Um exemplo é a url:
http://maps.google.com/maps/geo?q=1600+Amphitheatre+Parkway,+Mountain+View,+CA&output=xml&key=abcdefg
Essa URL retorna um XML com várias informações, entre elas as coordenadas do endereço (<coordinates<-122.0841430,37.4219720,0</coordinates<). Assim é possível construir um aplicativo que mostre mapas de endereços conhecidos (pelo Google, é claro). Um código-fonte para isso pode ser encontrado artigo do fórum da Nokia.
A nova versão do CineMobits já está utilizando essa API para mostrar o mapa dos cinemas :)
Por falar no CineMobits, que está ficando ótimo, seria muito legal ter opção para alterar ou excluir uma cidade cadastrada. E seria melhor ainda poder digitar a latitude e longitude para os cinemas que o programa listar sem conseguir localizar o mapa correspondente. Parabéns pelo programa, espero ter ajudado.