Android의 Google지도에서 마커 지우기


83

조각 활동에 맵을 추가하고 addMarker 기능을 사용하여 여러 마커를 추가했지만 모든 마커를 제거 할 수 있습니다. 다른 마커 목록에 대한 알림을 받고 있습니다.

이제 모든 마커를 제거하고 새 마커를 추가하고 싶습니다.

모든 마커를 목록에 유지하고 하나씩 제거하는 한 가지 방법, (marker.remove ())

모든 마커를 지우는 더 좋은 방법이 있습니까?


2
분명 () 메소드가있다
마르코 Niciforovic

답변:


203

"지도에서 모든 마커, 오버레이 및 폴리 라인"을 지우려면에서을 사용 clear()하십시오GoogleMap .


1
이를 수행하기 전에 모두 remove ()를 호출해야합니까? 내 말은, 해당 마커가있는 ArrayList가 여전히있는 경우 해당 마커에 대한 활성 참조가 여전히 있다고 가정하므로 맵을 지워도 메모리에 남아있을 것입니다. 내가 이것에 대해 맞습니까, 아니면지도를 지우면 마커에 대한 참조가 지워 집니까?
Charlie-Blake

5
@ santirivera92 : "이 작업을 수행하기 전에 모두 remove ()를 호출해야합니까?" -AFAIK, 그럴 필요가 없습니다. "나는 아직도 그 마커와 ArrayList에있는 경우, 내가지도를 취소 한 경우에도 그들은 메모리에 남아 그래서 나는, 나는 아직도 그 마커에 대한 활성 참조가 있어요 가정"- 예,하지만은 당신의 구글의 코드,하지 . 경우 당신이 붙잡 Marker지도에서 별도로 객체, 당신은 사람들의 이동을하게 할 필요가있다. 시각적으로clear() 제거됩니다 .
CommonsWare

1
@ santirivera92 : 네, 그래야합니다. 다른 어떤 것도 그들을 붙잡아서는 안됩니다.
CommonsWare

8
또한 clear()기능은 MarkerID를 재설정하지 않습니다 . 기본적으로 m0새로운 Marker추가를 위해 다시는 얻을 수 없습니다 .
Prasad De Zoysa

2
@Prasad m0을 다시 얻을 수있는 방법이 있습니까?
Gokhan Arik 2016 년

4

폴리 라인을 지우지 않고 마커 만 제거해야하는 경우 아래 단계를 따르십시오.

먼저 아래와 같이 새 마커 배열을 만듭니다.

List<Marker> AllMarkers = new ArrayList<Marker>();

그런 다음 Google지도에 마커를 추가 할 때 마커 배열 (이 예에서는 AllMarkers)에도 추가합니다.

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();

폴리 라인을 지우지 않고지도 마커 만 제거하는 방법을 찾고있을 때이 솔루션을 찾았습니다. 이것이 당신에게도 도움이되기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.