Карты Google для Android избавляются от ломаной линии

Я создаю приложение для Android, которое получает текущую позицию пользователей и находит близлежащие достопримечательности. Когда я выбираю достопримечательность, маршрут рисуется к ней из текущей позиции, но когда я делаю это во второй раз, первый маршрут остается там, и я хочу, чтобы он исчез. Ниже приведен код, который я использую для рисования линии. Каждый раз, когда рисуется направление, это вызывается. Я пытался использовать line.remove каждый раз перед вызовом метода, но тогда это удаляет обе строки. Какие-либо предложения?

for (int i = 0; i < pontos.size() - 1; i++) {
                    LatLng src = pontos.get(i);
                    LatLng dest = pontos.get(i + 1);
                    try{
                        //here is where it will draw the polyline in your map
                        line = mMap.addPolyline(new PolylineOptions()
                                .add(new LatLng(src.latitude, src.longitude),
                                        new LatLng(dest.latitude,                dest.longitude))
                                .width(2).color(Color.RED).geodesic(true));

person user2052514    schedule 23.02.2015    source источник


Ответы (1)


Сохраните свои Polylines в массиве, чтобы их можно было удалить перед добавлением других:

List<Polyline> mPolylines = new ArrayList<>();

private void someMethod() {
    // Remove polylines from map
    for (Polyline polyline : mPolylines) {
        polyline.remove();
    }
    // Clear polyline array
    mPolylines.clear();

    for (int i = 0; i < pontos.size() - 1; i++) {
        LatLng src = pontos.get(i);
        LatLng dest = pontos.get(i + 1);

        mPolylines.add(mMap.addPolyline(new PolylineOptions()
                .add(new LatLng(src.latitude, src.longitude),
                        new LatLng(dest.latitude, dest.longitude))
                .width(2).color(Color.RED).geodesic(true)));

    }
}
person Simas    schedule 23.02.2015