2013-02-28 16 views
12

Sto tentando di rimuovere Polilinea aggiunta in precedenza e ridisegnare una polilinea nuova quando la posizione è stata modificata. Ho provato entrambeAPI di Google Maps per Android v2, come rimuovere le polilinee dalla mappa?

this.routeToDestination.setPoints (pointsToDestination) e this.routeToDestination.remove()

ma nessuno di loro ha lavorato.

ho seguito How to draw a dynamic line (route) with Google Maps Android API v2 ma non poteva risolto il problema

@Override 
    public void onResume() { 
     super.onResume(); 

     routeToDestination = mMap.addPolyline(new PolylineOptions() 
       .add(new LatLng(location.getLatitude(), location.getLongitude()), 
         new LatLng(this.destinationLatitude, this.destinationLongitude)) 
       .width(1) 
       .color(Color.DKGRAY) 

     ); 
    } 

    @Override 
    public void onLocationChanged(Location location) { 

     List<LatLng> pointsToDestination = new ArrayList<LatLng>(); 
     pointsToDestination.add(new LatLng(location.getLatitude(), location.getLongitude())); 
     pointsToDestination.add(new LatLng(destinationLatitude, destinationLongitude)); 

     this.routeToDestination.setPoints(pointsToDestination); 
    } 

} 
+1

'remove()' dovrebbe funzionare, in base alla documentazione. Assicurati di essere nell'ultima versione della libreria "Google Play Services" nell'area Extra del tuo SDK Manager (l'ultima ora è "rev 5") e che stai utilizzando quel progetto di libreria. Se il problema persiste, crea un progetto di esempio che mostri l'errore pubblicandolo, forse come un problema al tracker dei problemi di Maps: http://code.google.com/p/gmaps-api-issues/issues/list – CommonsWare

+0

grazie, I proverò –

+0

devo applicare le modifiche alla mappa separatamente (chiamando una funzione)? –

risposta

31

Per rimuovere una polilinea si dovrebbe usare semplicemente rimuovere() Metodo come indicato nell'API.

//Add line to map 
Polyline line = mMap.addPolyline(new PolylineOptions() 
      .add(new LatLng(location.getLatitude(), location.getLongitude()), 
        new LatLng(this.destinationLatitude, this.destinationLongitude)) 
      .width(1) 
      .color(Color.DKGRAY) 

//Remove the same line from map 
line.remove(); 
+0

Ho difficoltà simili. Io chiamo setPoints su una polilinea e ci sono ancora artefatti che non vengono mai rimossi dai punti precedenti. Sembra essere una cosa temporizzata in quanto più velocemente aggiorno punti, peggio è l'effetto. –

Problemi correlati