необходимо удалить последнюю полилинию и создать текущую полилинию

я делаю карту Google с руководством Google, я использую классhttp://www.akexorcist.com/2015/12/google-direction-library-for-android-en.html что кто-то строит для Google. все хорошо работает, а ломаную показывают на карте. но когда мне нужно нажать другое направление, например направление ходьбы или направление движения, я вижу 2 полилинии на карте и хочу видеть только текущую полилинию.

здесь я создаю полилинию и удаляю полилинию в начале, тогда полилиния вообще не отображается. я не хочу этого я хочу, когда я нажимаю кнопку «еще», полилиния будет удалена. я пытаюсь поставить, polyline.remove (); при нажатии кнопки еще, но проблема в том, что, polyline.remove (); вне скобок polyline.remove (); не удаляйте ломаную линию. мне нужно вызвать polyline.remove (); когда я нажимаю другую кнопку, но я застрял. вот код:

    switch (direction.getStatus()) {
        case RequestResult.OK:
            Route route = direction.getRouteList().get(0);

            Leg leg = route.getLegList().get(0);

            ArrayList<LatLng> pointList = leg.getDirectionPoint();

            List<Step> stepList = direction.getRouteList().get(0).getLegList().get(0).getStepList();
            ArrayList<PolylineOptions> polylineOptionList = DirectionConverter.createTransitPolyline(this, stepList, 5, Color.RED, 3, Color.BLUE);
            for (PolylineOptions polylineOption : polylineOptionList) {
                polyline = mMap.addPolyline(polylineOption);
                polyline.remove();

            }

                break;

2. когда я нажимаю кнопку ходьбы, я хочу, чтобы транзитная полилиния удаляла то, что у нас есть только одна постоянная, только одна полилиния на карте. как я это делаю?

   bWalking.setOnClickListener(new View.OnClickListener() {
                                        @Override
                                        public void onClick(View v) {
                                            if (locationGpsLatLng == null) {
                                                Toast.makeText(MapsActivity.this, "Need GPS location", `enter code here`Toast.LENGTH_SHORT).show();{
                                                    return;
                                                }
                                            }
                                            if (markerLocation == null) {
                                                Toast.makeText(MapsActivity.this, "Type on marker bathroom for destination", Toast.LENGTH_SHORT).show();
                                            } else {
                                            sendRequestWalkingDirection();


                                        }
                                    };
                                    private void sendRequestWalkingDirection() {
                                        GoogleDirection.withServerKey(APIKEY)
                                                .from(locationGpsLatLng)
                                                .to(markerLocation)
                                                .transportMode(TransportMode.WALKING)
                                                .execute(new DirectionCallback() {
                                                    @Override
                                                    public void onDirectionSuccess(Direction direction, String rawBody) {
                                                        Log.d("onDirectionSuccess", "status: " + direction.getStatus());
                                                        requestOk(direction, rawBody);
                                                        mMap.addMarker(new MarkerOptions().position(locationGpsLatLng).draggable(false).icon(BitmapDescriptorFactory
                                                                .defaultMarker(BitmapDescriptorFactory.HUE_RED)));
                                                        CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(locationGpsLatLng, 15);
                                                        mMap.animateCamera(cameraUpdate);
                                                    }
                                                    @Override
                                                    public void onDirectionFailure(Throwable t) {
                                                        return;
                                                    }
                                                });
                                    }
   });

Ответы на вопрос(2)

что вы вызываете следующую функцию при очистке или любой другой кнопке / просмотре клика

public onClick(View v){
if(googleMap!=null && polygon!=null && polyline!=null && polylineOptions!=null && 
                polygonOptions!=null){
            polylineOptions.getPoints().clear();
            polygonOptions.getPoints().clear();
            googleMap.clear();
            polyline.remove();
            polygon.remove();
        }
}
Решение Вопроса

mMap.clear(); после нажатия кнопки. Этот метод удалит все полилинии.

Документация по классу GoogleMap

ОБНОВИТЬ

Вам нужно сохранить полилинии в некоторый список, а затем удалить их при нажатии кнопки

private List<Polyline> polylines;

Добавьте полилинии в список

polylines = new ArrayList<>();
for (PolylineOptions polylineOption : polylineOptionList) {
    polyline = mMap.addPolyline(polylineOption);
    polylines.add(polyline);
}

После нажатия кнопки

for (Polyline polyline : polylines) {
    polyline.remove();
}
 Wilik06 июл. 2016 г., 10:43
 Wilik06 июл. 2016 г., 06:01
Я обновил свой ответ
 dor sharoni05 июл. 2016 г., 22:17
mMap.clear (); очистить все карты, включая все мои маркеры, это не хорошо для меня
 dor sharoni06 июл. 2016 г., 09:25
его работа Большое спасибо. ты замечательный!!
 dor sharoni06 июл. 2016 г., 10:33
я даю тебе звание +1, есть что-то еще, что помечает принятый ответ?
 Wilik06 июл. 2016 г., 10:18
ага, пометьте мой ответ как принятый ответ, пожалуйста :)

Ваш ответ на вопрос