可以将"叠加"大小与Android上的谷歌地图一起缩放吗?

lio*_*fly 9 gps android google-maps overlay itemizedoverlay

我已经能够使用"MapActivity"和"ItemizedOverlay"在Android上使用Eclipse在Google地图上绘制叠加层.但是当地图放大和缩小时,叠加层不会改变大小.

我希望叠加层在地图上"固定",并与地图一起放大和缩小.如何才能做到这一点?

我找不到定义边界的教程(例如,将GPS坐标作为叠加图像的角).如果您了解一些,请提供链接.

这样做的任何其他方式?

非常感谢.

小智 7

就在这里.我的申请也有同样的问题.这是一个例子,它完美地运作.此处绘制的圆圈在放大和缩小地图时会缩放.

在你的Overlay课程中:

public class ImpactOverlay extends Overlay {

private static int CIRCLERADIUS = 0;
private GeoPoint geopoint;

public ImpactOverlay(GeoPoint point, int myRadius) {
    geopoint = point;
    CIRCLERADIUS = myRadius;
}

@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
    // Transfrom geoposition to Point on canvas
    Projection projection = mapView.getProjection();
    Point point = new Point();
    projection.toPixels(geopoint, point);

    // the circle to mark the spot
    Paint circle = new Paint();
    circle.setColor(Color.BLACK);
    int myCircleRadius = metersToRadius(CIRCLERADIUS, mapView, (double)geopoint.getLatitudeE6()/1000000);
    canvas.drawCircle(point.x, point.y, myCircleRadius, circle);
}

public static int metersToRadius(float meters, MapView map, double latitude) {
    return (int) (map.getProjection().metersToEquatorPixels(meters) * (1/ Math.cos(Math.toRadians(latitude))));         
}
}
Run Code Online (Sandbox Code Playgroud)

当您的叠加层从缩放重新绘制时,标记将根据meterToRadius比例调整大小.希望能帮助到你.