android - "overlay"大小可以和 android 上的谷歌地图一起缩放吗?

标签 android google-maps gps overlay itemizedoverlay

我已经能够使用“MapActivity”和“ItemizedOverlay”通过 Eclipse 在 android 上的谷歌地图上绘制叠加层。但是本地图放大和缩小时,叠加层不会改变大小。

我希望叠加层“固定”在 map 上,并随 map 一起放大和缩小。如何做到这一点?

我找不到定义边界的教程(例如,使用 GPS 坐标作为叠加图像的角)。如果您知道一些,请提供链接。

还有其他方法吗?

非常感谢。

最佳答案

是的,有。我的申请遇到了同样的问题。这是一个例子,它完美地工作。此处绘制的圆会随着您放大和缩小 map 而缩放。

在你的 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))));         
}
}

当您的叠加从缩放中重新绘制时,标记将根据 metersToRadius 比例调整大小。希望对您有所帮助。

关于android - "overlay"大小可以和 android 上的谷歌地图一起缩放吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6599307/

相关文章:

javascript - 使用分块传输通过 HTTP POST 流式传输麦克风输出

android - 获取用户的位置Android

java - Android studio 获取 map 的最后已知位置并使用微调器设置圆半径

Android:在 Google Map API v2 中绘制从 A 到 B 的路线

javascript - 地理定位 HTML5 API enableHighAccuracy :True does not force GPS to turn on om Android devices

android - 混淆器 :- Obfuscating folder names

android - 电话 - 如何进行设置以创建 PhoneGap 应用程序

javascript - 谷歌地图蓝点在 reactjs 中的当前位置

javascript - 如何创建 GoogleMap 标记自动更新?

android - Android 是否使用 NTP 同步时间?