2013-02-28 32 views
12

Tôi đang cố gắng loại bỏ Polyline đã thêm trước đó và vẽ lại Polyline mới khi vị trí đã được thay đổi. Tôi đã thử cảAPI Google Maps Android v2, cách loại bỏ Polylines khỏi bản đồ?

this.routeToDestination.setPoints (pointsToDestination) và this.routeToDestination.remove()

nhưng không ai trong số họ làm việc.

Tôi đi theo How to draw a dynamic line (route) with Google Maps Android API v2 nhưng không thể giải quyết vấn đề

@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()' được cho là hoạt động, theo tài liệu. Đảm bảo rằng bạn đang sử dụng phiên bản mới nhất của thư viện "Dịch vụ Google Play" trong khu vực Extras của Trình quản lý SDK của bạn (gần đây nhất là "rev 5") và bạn đang sử dụng dự án thư viện đó. Nếu sự cố vẫn tiếp diễn, hãy tạo một dự án mẫu trình bày lỗi đăng nó, có thể là sự cố với trình theo dõi vấn đề của Maps: http://code.google.com/p/gmaps-api-issues/issues/list – CommonsWare

+0

cảm ơn, tôi sẽ thử –

+0

tôi có phải áp dụng riêng các thay đổi cho bản đồ (gọi một hàm) không? –

Trả lời

31

Để loại bỏ một polyline bạn chỉ nên sử dụng loại bỏ() phương pháp như đã nêu trong 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

Tôi gặp khó khăn tương tự. Tôi gọi setPoints trên một polyline và vẫn còn những hiện vật mà không bao giờ bị loại bỏ khỏi các điểm trước đó. Nó có vẻ là một điều thời gian như nhanh hơn tôi cập nhật điểm tồi tệ hơn là hiệu ứng. –

Các vấn đề liên quan