Saltar para conteúdo


Foto
- - - - -

Recuperar coordenadas atraves do click no mapa ?


  • Por favor inicie sessão para responder
15 respostas a este tópico

#1 hugosouza

hugosouza

    Membro

  • Membros
  • PipPip
  • 24 mensagens

Mensagem publicada 09 May 2012 - 17:37

Pessoal, preciso de uma ajuda, verifiquei varios tutoriais na internet e ate mesmo no site do android.dev mas nao encontrei essa informação.Sei que devo usar o recurso do geocooder mas nao sei como.Preciso de algo para quando o usuario clicar no mapa ele retornar as coordenadas em latitude, longitude ou um location.Alguem sabe como ou algum codigo pronto para isso?

#2 r3pek

r3pek

    Guru de Android

  • Former Staff
  • PipPipPipPipPip
  • 1560 mensagens
  • LocalizaçãoBA4 - Terceira - Açores
  • Nexus One + Motorola XOOM

Mensagem publicada 09 May 2012 - 17:39

Como tenho actualmente é através de um overlay que adiciono ao mapa, e depois é só detectar o onTap desse overlay.

#3 hugosouza

hugosouza

    Membro

  • Membros
  • PipPip
  • 24 mensagens

Mensagem publicada 09 May 2012 - 17:41

Isso eu fiz, estou precisando que quando o cara clica em uma parte do mapa livre, que ainda nao tem nenhum item ele retornaria as corrdenadas para depois por exemplo incluir um overlay.

#4 r3pek

r3pek

    Guru de Android

  • Former Staff
  • PipPipPipPipPip
  • 1560 mensagens
  • LocalizaçãoBA4 - Terceira - Açores
  • Nexus One + Motorola XOOM

Mensagem publicada 09 May 2012 - 17:44

Exacto. qual é o problema então? o método onTap já te dá o GeoPoint que foi clicado. é só guardares isso e usares noutro Overlay

#5 hugosouza

hugosouza

    Membro

  • Membros
  • PipPip
  • 24 mensagens

Mensagem publicada 09 May 2012 - 17:47

No, é mesmo, auauua.Você sabe de algum meio de ao digitar um endereço e ele encontrar a localização no mapa como ocorre no GoogleMaps ?

#6 r3pek

r3pek

    Guru de Android

  • Former Staff
  • PipPipPipPipPip
  • 1560 mensagens
  • LocalizaçãoBA4 - Terceira - Açores
  • Nexus One + Motorola XOOM

Mensagem publicada 09 May 2012 - 17:51

http://developer.and...n/Geocoder.html

#7 hugosouza

hugosouza

    Membro

  • Membros
  • PipPip
  • 24 mensagens

Mensagem publicada 14 May 2012 - 20:08

