如何将Canvas点转换为Map坐标

时间:2013-06-10 07:40:59

标签: android canvas drawing coordinates google-maps-android-api-2

我正在地图上画一个形状。实际上,我在地图上使用View来绘制形状。    我点击了一些按钮就把这个视图放到了前面。因此,map将返回此视图。    我可以使用画布在View上绘制一个形状。    现在,我想将这些点转换为地图坐标。

见图片,

enter image description here

似乎绘图是在地图上完成的。但是绘图是在透明视图上完成的。从这些画布点,我想转换为地图坐标。

我不知道如何实现这一目标。请告诉我如何做到这一点。

我的代码,

public boolean onTouch(View v, MotionEvent event) {     
    int action = event.getAction();
    path = new Path();
    float upX;
    float upY;
    Log.d("", "OnTouch");
    switch (action) {
    case MotionEvent.ACTION_DOWN:
        canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);
        downx = event.getX();
        downy = event.getY();
        eventX = downx;
        eventY = downy;
        Log.d("", "startx" + eventX);
        break;
    case MotionEvent.ACTION_MOVE:
        upx = event.getX();
        upy = event.getY();
        canvas.drawLine(downx, downy, upx, upy, paint);
        drawable.invalidate();
        downx = upx;
        downy = upy;
        break;
    case MotionEvent.ACTION_UP:
        upX = event.getX();
        upY = event.getY();
        Log.d("", "Action Up");
        Log.d("", "endx" + upX);
        canvas.drawLine(eventX, eventY, upX, upY, paint);
        drawable.invalidate();
        return true;
    case MotionEvent.ACTION_CANCEL:
        break;
    default:
        break;

    }
    return true;
}

我想通过从视图上的绘图中获取N,E,W,S坐标(地图坐标)来绘制此区域中的一些功能。我可以通过哪种方式修改我的代码。请建议我。

如果可能,请提供任何链接。   任何帮助表示赞赏!!

1 个答案:

答案 0 :(得分:0)

你想要的是投影https://developers.google.com/maps/documentation/android/v1/reference/com/google/android/maps/Projection,顺便说一下你为什么在onTouch上画画上的东西?