2017-02-02 4 views
0

в моем приложении добавьте 2 маркера на карту. Когда я добавляю второй маркер с кликом, я вызываю функцию для вычисления маршрута и добавления полилинии на карту. Это код полилинииAndroid Удалите полилинию или замените

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)); 


    } 

Теперь я хотел бы удалить полилинию на карте, если я заменить второй маркер и вызвать новый маршрут CALCulate. меня написать этот Codde:

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

но полилинию на карте не удалить. Вы можете мне помочь? Любая идея почему?

Благодаря

ответ

1

Не уверены, но попробуйте обновить добавление кода полилинии с этим,

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

Спасибо за ваш повтор и помощи. Сейчас работает отлично :-) – APPGIS