Reputation: 1181
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
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
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