Я добавил карту активности фрагмента и добавил несколько маркеров с помощью функции addMarker, но я могу удалить все маркеры, я получаю уведомление для другого списка маркеров,
Теперь я хочу удалить все маркеры и добавить новый.
один способ сохранить все маркеры в списке и удалить один за другим (marker.remove ())
Есть ли лучший способ очистить все маркеры.
android
google-maps-android-api-2
Ашиш Касма
источник
источник
Ответы:
Если вы хотите удалить с карты «все маркеры, наложения и полилинии», используйте
clear()
на своемGoogleMap
.источник
Marker
объекты отдельно от карты, вам нужно отпустить их.clear()
удалит их визуально .clear()
функция не сбрасываетMarker
идентификаторы. В основном вы не получитеm0
снова для новогоMarker
добавления.Если вы не хотите очищать полилинии и нужно удалить только маркеры, выполните следующие действия.
Сначала создайте новый массив маркеров, как показано ниже
List<Marker> AllMarkers = new ArrayList<Marker>();
Затем, когда вы добавляете маркер на карты Google, также добавляйте их в массив маркеров (его все маркеры в этом примере)
for(int i=0;i<places.length();i++){ LatLng location = new LatLng(Lat,Long); MarkerOptions markerOptions = new MarkerOptions(); markerOptions.position(location); markerOptions.title("Your title"); Marker mLocationMarker = Map.addMarker(markerOptions); // add the marker to Map AllMarkers.add(mLocationMarker); // add the marker to array }
затем, наконец, вызовите метод ниже, чтобы удалить все маркеры сразу
private void removeAllMarkers() { for (Marker mLocationMarker: AllMarkers) { mLocationMarker.remove(); } AllMarkers.clear(); }
звонить из любого места, чтобы убрать все маркеры
removeAllMarkers();
Я нашел это решение, когда искал способ удалить только маркеры карты без очистки полилиний. Надеюсь, это тебе тоже поможет.
источник