2

地図上に図形を描いています。実際、私はマップ上のビューを使用して形状を描画しています。ボタンをクリックすると、このビューが前面に表示されます。したがって、マップはこのビューに戻って存在します。キャンバスを使用してビューに図形を描くことができます。ここで、これらのポイントをマップ座標に変換したいと思います。

この画像を見て、

ここに画像の説明を入力

地図上に描画が行われているようです。ただし、描画は透明なビューで行われます。これらのキャンバス ポイントから、マップ座標に変換したいと思います。

これを達成する方法がわかりません。これを行う方法のアイデアを教えてください。

私のコード、

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 座標 (マップ座標) を取得して描画されたこの領域で、いくつかの機能を実行したいと考えています。どのようにしてコードを変更できますか。私に提案してください。

可能であれば、リンクを提供してください。どんな助けでも大歓迎です!!

4

1 に答える 1

0

あなたが望むのは Projection https://developers.google.com/maps/documentation/android/v1/reference/com/google/android/maps/Projectionですが、 onTouch のときに Canvas に何かを描画するのはなぜですか?

于 2013-06-10T08:01:16.740 に答える