我的已知数据是我的当前位置(地质点)和半径(米)。我想在地图投影和半径的基础上围绕我当前的位置画一个圆。
我的地图视图覆盖确实覆盖了

@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方法中,该方法采用米为单位的参数,如果米在赤道上,则计算大约像素。我说得对吗?
但我想计算我的半径需要多少像素,而不仅仅是我站在赤道上。这类工作有内置功能吗?还是我必须手工操作?
当做

最佳答案

所以这有一个答案
我想这个问题已经包括在内了
How to compute a radius around a point in an Android MapView?

07-24 16:07