Android: 使用动态半径(以米为单位)绘制圆形地图视图

6

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

@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方法上,它以米为参数计算赤道上的近似像素。我的目的是计算半径所占用的像素数,而不仅限于在赤道上的情况。是否有针对这种工作的内置函数或者我必须手动计算呢?
敬礼!

Google Maps和OSMDroid可以以不同的方式实现方法,因此最好确定您正在使用哪个地图平台。 - tony gil
1个回答

6

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接