要在osmdroid中旋转地图图标一定角度,可以通过以下步骤实现:

  1. 创建一个自定义的Overlay类,并继承自org.osmdroid.views.overlay.Marker类。这将允许您自定义地图图标。
import org.osmdroid.views.overlay.Marker;

public class CustomMarker extends Marker {

    private float rotation;

    public CustomMarker(MapView mapView) {
        super(mapView);
    }

    public void setRotation(float rotation) {
        this.rotation = rotation;
    }

    @Override
    public void draw(Canvas canvas, MapView mapView, boolean shadow) {
        // 保存当前画布状态
        canvas.save();

        // 根据旋转角度旋转画布
        canvas.rotate(rotation, getX(), getY());

        // 绘制地图图标
        super.draw(canvas, mapView, shadow);

        // 恢复画布状态
        canvas.restore();
    }
}
  1. Activity中使用CustomMarker类创建地图图标,并设置旋转角度。
CustomMarker marker = new CustomMarker(mapView);
marker.setPosition(new GeoPoint(latitude, longitude));
marker.setRotation(rotationAngle);
marker.setIcon(getResources().getDrawable(R.drawable.marker_icon));
mapView.getOverlays().add(marker);

请注意,rotationAngle是您想要旋转的角度,R.drawable.marker_icon是您的图标资源。您可以根据您的需求自定义这些值。

  1. 调用mapView.invalidate()方法刷新地图,以显示旋转后的图标。
mapView.invalidate();

这样,您就可以在osmdroid中旋转地图图标一定角度了

osmdroid 地图图标旋转一定角度

原文地址: https://www.cveoy.top/t/topic/hJcG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录