首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >android自定义位图叠加mapsforge

android自定义位图叠加mapsforge
EN

Stack Overflow用户
提问于 2012-11-21 00:24:49
回答 1查看 1.7K关注 0票数 1

我正在尝试使用mapsforge映射库在android上的地图上叠加一个位图。我正在扩展Overlay类,并且我需要实现drawOverlayBitmap。有没有人知道该怎么做?我已经用谷歌搜索过了,但所有的结果都是使用谷歌的apis返回的,当你覆盖那里的方法时,你就有了mapView,所以这更有意义……不知道在这里该怎么做

代码语言:javascript
运行
复制
public abstract class Overlay extends java.lang.Thread {
private static final java.lang.String THREAD_NAME = "Overlay";
private boolean changedSize;
private boolean hasValidDimensions;
private final android.graphics.Matrix matrix;
private float matrixScaleFactor;
private android.graphics.Bitmap overlayBitmap1;
private android.graphics.Bitmap overlayBitmap2;
private final android.graphics.Canvas overlayCanvas;
private final android.graphics.Point point;
private android.graphics.Point positionAfterDraw;
private android.graphics.Point positionBeforeDraw;
private boolean redraw;
protected org.mapsforge.android.maps.MapView internalMapView;

protected Overlay() { /* compiled code */ }

public final void draw(android.graphics.Canvas canvas) { /* compiled code */ }

public final void matrixPostScale(float scaleX, float scaleY, float pivotX, float pivotY) { /* compiled code */ }

public final void matrixPostTranslate(float translateX, float translateY) { /* compiled code */ }

public boolean onLongPress(org.mapsforge.core.GeoPoint geoPoint, org.mapsforge.android.maps.MapView mapView) { /* compiled code */ }

public final void onSizeChanged() { /* compiled code */ }

public boolean onTap(org.mapsforge.core.GeoPoint geoPoint, org.mapsforge.android.maps.MapView mapView) { /* compiled code */ }

public final void requestRedraw() { /* compiled code */ }

public final void run() { /* compiled code */ }

public final void setupOverlay(org.mapsforge.android.maps.MapView mapView) { /* compiled code */ }

private void redrawOverlay() { /* compiled code */ }

protected abstract void drawOverlayBitmap(android.graphics.Canvas canvas, android.graphics.Point point, org.mapsforge.android.maps.Projection projection, byte b);

protected java.lang.String getThreadName() { /* compiled code */ }

final void changeSize() { /* compiled code */ }

boolean sizeHasChanged() { /* compiled code */ }

protected static final enum EventType {
    public static final  LONG_PRESS, public static final  TAP;

    public static org.mapsforge.android.maps.overlay.Overlay.EventType[] values() { /* compiled code */ }

    public static org.mapsforge.android.maps.overlay.Overlay.EventType valueOf(java.lang.String name) { /* compiled code */ }

    private EventType() { /* compiled code */ }
}
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-21 07:35:24

以下面的代码为例:

代码语言:javascript
运行
复制
Point screenPts = new Point();

@Override
protected void drawOverlayBitmap(Canvas canvas, Point point, 
                  Projection projection, byte zoom){

        projection.toPixels(new GeoPoint((int)(location.getLatitude()*1E6),
                  (int)(location.getLongitude()*1E6)) , screenPts);
        canvas.drawBitmap(myBitmap, screenPts.x, screenPts.y, new Paint());
}

致以问候。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13477558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档