Я успешно создаю и рисую полилинии в событии щелчка маркера. Но происходит то, чего я не хочу.

И это когда я нажимаю на маркер, скажем, JackiMarker, он рисует маршрут к целевому местоположению, но затем я нажимаю на второй маркер, скажем, MichaelMarker, он также рисует маршрут, но предыдущий маркер все еще там, чего я не хочу.

Я использую этот код для рисования и удалите маркер. У него есть функция clearRoute, но она у меня не работает, пожалуйста, помогите мне, что делать. Пожалуйста, помогите мне удалить последнюю полилинию, которую я нарисовал на карте.

-1
Coas Mckey 7 Авг 2015 в 14:43

2 ответа

Пожалуйста, попробуйте это,

Polyline polyline = this.mMap.addPolyline(new PolylineOptions().....);

Затем, когда вы захотите его удалить:

polyline.remove();

Если у вас много Polylines, просто добавьте их в список по мере их размещения на карте:

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

for(....)
{
  polylines.add(this.mMap.addPolyline(new PolylineOptions()....));

}

И когда вы хотите удалить:

for(Polyline line : polylines)
{
line.remove();
}
polylines.clear();

Ключевым моментом является сохранение ссылки на Polyline objects и вызов .remove() для каждого из них.

1
M D 7 Авг 2015 в 15:02
Попробуйте это для (полилиния: ломаные линии) { if (isSpecificPolyline(line)) line.remove(); }
 – 
AndroidEnthusiastic
7 Авг 2015 в 15:14

Это 100% рабочий код, которым я поделился в вопросе, проблема была на моем конце. что я делал, пытался удалить путь при нажатии на маркер, а в OnMarkerClickListener я инициировал класс маршрута, который создал другой экземпляр того же класса, создав таким образом массив полилиний из индекса 0, поэтому я не был попасть в цикл for метода clearRoute.

Поэтому создание экземпляра класса Route как глобального решило мою проблему.

0
Coas Mckey 7 Авг 2015 в 16:10