java - 在 OSMDroid for Android 中旋转标记?

标签 java android maps openstreetmap osmdroid

好吧,这个已经困扰我几个小时了,我有以下相对简单的代码,可以在 osmdroid map 上放置一个标记

final ArrayList<OverlayItem> items = new ArrayList<OverlayItem>();
OverlayItem marker = new OverlayItem("markerTitle", "markerDescription", new GeoPoint(52.033954,1.210179));
marker.setMarkerHotspot(OverlayItem.HotspotPlace.TOP_CENTER);
items.add(marker);

Drawable newMarker = this.getResources().getDrawable(R.drawable.maincar);
DefaultResourceProxyImpl resProxyImp = new DefaultResourceProxyImpl(getApplicationContext());
ItemizedIconOverlay markersOverlay = new ItemizedIconOverlay<OverlayItem>(items, newMarker, null, resProxyImp);
mapView.getOverlays().add(markersOverlay);

然而,标记始终面向屏幕顶部(0 度旋转)。我怎样才能轻松地将每个标记旋转到指定的角度(360 度是一个完整的圆圈)?

最佳答案

尝试像这样使用 RotateMyBitmap 方法:

Bitmap source = BitmapFactory.decodeResource(this.getResources(), R.drawable.ic_launcher);

Bitmap target = RotateMyBitmap(source, 120.0f);

final ArrayList<OverlayItem> items = new ArrayList<OverlayItem>();
OverlayItem marker = new OverlayItem("markerTitle", "markerDescription", new GeoPoint(52.033954,1.210179));
marker.setMarkerHotspot(OverlayItem.HotspotPlace.TOP_CENTER);
items.add(marker);

Drawable newMarker = new BitmapDrawable(getResources(), target);

//Drawable newMarker = this.getResources().getDrawable(R.drawable.maincar);
DefaultResourceProxyImpl resProxyImp = new DefaultResourceProxyImpl(getApplicationContext());
ItemizedIconOverlay markersOverlay = new ItemizedIconOverlay<OverlayItem>(items, newMarker, null, resProxyImp);
mapView.getOverlays().add(markersOverlay);

RotateMyBitmap 在哪里:

public static Bitmap RotateMyBitmap(Bitmap source, float angle)
{
    Matrix matrix = new Matrix();
    matrix.postRotate(angle);
    return Bitmap.createBitmap(source, 0, 0, source.getWidth(), source.getHeight(), matrix, true);
}

结果是:

enter image description here

这很好用,但我建议您使用 MyLocationOverlay

关于java - 在 OSMDroid for Android 中旋转标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20519695/

相关文章:

java - AutoCompleteTextView 结果空间为空

http - PIN URL openstreetmap 传入纬度/经度或其他平台

java - Guava MultiMap 和 ConcurrentModificationException

java - 使用 JavaFX 2.1 编译运行

android - 从 CLI 测试后如何获取 gcloud Firebase 测试实验室 Android Espresso 结果?

java - 使用相机时 Android 中的权限被拒绝

java - 使用 Netbeans 在 Java 中的 JPanel 或 JFrame 中放置 map

c++ - 模板 map 。 .. 我们可以吗?

java - 可以迭代的固定数量的通用对象

java - 在 linux 机器上遇到编码问题,而不是 Windows