Android: MapView 绘制具有动态半径的圆(以米为单位)

标签 android overlay android-mapview projection

我的已知数据是我的当前位置 (GeoPoint) 和以米为单位的半径。我想根据 map 投影和半径在当前位置周围画圈。 我的 map View 叠加层确实覆盖了绘图方法,例如

@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?

关于Android: MapView 绘制具有动态半径的圆(以米为单位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6090379/

相关文章:

java - ANDROID - 如何使用 httpurlconnection 从 android 中的 Web 服务获得成功返回?

javascript - 客户审查js覆盖

python - 如何使用 OpenCV 覆盖图像和文本/形状?

android - 谷歌地图 v2 预期 4030500 发现 0 异常

java - Android studio java - 在 View 寻呼机内的 map fragment 中显示 Bottom Sheet 行为

android - 如何在 Fragment 中创建一个 MapView

java - Jenkins Android 构建错误 : FAILURE: Build failed with an exception

android - 从 Github 导入 Eclipse 项目到 Android Studio - Parse.com 教程

android - 在 Android 项目中找不到 ND4J 共享库

css - 在文本字段中重叠 Font Awesome 图标