Android:MapView绘制圆圈,动态半径(米)

时间:2011-05-22 19:56:25

标签: android overlay android-mapview projection

我的已知数据是我当前的位置(GeoPoint)和以米为单位的半径。我想根据地图投影和半径在当前位置周围绘制圆圈。 我的地图视图叠加层会覆盖像

这样的绘制方法
@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
    Projection projection = mapView.getProjection();

    GeoPoint myLocationGeoPoint = getLocationGeoPointFromSomeSource();

    Point myPoint = new Point();
    projection.toPixels(myLocationGeoPoint, myPoint);

    int radiusPixel = (int) projection.metersToEquatorPixels(getRadiusInMetersFromSomeSource());

    canvas.drawCircle(myPoint.x, myPoint.y, radiusPixel, mPaintStroke);
    canvas.drawCircle(myPoint.x, myPoint.y, radiusPixel, mPaintFill);

    super.draw(canvas, mapView, shadow);
}

此代码的问题是radiusPixel太小了。我假设问题出在metersToEquatorPixels方法中,该方法以米为单位计算参数并计算约。像素是否在赤道上。我对吗? 但我想计算一下,如果我站在赤道上,我的半径需要多少像素。这种工作是否有内置功能,还是我必须手工完成?

此致

1 个答案:

答案 0 :(得分:6)

所以这有一个答案

我认为这个问题涵盖了这个问题

  

How to compute a radius around a point in an Android MapView?