Osmdroid(CustomOverlay.java)でオーバーレイクラスを拡張するクラスを作成しました。ただし、CustomOverlay.javaを使用するメインアクティビティでcreateMark()メソッドを呼び出した後は、マップに何も表示されません。私はItemizedOverlayクラスを使いたくありません。オーバーレイクラスを拡張できますか?
CustomOverlay.java(オーバーレイを拡張するクラス)
public CustomOverlay(Context context) {
super(context);
}
@Override
protected void draw(Canvas canvas, MapView mapView, boolean shadow) {
Point screenPoint = new Point();
mapView.getProjection().toPixels(geoPoint, screenPoint);
super.drawAt(canvas, mapView.getResources().getDrawable(R.drawable.marker), screenPoint.x, screenPoint.y, shadow);
}
}
これは私が主な活動で呼び出すメソッドです:
private void createMarker() {
List<Overlay> mapOverlays = mMapView.getOverlays();
Overlay c = new CustomOverlay(this);
mapOverlays.add(c);
mMapView.invalidate();
}
回答:
@Override
protected void draw(Canvas canvas, MapView mapView, boolean shadow) {
Point screenPoint = new Point();
mapView.getProjection().toPixels(geoPoint, screenPoint);
Bitmap marker= BitmapFactory.decodeResource(mapView.getResources(), R.drawable.marker);
canvas.drawBitmap(marker, screenPoint.x, screenPoint.y, null);
}
答えを含めるように私の質問を更新します。ありがとう。 – fulupr
私は、OSMdroidに関する質問がGoogleMapsではないことを理解しました。 –