Localização do Usuario em Tempo Real!

14 views
Skip to first unread message

Henrique

unread,
Jul 15, 2016, 10:37:29 PM7/15/16
to Livro Dominando o Android
Olá Professor Glauber!
    Estou com uma dificuldade em conseguir a marcar a localização de um Usuário em tempo real em uma Activity  do google Maps, eu consegui duas ocasiões, em uma ele marcava a localização do usuário logo após a localização do usuário ser encontrada, porém o gps era desligado e e assim a unica localização que ficava marcada no mapa era essa localização primeira encontrada, caso o usuário se movesse a marcação não se movia junto, e na outra eu consegui que a marcação se movesse junto com o usuário, porem de tempo em tempo ele fazia uma nova marcação no mapa de acordo com a localização do usuário, sem apagar as localizações anteriores, assim formando um acumulo de marcações no map, seria possível em tempo mostrar a localização do usuário em tempo real assim com o app do Google Maps?
  Obrigado!!

Henrique

unread,
Jul 18, 2016, 4:49:29 PM7/18/16
to Livro Dominando o Android
Olá, depois de muito tempo pensando conseguir desenvolver um  marcador de localização de usuário em tempo real, acho que com um delay um pouco maior que o do Google maps, utilizando o método onLocationChanged, eu testei ele aqui e está funcionando muito bem! Vou deixar o código aqui para quem mais enfrentar o mesmo problema que eu tive:

public class MapsActivity extends ActionBarActivity implements OnMapReadyCallback, LocationListener {

public Marker markA;
public Marker markB;
public boolean booleA = false;
public boolean booleB = false;
@Override
public void onLocationChanged(Location localizacaoUsuario) {
// mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(localizacaoUsuario.getLatitude(), localizacaoUsuario.getLongitude()), 18));
if (booleA == false){
if (booleB == true){
markB.remove();
}
markA = mMap.addMarker(new MarkerOptions().position(new LatLng(localizacaoUsuario.getLatitude(), localizacaoUsuario.getLongitude())).title("Eu").zIndex(-2));
booleA = true;
booleB = true;
}else {
markA.remove();
markB = mMap.addMarker(new MarkerOptions().position(new LatLng(localizacaoUsuario.getLatitude(), localizacaoUsuario.getLongitude())).title("Eu").zIndex(-2));
booleA = false;
}

} Abraço!
Reply all
Reply to author
Forward
0 new messages