Удалить маркер из GoogleMap
В новом API Карт Google для Android мы можем добавить маркер , но нет способа (легко) его удалить.
Мое решение состоит в том, чтобы сохранить маркеры на карте и перерисовать карту, когда я хочу удалить маркер, но он не очень эффективен.
Кто-нибудь имеет лучшую идею?
Подпись метода для addMarker :
Поэтому, когда вы добавляете маркер в GoogleMap , указав параметры маркера, вы должны сохранить возвращаемый объект Marker (вместо объекта MarkerOptions который вы использовали для его создания). Этот объект позволяет впоследствии изменить состояние маркера. Когда вы закончите с маркером, вы можете вызвать Marker.remove() чтобы удалить его с карты.
В стороне, если вы хотите временно скрыть его, вы можете переключить видимость маркера, вызывая Marker.setVisible(boolean) .
Очистить все каракули на карте
Добавьте маркер на карту следующим образом:
Тогда вы сможете использовать метод remove, он удалит только этот маркер
1. Если вы хотите удалить маркер, вы можете сделать это как marker.remove(); В качестве альтернативы вы также можете скрыть маркер, а не удалять его как
И сделать его видимым позже, когда это необходимо.
2. Однако если вы хотите удалить все маркеры с карты Используйте map.clear();
Примечание: map.clear(); Также удалит Polylines, Circles и т. Д.
3. Если вы не хотите удалять Polylines, Circles и т. Д., Чем использовать цикл для длины маркера (если у вас есть несколько маркеров), чтобы удалить их. Проверьте здесь пример или установите их. Visible false И не используйте map.clear(); в таком случае.
Если маркер существует, удалите последний маркер. Если маркер не существует, создайте текущий маркер
Сделать глобальную переменную для отслеживания маркера
// Удаление старого маркера
// Добавить обновленный маркер и переместить камеру
Создайте массив со всеми маркерами для добавления в карту.
Источник