Android折线映射api

时间:2011-04-14 18:19:01

标签: android maps polyline

好吧,我是Android的初学者,我需要更具体地使用设备上的地图(折线)我需要做这样的事情。 Javascript Api maps app

这是一个网络应用程序,我跟踪我的城市的公交路线和公交车站,我被要求在机器人做同样的事情!香港专业教育学院一直在检查Android的地图api,并没有发现任何类似于JS api中的折线,是否有办法实现这一目标?

我添加简单叠加没有问题我一直在检查android开发者网站的基本教程,但我不知道如何绘制折线。

3 个答案:

答案 0 :(得分:1)

Android Google Maps API中没有此类API。您只能首先列出要绘制的路线的实际GeoPoints,然后在Overlay对象上绘制点和线。没有简单的方法可以做到这一点。

答案 1 :(得分: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

答案 2 :(得分:0)

FvZ的答案有效,但不是本土方式,地图上有折线,一个简单的例子 https://stackoverflow.com/a/21877742/618419

另外看一下Android文档,他们有很多简单易用的例子: http://developer.android.com/reference/com/google/android/gms/maps/model/Polyline.html