地図上に図形を描いています。実際、私はマップ上のビューを使用して形状を描画しています。ボタンをクリックすると、このビューが前面に表示されます。したがって、マップはこのビューに戻って存在します。キャンバスを使用してビューに図形を描くことができます。ここで、これらのポイントをマップ座標に変換したいと思います。
この画像を見て、
地図上に描画が行われているようです。ただし、描画は透明なビューで行われます。これらのキャンバス ポイントから、マップ座標に変換したいと思います。
これを達成する方法がわかりません。これを行う方法のアイデアを教えてください。
私のコード、
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 座標 (マップ座標) を取得して描画されたこの領域で、いくつかの機能を実行したいと考えています。どのようにしてコードを変更できますか。私に提案してください。
可能であれば、リンクを提供してください。どんな助けでも大歓迎です!!