Rahul Matte
Rahul Matte

Reputation: 1181

How to remove the marker in Google map v2?

I added the marker on the map using following method and also kept the marker record

public static void  showallLocations() 
    {
        ArrayList<LinkedHashMap<String, String>> listshow=latLngStoragepreference.getLatlng();
        markerlist=new ArrayList<Marker>();// to keep the marker record so that later we can delete
        if(listshow.size()>0)
        {
        for(int i=0;i<listshow.size();i++)
        {
        LinkedHashMap<String, String> Linkedhashmap=listshow.get(i);

        Set mapSet = (Set) Linkedhashmap.entrySet();
        //Create iterator on Set 
        Iterator mapIterator = mapSet.iterator();

        Map.Entry mapEntry = (Map.Entry) mapIterator.next();
        // getKey Method of HashMap access a key of map
        String keyValue = (String) mapEntry.getKey();
        //getValue method returns corresponding key's value
        String value = (String) mapEntry.getValue();
        String[] parts=value.split("#");
        String Latitude=parts[0];
        String Longitude=parts[1];
        Double Latitudeconverted=Double.parseDouble(Latitude);
        Double Longitudeconverted=Double.parseDouble(Longitude);
        System.out.println(Latitudeconverted+""+Longitudeconverted);
        //show on map
        LatLng latLngs=new LatLng(Latitudeconverted, Longitudeconverted);

        Marker marker=map.addMarker(new MarkerOptions()
        .position(
                latLngs)
                .title(keyValue)
                .icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_navigate_to)));
        markerlist.add(marker);// keeping the record of marker object

        }
        }


    }

in custom baseadapter, I tried to remove the marker but marker.remove() is not working

holder.btnDeletelocation.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {


        Marker marker=  MainActivity.markerlist.get(position);
        Log.d("MARKERlist before Remove", MainActivity.markerlist.toString());

        Log.d("MARKER Title",marker.getTitle());


        marker.remove();
        marker.setVisible(false);
        Log.d("MARKERlist after Remove", MainActivity.markerlist.toString());



            notifyDataSetChanged();




            }
        });

Please help If anybody had gone through the same. Thanks in advance

Upvotes: 2

Views: 10861

Answers (2)

dor sharoni
dor sharoni

Reputation: 111

Marker currentMarker = null;
if (currentMarker!=null) {
    currentMarker.remove();
    currentMarker=null;
}

if (currentMarker==null) {
    currentMarker = mMap.addMarker(new MarkerOptions().position(arg0).
    icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN)));
}

Upvotes: 0

Rahul Matte
Rahul Matte

Reputation: 1181

I Googled lot and found there isn't easy way to remove the marker from map, whenever you add the marker to map don't forget to keep its record, like adding it to Map or ArrayList.

your_google_map_obj.addMarker(new MarkerOptions()) //this adds Marker on Google Map, you should know it always returns Marker object so that you can use it later especially for removal.

so Marker marker=your_google_map_obj.addMarker(new MarkerOptions()) add this marker object to list or map markerArraylist.add(marker); then easily you can extract marker from list by Marker marker=markerArraylist.get(index); and then call marker.remove();

Upvotes: 10

Related Questions