1

まあ、私はアンドロイドの初心者で、デバイスでマップをより具体的に使用する必要があります(ポリライン)。このようなことをする必要があります。 Javascript API マップ アプリ

これは、私の街のバス ルートとバス停を追跡するために行った Web アプリであり、Android で同じことをするように求められました。Android用のマップAPIをチェックしていて、JS APIでポリラインに似たものが見つかりませんでした.これを達成する方法はありますか?

簡単なオーバーレイを追加しても問題ありません。Android 開発者サイトで基本的なチュートリアルを確認していますが、ポリラインの描画方法がわかりません。

4

3 に答える 3

1

Android Google Maps API にはそのような API はありません。描画するルートの実際のジオポイントを最初にリストしてから、オーバーレイ オブジェクトに点と線を描画するだけです。それを行う簡単な方法はありません。

于 2011-04-14T18:52:48.280 に答える
0

これを行うより簡単な方法は、ポイントを取得し、イメージを表示してポイントを描画する ImageView を拡張することです。描画するポイントを渡すだけで済みます。

私のプロジェクトでは、これを行いました:

public class ImageDraw extends ImageView{
private Paint   mPaint = new Paint();
List<Point> pts = new ArrayList<Point>() ;

public ImageDraw(Context context) {
    super(context);

}
//used to send the location of the points to draw on the screen
//must be called before every redraw to update the points on the screen
public void SetPointsToDraw(List<Point> pts)
{
    this.pts = pts;
}


public ImageDraw(Context context, AttributeSet attrs)
{
    super(context,attrs);
}
public ImageDraw(Context context, AttributeSet attrs, int defStyle)
{
    super(context, attrs, defStyle);
}

@Override
public void onDraw(Canvas canvas)
{
    super.onDraw(canvas);

    Paint paintColor = mPaint;
    paintColor.setColor(Color.YELLOW);
    paintColor.setStrokeWidth(3);


    if(pts.size() > 0)
    {
        canvas.drawCircle(pts.get(0).x, pts.get(0).y, 7, paintColor);   
    }
    if (pts.size() > 1)
    {
        for (int i = 1 ; i < pts.size(); i++) {
            paintColor.setColor(Color.YELLOW);
            canvas.drawCircle(pts.get(i).x, pts.get(i).y, 7, paintColor);
            paintColor.setColor(Color.RED);
            canvas.drawLine(pts.get(i-1).x, pts.get(i-1).y, pts.get(i).x, pts.get(i).y, paintColor);
        }
    }


}

}

Imageview を拡張して xml でレイアウトを作成するときは、com.Myapp.MyImageView のように新しいウィジェットのパッケージ全体を配置することを忘れないでください。

于 2011-04-14T19:50:43.527 に答える