2017-02-02 40 views
0

我的应用程序,我在地图上添加2标记。当我点击添加第二个标记时,我调用一个函数来计算路线并在地图上添加折线。 这是折线安卓删除折线或替换

protected void onPostExecute(List<List<HashMap<String, String>>> result) { 
     ArrayList<LatLng> points = null; 
     PolylineOptions lineOptions = null; 
     MarkerOptions markerOptions = new MarkerOptions(); 
     String distance = ""; 
     String duration = ""; 
     String value_duration = ""; 


     // Traversing through all the routes 
     for (int i = 0; i < result.size(); i++) { 
      points = new ArrayList<LatLng>(); 
      lineOptions = new PolylineOptions(); 

      // Fetching i-th route 
      List<HashMap<String, String>> path = result.get(i); 

      // Fetching all the points in i-th route 
      for (int j = 0; j < path.size(); j++) { 
       HashMap<String, String> point = path.get(j); 


       if (j == 0) { // Get distance from the list 
        distance = (String) point.get("distance"); 
        continue; 
       } else if (j == 1) { // Get duration from the list 
        duration = (String) point.get("duration"); 
        value_duration = (String) point.get("duration_"); 
        continue; 
       } 

       double lat = Double.parseDouble(point.get("lat")); 
       double lng = Double.parseDouble(point.get("lng")); 
       LatLng position = new LatLng(lat, lng); 

       points.add(position); 
      } 

      // Adding all the points in the route to LineOptions 
      lineOptions.addAll(points); 
      lineOptions.width(10); 
      lineOptions.color(Color.parseColor("#F7B907")); 

     } 

     // Drawing polyline in the Google Map for the i-th route 
     distanza_percorso = distance; 
     durata_percorso = duration; 

     testo_car.setText(durata_percorso); 

     durata_tragitto = Float.parseFloat(value_duration); 
     Log.d("durata_tragitto", "durata: " + value_duration); 

     polylineFinal = map.addPolyline(lineOptions); 


     moveToBounds(map.addPolyline(lineOptions)); 


    } 

现在我想通过地图,如果我更换第二标记,并调用一个新的计算路线删除折线的代码。 我写这个编码:

if (polylineFinal != null){ 
      polylineFinal.remove(); 
     } 

但地图上的折线不会被删除。 你能帮我吗?任何想法为什么?

感谢

回答

1

不知道,但尝试这个更新添加折线代码,

polylineFinal = map.addPolyline(lineOptions); 
moveToBounds(polylineFinal); 
+0

感谢您的重播和帮助。现在工作正常:-) – APPGIS