我的已知数据是我当前的位置(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
方法中,该方法以米为单位计算参数并计算约。像素是否在赤道上。我对吗?
但我想计算一下,如果我站在赤道上,我的半径需要多少像素。这种工作是否有内置功能,还是我必须手工完成?
此致
答案 0 :(得分:6)