2012-01-13 10 views
1

ユーザーがどこに行っても線を動的に描きたい。私は彼の場所を継続的に聞くので、ユーザージオポイントを使って線を引く方法については苦労しています。私はmoveToとlineToを使用しようとしましたが、これは1行だけで可能です。あらかじめお返事ありがとうございます。リアルタイム追跡ジオポイントから動的に線を引く

更新:

public void draw(Canvas canvas, MapView mv, boolean shadow) 
{ 
    Projection projection = mv.getProjection(); 
    ArrayList<GeoPoint> geoPoints = new ArrayList<GeoPoint>(); 
    //Creating geopoints - ommited for readability 
    Path p = new Path(); 
    for (int i = 0; i < geoPoints.size(); i++) { 
    if (i == geoPoints.size() - 1) { 
     break; 
    } 
    Point from = new Point(); 
    Point to = new Point(); 
    projection.toPixels(geoPoints.get(i), from); 
    projection.toPixels(geoPoints.get(i + 1), to); 
    p.moveTo(from.x, from.y); 
    p.lineTo(to.x, to.y); 
    } 
    Paint mPaint = new Paint(); 
    mPaint.setStyle(Style.FILL); 
    mPaint.setColor(0xFFFF0000); 
    mPaint.setAntiAlias(true); 
    canvas.drawPath(p, mPaint); 
    super.draw(canvas, mv, shadow); 
} 

画像:ユーザーがどこになるラインの

描画が従わなければなりません。 draw track

答えて

0

あなたはPathを使用して、より具体的にすることができます

private final Path mPath; 
................ 
mPath.lineTo(lastXCoord,lastYCoord); 
+0

卿を、あなたは関連するチュートリアル先生のためのリンクを提供することができます答えていただきありがとうございます。私はこのコードを自分のニーズに合わせるための前進の背景はありません。私は上記のコードを追加して、あなたが私がそれを修正するのを助けてくれることを願っています。私は1行だけでなくユーザーの位置も同じ行にする必要があります。 – rahstame

+0

上記のコードスニペットが示すように、パスをインスタンスフィールドとして保持する必要があります。 draw()メソッドを呼び出すたびに作成しないでください。コンストラクタで作成し、mPath.lineTo(...)およびcanvas.drawPath(mPath)のみを呼び出します。描画メソッドで。 Pathクラスのアンドロイドのドキュメントへのリンクをたどって、lineToメソッドが正確に何をしているかを見ることができます。 – asenovm

+0

大丈夫です、私はそれをやることができれば試してみるでしょう。今は少しぼやけている。 – rahstame