Search code examples
javamarkerosmdroid

How to know that marker I press in osmdroid maps?


I would like to know how I can control which marker I clicked on osmdroid.

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

... ...

                Marker coorLoad = new Marker(map);
                map.getOverlays().add(coorLoad);
                markerList_OSM.add(coorLoad);

Now, how can I control the press marker? both long and short press.

In the google maps I use:

map.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
        @SuppressLint("InflateParams")
        public boolean onMarkerClick(final Marker markerSelect) {
......
......
......
return false;
        }
    });

thank you.


Solution

  • To control a long press, you have to subclass the Marker class, and implement onLongPress method:

    @Override public boolean onLongPress(final MotionEvent event, final MapView mapView) {
            boolean touched = hitTest(event, mapView);
            if (touched){
               //here, do whatever you want
               //....
            }
            return touched;
        }