2016-09-28 1 views
2

Ich habe eine Karte, wo ich bin Marker platzieren und sie mit PolyLines verbindet:Polylines nicht aus GoogleMap entfernt werden

PolylineOptions p = new PolylineOptions(); 
p.color(Color.BLUE); 
p.width((float) 7.0); 
Polyline polyLine = this.mMap.addPolyline(p); 
p.add(actualLocation); 
LatLng previousPoint = latLngs.get(latLngs.size() - 2); 
p.add(previousPoint); 
this.polyLines.add(polyLine); 
mMap.addPolyline(p); 

ich das Objekt p in einer Arraylist speichern:

ArrayList<Polyline> polyLines = new ArrayList<>(); 

Wenn ich den letzten Marker entferne, möchte ich auch die letzte Polylinie entfernen. Ich mache den nächsten:

Ich entferne den Marker, aber die Polylinie bleibt in der Karte. Ich entferne es auch von der ArrayList.

Kann mir jemand helfen, herauszufinden, was passiert? Ich habe versucht, die Polylinie unsichtbar zu machen oder die Farbe zu ändern, aber es wird nicht funktionieren.

+0

Ich bin nicht vollständig vertraut mit GoogleMap-API, aber soweit ich Ihnen sagen kann, müssen Sie die Polylinien auf der Karte neu zeichnen. Löschen Sie die Karte und fügen Sie sie erneut hinzu. – zec

+0

Danke für die Idee. Es funktionierte! – n4h1n

Antwort

1

Es sieht für mich so aus, als würden Sie der Karte tatsächlich zwei Polylinien hinzufügen ... Wenn PolylineOptions() veränderbar ist, sobald sie an eine Polylinie angehängt sind, befinden sie sich an der gleichen Stelle, ansonsten fügen Sie eine ohne Positionierung hinzu eine Sekunde. Nur die zweite Polylinie wird Ihrer Liste hinzugefügt.

Statt dem:

PolylineOptions p = new PolylineOptions(); 
p.color(Color.BLUE); 
p.width((float) 7.0); 
Polyline polyLine = this.mMap.addPolyline(p); // Add before location set 
p.add(actualLocation); 
LatLng previousPoint = latLngs.get(latLngs.size() - 2); 
p.add(previousPoint); 
this.polyLines.add(polyLine); 
mMap.addPolyline(p); // Add after location set 

Wollen Sie dies tun?

PolylineOptions p = new PolylineOptions(); 
p.color(Color.BLUE); 
p.width((float) 7.0); 
p.add(actualLocation); 
LatLng previousPoint = latLngs.get(latLngs.size() - 2); 
p.add(previousPoint); 
Polyline polyLine = mMap.addPolyline(p); 
this.polyLines.add(polyLine); 
Verwandte Themen