Autore Topic: Refresh dei marcatori al cambio di posizione  (Letto 560 volte)

Offline Alhazred

  • Utente junior
  • **
  • Post: 51
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Asus Zenfone 2 Laser ZE550KL
  • Sistema operativo:
    Windows 10 Home 64bit
Refresh dei marcatori al cambio di posizione
« il: 12 Marzo 2012, 15:29:52 CET »
0
Sulla mia applicazione ho 2 marcatori su una mappa.
Uno è fisso, l'altro si muove secondo la posizione GPS del dispositivo.
Questo funziona, il problema è che il marcatore che si sposta lascia una scia perché invece di venire cancellato dalla posizione precedente e rimesso sulla nuova, viene semplicemente aggiunto ogni volta.

Questo è il codice che mi mette il marcatore che si muove
Codice: [Seleziona]
public void onLocationChanged(Location location) {
                // Aggiorna il marker della mappa
                mapView.invalidate();

            // Aggiungiamo l'overlay sulla mappa della nostra posizione
            myLocationOverlay = new MyLocationOverlay(ShowMapActivity.this, mapView);
            List<Overlay> overlays = mapView.getOverlays();
            overlays.add(myLocationOverlay);
            myLocationOverlay.enableMyLocation();

            //Marker 2
            Drawable walkMarker = ShowMapActivity.this.getResources().getDrawable(R.drawable.walk_marker);
            MapItemizedOverlay itemizedoverlay2 = new MapItemizedOverlay(walkMarker, ShowMapActivity.this);
           
            //POSIZIONE CORRENTE
            Double geoLat = location.getLatitude()*1E6;
            Double geoLng = location.getLongitude()*1E6;
            GeoPoint point2 = new GeoPoint(geoLat.intValue(), geoLng.intValue());
            OverlayItem overlayitem2 = new OverlayItem(point2, "", "");
           
            itemizedoverlay2.addOverlay(overlayitem2);

            overlays.add(itemizedoverlay);
            overlays.add(itemizedoverlay2);
            //centra sul punto corrente
            mapController.animateTo(point2);
        }
Non dovrebbe pensarci mapView.invalidate() a fare il refresh?