Я успешно создаю и рисую полилинии в событии щелчка маркера. Но происходит то, чего я не хочу.
И это когда я нажимаю на маркер, скажем, JackiMarker, он рисует маршрут к целевому местоположению, но затем я нажимаю на второй маркер, скажем, MichaelMarker, он также рисует маршрут, но предыдущий маркер все еще там, чего я не хочу.
Я использую этот код для рисования и удалите маркер. У него есть функция clearRoute, но она у меня не работает, пожалуйста, помогите мне, что делать. Пожалуйста, помогите мне удалить последнюю полилинию, которую я нарисовал на карте.
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()
для каждого из них.
Это 100% рабочий код, которым я поделился в вопросе, проблема была на моем конце. что я делал, пытался удалить путь при нажатии на маркер, а в OnMarkerClickListener я инициировал класс маршрута, который создал другой экземпляр того же класса, создав таким образом массив полилиний из индекса 0, поэтому я не был попасть в цикл for метода clearRoute.
Поэтому создание экземпляра класса Route как глобального решило мою проблему.
Похожие вопросы
Новые вопросы
android
Android — это мобильная операционная система Google, используемая для программирования или разработки цифровых устройств (смартфонов, планшетов, автомобилей, телевизоров, одежды, очков, IoT). Для тем, связанных с Android, используйте теги, специфичные для Android, такие как android-intent, android-activity, android-adapter и т. д. Для вопросов, отличных от разработки или программирования, но связанных с Android framework, используйте эту ссылку: https://android .stackexchange.com.