I'm creating an Android Application where i need to set markers on the map. And since my App requires Offline function i need to use Osmdroid to solve this problem. Now my issue is the markers on the map, which i can easily add them by using Markers or the ItemizedOverlay, but the issue i'm having is that i cannot remove markers from the map.
The code i have used for adding markers is this one:
Marker marker = new Marker(mapView);
marker.setPosition(new GeoPoint(41.3746312,19.7710733));
marker.setIcon(getResources().getDrawable(R.drawable.marker));
marker.setImage(getResources().getDrawable(R.drawable.marker));
marker.setTitle("Marker");
marker.setInfoWindow(null);
marker.showInfoWindow();
mapView.getOverlays().add(marker);
mapView.invalidate();
but i'm encountering issues on removing them since the only way to remove it is:
mapView.getOverlays().clear();
And i need to remove a specific marker instead of all of them at the same time.
For removing specific marker you should use:
mapView.getOverlays().remove(overlay);
mapView.invalidate();
When you add a marker set the Id to anything you like.
MapView mapview = (MapView) findViewById(R.id.mapview);
Marker marker = new Marker(mapview);
marker.setId("String");
mapview.getOverlays().add(marker);
Since a Marker will get added to the mapviews overlay list as an Overlay object you can loop throgh it until you find your specific marker based on the Id.
for(int i=0;i<mapview.getOverlays().size();i++){
Overlay overlay=mapview.getOverlays().get(i);
if(overlay instanceof Marker&&((Marker) overlay).getId().equals("String")){
mapview.getOverlays().remove(overlay);
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With