Depois de alguns dias consegui funcionar o click no mapa e recuperar as coordenadas só que eu consigo ir clicando e ele ir adicionando, mas tenho dois problemas:
1- Só consigo usar a comparação do if pelo MotionEvent.ACTION_DOWN sendo que na maioria dos tutoriais pede para colocar a comparação do IF igual a 1, if (event.getAction() == 1) mas não funciona:
public boolean onTouch(View v, MotionEvent event) {			   
 //v.onTouchEvent(event); 				
Log.i("touchEvent", "Ta rolando alguma coisa");				
if (event.getActionIndex() == [b][color=#FF8000]MotionEvent.ACTION_DOWN[/color][/b]) {…….…....
2 - Ele adiciona os pontos como falei mas se eu mover o mapa para outra visão, clicando e arrastando no emulador depois não consigo mais fazer funcionar, ele para de adicionar os pontos e retornar as coordenadas:
Código completo:[attachment=7778]setOnTouchListener.JPG[/attachment]

#8 r3pek

r3pek

    Guru de Android

  • Former Staff
  • PipPipPipPipPip
  • 1560 mensagens
  • LocalizaçãoBA4 - Terceira - Açores
  • Nexus One + Motorola XOOM

Mensagem publicada 14 May 2012 - 20:35

Pára de os mostrar ou tu paras de os ver?O que acontece exactamente nesse código da imagem?Não é executado?É executado mas dá erro (exception) nalgum método? Qual erro?Executa todo sem dar erro? Confirmaste que o AddOverlays guarda o ponto?

#9 hugosouza

hugosouza

    Membro

  • Membros
  • PipPip
  • 24 mensagens

Mensagem publicada 15 May 2012 - 03:49

Pára de os mostrar ou tu paras de os ver?O que acontece exactamente nesse código da imagem?Não é executado?É executado mas dá erro (exception) nalgum método? Qual erro?Executa todo sem dar erro? Confirmaste que o AddOverlays guarda o ponto?

O problema principal é que ele executa o proposto que é ler o toque na tela mas quando faço algo especifico durante o teste que é mover o mapa além da visão que ele esta apresentando naquele momento, exemplo, estou vendo a cidade do Rio de Janeiro no mapa, em um zoom mediano, marco alguns itens na tela que são adicionados sem problema como foi proposto, se eu quiser ir com a visão para fora das partes do rio que foram carregadas inicialmente, algum bairro, praia que não esta no campo de visão do mapa , ou seja, arrastar o mapa, começa o problema. Ele para de detectar o toque na tela.

#10 r3pek

r3pek

    Guru de Android

  • Former Staff
  • PipPipPipPipPip
  • 1560 mensagens
  • LocalizaçãoBA4 - Terceira - Açores
  • Nexus One + Motorola XOOM

Mensagem publicada 15 May 2012 - 09:12

Podes mostrar o método AddOverlays? Cheira-me que o event está a ficar "preso" antes de chegar ao onTouch

#11 hugosouza

hugosouza

    Membro

  • Membros
  • PipPip
  • 24 mensagens

Mensagem publicada 15 May 2012 - 10:56

Podes mostrar o método AddOverlays? Cheira-me que o event está a ficar "preso" antes de chegar ao onTouch

Segue o print do metodo AddOverlays.Imagem colocada

#12 r3pek

r3pek

    Guru de Android

  • Former Staff
  • PipPipPipPipPip
  • 1560 mensagens
  • LocalizaçãoBA4 - Terceira - Açores
  • Nexus One + Motorola XOOM

Mensagem publicada 15 May 2012 - 13:40

Sinceramente até me choca que isso funcione. Já reparaste bem que por cada toque que dás no ecrã:
  • Crias um ArrayList para guardares um ponto
  • Crias um novo overlay com um ArrayList the pontos, mas que afinal é só um.
  • Adicionas este novo overlay aos já existentes.
Ao fim de 5 toques no ecrã tens 5 overlays no mapa, com um arraylist the pontos cada um, mas com apenas um ponto cada. Não achas isto overkill?!Porque não fazes como te disse?

#13 hugosouza

hugosouza

    Membro

  • Membros
  • PipPip
  • 24 mensagens

Mensagem publicada 15 May 2012 - 15:05

Sinceramente até me choca que isso funcione. Já reparaste bem que por cada toque que dás no ecrã:

  • Crias um ArrayList para guardares um ponto
  • Crias um novo overlay com um ArrayList the pontos mas que afinal é só um.[/li'] [li]Adicionas este novo overlay aos já existentes.
Ao fim de 5 toques no ecrã tens 5 overlays no mapa, com um arraylist the pontos cada um, mas com apenas um ponto cada. Não achas isto overkill?!Porque não fazes como te disse?

É eu sei, ja havia reparado isso mas meu foco era fazer reconhecer o toque na tela e deixei de lado o outro codigo para melhorar ele depois.O que você disse?

#14 r3pek

r3pek

    Guru de Android

  • Former Staff
  • PipPipPipPipPip
  • 1560 mensagens
  • LocalizaçãoBA4 - Terceira - Açores
  • Nexus One + Motorola XOOM

Mensagem publicada 15 May 2012 - 15:19

é veres este post e este.

#15 hugosouza

hugosouza

    Membro

  • Membros
  • PipPip
  • 24 mensagens

Mensagem publicada 15 May 2012 - 15:38

[quote name="hugosouza" post=322611][quote name='"r3pek" post=322588]Sinceramente até me choca que isso funcione. Já reparaste bem que por cada toque que dás no ecrã:
  • Crias um ArrayList para guardares um ponto
  • Crias um novo overlay com um ArrayList the pontos mas que afinal é só um.[/li'] [li]Adicionas este novo overlay aos já existentes.
Ao fim de 5 toques no ecrã tens 5 overlays no mapa' date=' com um arraylist the pontos cada um, mas com apenas um ponto cada. Não achas isto overkill?!Porque não fazes como te disse?[/quote']É eu sei, ja havia reparado isso mas meu foco era fazer reconhecer o toque na tela e deixei de lado o outro codigo para melhorar ele depois.O que você disse?[/quote]Só para ficar mais confortável e tirar a duvida, retirei o trecho do código que incluía o overlay pelo AddOverlay.Agora o que ele deve fazer é simplesmente mostrar a mensagem na tela “Clicado com sucesso.”Fiz a modificação para testar o que você falou r3pek retirando o AddOverlay, ele mostra a mensagem na tela normalmente quando clicado mas se eu mover o mapa e clicar novamente o logcat acusa que ele foi para o trecho do codigo fora do ontouch e não funciona mais.Imagem colocadaSegue trecho do logcat:[attachment=7790]Capturar3_2012-05-15.JPG[/attachment]

#16 r3pek

r3pek

    Guru de Android

  • Former Staff
  • PipPipPipPipPip
  • 1560 mensagens
  • LocalizaçãoBA4 - Terceira - Açores
  • Nexus One + Motorola XOOM

Mensagem publicada 15 May 2012 - 16:54

faz sempre "return false".