如何在 OSMDroid 上实现可拖动的 ExtendedOverlayItem?

How to implement a draggable ExtendedOverlayItem on OSMDroid?

我正在开发一项功能来拖动地图叠加层(使用 ExtendedOverlayItem class),使用 osmdroidOSMBonusPack

这个问题讨论了一个可能的解决方案:

Unable to implement onTouchEvent (Drag & Drop) with Osmdroid

所以,我的问题是:

1 - 我该把代码放在哪里?

2 - 我应该创建一个新的 class 吗?延伸自哪个 class?

其他类似问题:

How do you implement OverlayItem to be draggable? (Using ItemizedIconOverlays if possible)

confusion between overlay, overlayitem and itemizedoverley

因为您已经在使用 OSMBonusPack:只需使用可拖动的标记叠加层(顺便说一句,ExtendedOverlayItem 现已过时)。

我通过更新 OSMBonusPack Library 解决了我的问题。以下代码用于实现可拖动标记:

import org.osmdroid.bonuspack.overlays.Marker;
import org.osmdroid.bonuspack.overlays.Marker.OnMarkerDragListener;
import org.osmdroid.util.GeoPoint;

public static void applyDraggableListener(Marker poiMarker) {
        poiMarker.setDraggable(true);
        poiMarker.setOnMarkerDragListener(new OnMarkerDragListener() {
                @Override
                public void onMarkerDragStart(Marker marker) {}

                @Override
                public void onMarkerDragEnd(Marker marker) {
                        GeoPoint geopoint = marker.getPosition();        
                }

                @Override
                public void onMarkerDrag(Marker marker) {}
        });                
}