Olá pessoal,
Gostaria da ajuda de vcs. Criei esse Tópico pq preciso saber sobre qual o modo, ou os modos mais utilizados para se inserir uma coordenada capturada em um Mapa. Não exatamente como se faz mas apenas abrir um leque de oportunidades de como se pode fazer para que ai sim eu e outras pessoas interessadas estude detalhadamente as opcões que mais se enquadram pra cada um. Acredito que a maior dificuldade de se estudar algo novo esta em nao saber de quais maneiras ele pode ser aplicado. Sei por exemplo que pode-se enviar as coordenadas para uma pagina web que contem um mapa. Mas será só essa opcão? É possivel inserir em mapas locais?
Obrigado.
Esqueci de perguntar: Quais são os mapas disponiveis para utilizacão? Por exemplo: se optar por criar uma JSP que contem um mapa para o cliente acessá-la enviando suas coordenadas. como se dá o processo? é possivel colocar nessa pagina um mapa do Brazil por exemplo? é simples de se colocar um mapa assim?
Pode utilizar a API do Google Maps mesmo, você pode fazer uma chamada passando as coordenadas e a API te retorna a imagem do mapa.
Acredito que a API do Google Maps seja a mais utilizada.
Aproveitando o tópico, alguém utiliza ou ja utilizou alguma outra API?
Ok,
Então é necessário que eu crie um servidor, por exemplo um servlet, que receberá as coordenadas do dispositivo móvel e possibilite que o mapa seja visualizado com o ponto já inserido…?
é isso?
Valew.
Você pode enviar as coordenadas para um servlet se quiser mostrar num sistema web por exemplo, mas pode tbm mostrar no celular fazendo uma requisição http ao google maps passando as coordenadas e mais alguns parametros como por exemplo: tipo do mapa, marcadores, tamanho etc.
É possivel fazer essa requisicão e visualizar o conteudo da pagina no Wireless tool kit? Como? Sei que é possivel abrir uma HTTPConnection, mas como exibir o mapa na tela?
Dê uma olhada nesse link da Nokia:
http://wiki.forum.nokia.com/index.php/J2ME_Google_Maps_API
acho que vai te ajudar bastante.
Hehe,
JeeProgrammer, eu vi sua resposta no dia que escreveu, porém, dei um tempo nos estudos referentes a este código e, somente hoje retornei a ler esse tópico e olhei o link que me passou a vários dias. Muito BOM!!! Valeu, respondeu todas as minhas dúvidas.
Problemas Resolvidos.
[quote=JeeProgrammer]Dê uma olhada nesse link da Nokia:
http://wiki.forum.nokia.com/index.php/J2ME_Google_Maps_API
acho que vai te ajudar bastante.[/quote]
Segundo esse link tentei utiliza-lo para gerar uma imagem de um mapa.
Ok, Entendi tudo o que foi feito, testei aki mas está dando o seguinte erro:
java.lang.IllegalArgumentException:
at javax.microedition.lcdui.ImmutableImage.<init>(Image.java:909)
at javax.microedition.lcdui.Image.createImage(Image.java:364)
at br.com.JiTVLBS.GoogleMaps.retrieveStaticImage(GoogleMaps.java:34)
é feito a conexão, os dados da imagem são recebidos(ou acho que estão), mas dá erro ao criar a imagem a partir do Array de bytes recebidos da página html. Na Documentacão MIDP diz que o método Image.createImage(byte[] imageData, int imageOffset, int imageLength) lanca a execão “IllegalArgumentException” se imageData está incorretamente formatada ou não pode ser decodificada. O que pode estar acontecendo?
JeeProgrammer, quando vc testou isso, deu algum erro?
Eu testei com aquele exemplo e não tive problemas, tente baixar imagens da sua própria máquina, pode ser que esteja passando algum parâmetro errado para a pesquisa.
Poste seu código aqui pra gente dar uma olhada.
Então…
Eu também estou usando aquele código mesmo. E para utilizar a classe faço o que foi mostrado no final do tutorial:
GoogleMaps gMap = new GoogleMaps("MinhaChave"); //Coloco minha chave que foi gerada para teste.
Image map = gMap.retrieveStaticImage(320, 240, 51.510605, -0.130728, 8, "png32");
Não estou com meus códigos em mãos no momento, mas:
Apenas criei uma classe GoogleMaps, na qual copiei o conteúdo do tutorial e uma classe que faz a chamada acima. Não fiz nenhuma outra coisa. O erro ocorre no seguinte trecho de código:
[code] public Image retrieveStaticImage(int width, int height, double lat, double lng, int zoom,
String format) throws IOException {
byte[] imageData = loadHttpFile(getMapUrl(width, height, lng, lat, zoom, format));
return Image.createImage(imageData, 0, imageData.length); // !!! AKI OCORRE O ERRO !!!
} [/code]
Ou seja, o método getMapUrl() e o loadHttpFile() executam normalmente, o problema é criar a imagem mesmo.
Att
Mais especificadamente, olha como esta meu código: Criei esse MIDlet somente para testar a classe GoogleMaps, a unica coisa que fiz, foi gerar uma chave p/ fazer esse teste.
[code]public class Midlet extends MIDlet
{
Image map;
public void startApp()
{
System.out.println("startApp");
try
{
GoogleMaps gMap = new GoogleMaps("ABQIAAAACvNlk9xqoMSLI4Slu3PdtRQPn-hnknMjHnbJ0X54u-hEB0D1ThRCcjhz064hI9dPjO4Ex8lt_j7ftg");
map = gMap.retrieveStaticImage(200, 100, 51.510605, -0.130728, 8, "png32");
}
catch (IOException ex)
{
ex.printStackTrace();
}
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
}[/code]
Mas o erro continua aparecendo:
java.lang.IllegalArgumentException:
at javax.microedition.lcdui.ImmutableImage.<init>(Image.java:906)
at javax.microedition.lcdui.Image.createImage(Image.java:367)
at GoogleMaps.retrieveStaticImage(GoogleMaps.java:47)
at Midlet.startApp(Midlet.java:19)
at javax.microedition.midlet.MIDletProxy.startApp(MIDletProxy.java:44)
at com.sun.midp.midlet.Scheduler.schedule(+270)
at com.sun.midp.main.Main.runLocalClass(+28)
at com.sun.midp.main.Main.main(+80)