Atualizar pontos no mapa

20 views
Skip to first unread message

Felippe dos Santos Ferreira

unread,
May 3, 2014, 12:28:02 PM5/3/14
to androidb...@googlegroups.com
fala galera beleza....

o problema é o seguinte....

inicio meu app e coloco pontos no mapa...
ai em um determinado momento... eu escolho uma opção no spinner e no mapa quero limpar aqueles pontos e coloca outro novos pontos...

mais quando faço isso estou tendo problemas...

problemas....

so são exibidos pontos da escolha anterior
Exemplo:
1º escolho o João no spinner... nao aparece pontos no mapa
2º escolho a Maria no spinner.... aparece os pontos do joão

outro problema
dps de muito escolher opções no spinner apresenta este erro... java.util.ConcurrentModificationException


sei que preciso remover os pontos do mapa para inserir outros... alguem jah fez isso?

marker.remove();
markerMapVisitador.clear();
markerMap.clear();
map.clear();

Felippe dos Santos Ferreira

unread,
May 5, 2014, 8:54:36 PM5/5/14
to androidb...@googlegroups.com

Poxa galera...
Alguem jah teve este problema?

--
You received this message because you are subscribed to a topic in the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/androidbrasil-dev/1Pm9J945Ze8/unsubscribe.
To unsubscribe from this group and all its topics, send an email to androidbrasil-...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Marcelo Alves

unread,
May 5, 2014, 10:46:50 PM5/5/14
to androidb...@googlegroups.com

​Pode detalhar um pouco melhor o que acontece? Tem tantas variáveis que dificulta um pouco pra te ajudar. Por exemplo :

- Como você pega esses pontos? GPS? De um banco? Web? Random?
- Os dados do spinner vem de onde?
- Como tá o código que gerencia a parte de alteração do Spinner? (poste o código aqui, só colar 4 linhas não ajuda)

E se possível coloque o trecho do código que dá a exceção, só pelo nome dela não temos como descobrir onde está seu erro.

::  marcelo.alves
Message has been deleted

Felippe dos Santos Ferreira

unread,
May 6, 2014, 4:44:58 PM5/6/14
to androidb...@googlegroups.com
consegui arumar o erro java.util.ConcurrentModificationException

era so fazer um for em vez de for each

mais os pontos no mapa nao aparecem...

alguem sabe o pq ?


Em 6 de maio de 2014 16:48, Felippe dos Santos Ferreira <felippen...@gmail.com> escreveu:
os pontos do gps vem de requisição json

os dados do spinner vem de outra requisição json...

lembrando que o o erro so acontece na 5 ou 6 vez que seleciono o spinner

ai clico no spinner e pego os pontos de outro usuario.... basicamente isso vou postar o codigo



 spinnerVisitadores.setOnItemSelectedListener(new OnItemSelectedListener() {
       
                                    @Override
                                    public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
                                    //Log.i("teste","Filter 5");
                                   
//                                     marker.remove();
//                                     markerMapVisitador.clear();
//                                     markerMap.clear();
                                    map.clear();

                                    Visitador visitador = (Visitador) spinnerVisitadores.getAdapter().getItem(arg2);
                                   
                                    Log.i("teste", "else do setOnItemSelectedListener");
                                   
                                    AssyncCarregaDadosVisitadorEscolhido carregaVisitadorEscolhido = new AssyncCarregaDadosVisitadorEscolhido(TelaTabs.this); //nessa assync eu populo as classe com a leitura do json
                                    carregaVisitadorEscolhido.execute(visitador.getId());

                                   
                                    carregaConsultoriosNoMapa(application.getResponsaveis());
                                    }

                                    @Override
                                    public void onNothingSelected(AdapterView<?> arg0) {

                                            
                                    }
            });




public void carregaConsultoriosNoMapa(final Responsaveis responsaveis){

if(responsaveis != null){
//monta os pontos no mapa
for (Responsavel responsavel : responsaveis) { 

marker = map.addMarker(responsavel.getEstablecimento().getMarker()
.icon(BitmapDescriptor b = BitmapDescriptorFactory.fromResource(R.drawable.push_no_ok))
                   .title(responsavel.getNome() + " - " + responsavel.getFone())
                   .snippet("Nome")
                   .draggable(false)); 
markerMap.put(marker, responsavel);

}
}
if(application.isAdmin()){

for(int i = 0 ; i <  application.getVisitadores().size(); i ++){
Visitador visitador = application.getVisitadores().get(i);

marker = map.addMarker(new MarkerOptions().position(new LatLng(visitador.getLatitude(), visitador.getLongitude()))
.icon(BitmapDescriptorFactory.fromResource(R.drawable.push_visitador))
                   .title(visitador.getNome())
                   .snippet("Região ")
                   .draggable(false)); 
markerMapVisitador.put(marker, visitador);
}
}
}




















--

Daniel Santin Debastiani

unread,
May 6, 2014, 10:55:30 PM5/6/14
to androidb...@googlegroups.com
Cara isso está me parecendo um erro, ou uma lógica mal feita com os métodos executados em AsyncTask.
Lembre-se que processos executados via AsyncTask são assíncronos, como o nome da classe sugere.
Isso significa que a aplicação não espera que a tarefa executada pelo asyncTask termine para prosseguir.
O que é muito provável, pela tua lógica o erro de acesso concorrente ocorrer, pois enquanto um método tenta atualizar as
variáveis, outro tenta ler os dados.

Dessa forma pode ser que o mapa seja atualizando antes dos dados serem carregados.
Você deve gerenciar a atualização do mapa no onPostExecute da tua AsyncTask.

Espero ter ajudado em algo.


Att,
Daniel Santin Debastiani


--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-...@googlegroups.com.

Felippe dos Santos Ferreira

unread,
May 7, 2014, 9:21:33 AM5/7/14
to androidb...@googlegroups.com
erra bem isso...
mais o principal erra que a atualização do mapa so funcionava em uma UITread...
ai fiz a Tread dentro da Assync...

uma coisa muito loka... nem eu acreditei que iria dar certo... mas deu certo
Reply all
Reply to author
Forward
0 new messages