如何在 OSMDroid 上实现可拖动的 ExtendedOverlayItem?
How to implement a draggable ExtendedOverlayItem on OSMDroid?
我正在开发一项功能来拖动地图叠加层(使用 ExtendedOverlayItem
class),使用 osmdroid
和 OSMBonusPack
。
这个问题讨论了一个可能的解决方案:
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) {}
});
}
我正在开发一项功能来拖动地图叠加层(使用 ExtendedOverlayItem
class),使用 osmdroid
和 OSMBonusPack
。
这个问题讨论了一个可能的解决方案:
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) {}
});
}